using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; using DevExpress.XtraBars.Customization; using DW5S.App.EditForms; using DW5S.Entity; using DW5S.Repostory; using DW5S.Service; using DW5S.ViewModel; using Serilog; namespace DW5S.App.UserControl { public partial class CtrlFixedStation : DevExpress.XtraEditors.XtraUserControl { readonly List list = new List(); public CtrlFixedStation() { InitializeComponent(); } private async void CtrlSat_Load(object sender, EventArgs e) { try { gridFixedStation.UseDefault(list).UseMultiSelect().UseRowNumber() .UseAddAsync(Add) .UseEditAsync(Edit) .UseDeleteAsync(Delete).SetDisplayText(nameof(FixedStationViewModel.Value), val => $"{val}秒") .UseBoolColumn(nameof(FixedStationViewModel.Enable), "启用", "禁用"); var unitOfWork = IocContainer.UnitOfWork; var repsFix = unitOfWork.Of(); var items = await repsFix.GetAllAsync(p => p.StationName); list.AddRange(items.To>()); } catch (Exception ex) { IocContainer.Logger.Error(ex, "查询固定站信息异常"); DxHelper.MsgBoxHelper.ShowError("查询固定站信息异常"); } } private async Task Add() { try { FixedStationEditor frm = new FixedStationEditor(); if (frm.ShowDialog() != DialogResult.OK) return null; var addItem = frm.info; var unitOfWork = IocContainer.UnitOfWork; var repsFix = unitOfWork.Of(); await repsFix.AddOrUpdateAsync(addItem.To()); await unitOfWork.SaveAsync(); return addItem; } catch (Exception ex) { IocContainer.Logger.Error(ex, "添加固定站信息异常"); DxHelper.MsgBoxHelper.ShowError("添加固定站信息异常"); return null; } } private async Task Edit(FixedStationViewModel editItem) { try { FixedStationEditor frm = new FixedStationEditor(editItem); if (frm.ShowDialog() != DialogResult.OK) return null; editItem = frm.info; var unitOfWork = IocContainer.UnitOfWork; var repsFix = unitOfWork.Of(); var find = (await repsFix.FirstOrDefaultAsync(p => p.Id == editItem.Id)); find.StationName = editItem.StationName; find.FreqUpHz = editItem.FreqUpHz; find.Lon = editItem.Lon; find.Lat = editItem.Lat; find.Value = editItem.Value; find.Enable = editItem.Enable; find.UpdateTime = DateTime.Now; await repsFix.AddOrUpdateAsync(find); await unitOfWork.SaveAsync(); return editItem; } catch (Exception ex) { IocContainer.Logger.Error(ex,"保存固定站信息异常"); DxHelper.MsgBoxHelper.ShowError("保存固定站信息异常"); return null; } } private async Task Delete(List list) { try { var ids = list.Select(p => p.Id); var unitOfWork = IocContainer.UnitOfWork; var repsSat = unitOfWork.Of(); await repsSat.DeleteAsync(p => ids.Contains(p.Id)); await unitOfWork.SaveAsync(); return true; } catch (Exception ex) { IocContainer.Logger.Error(ex,"删除卫星信息异常"); DxHelper.MsgBoxHelper.ShowError("删除卫星信息异常"); return false; } } private async void gridView1_DoubleClick(object sender, EventArgs e) { var editItem = gridView1.GetFocusedRow() as FixedStationViewModel; if (editItem == null) return; await Edit(editItem); } } }