| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- using DevExpress.Mvvm;
- using DevExpress.Xpo;
- using DevExpress.Xpo.DB.Exceptions;
- using DevExpress.XtraBars;
- using DevExpress.XtraLayout.Utils;
- using Ips.Library.Basic;
- using Ips.Library.DxpLib;
- using Ips.Library.Entity;
- using Ips.Sps.Adcs;
- using Ips.Sps.Ants;
- using Ips.Sps.Emts;
- using Ips.Sps.Sats;
- using Ips.Sps.Tsks.Commands;
- using Ips.Sps.TskStrategys;
- using System.Data;
- namespace Ips.Sps.Tsks
- {
- public partial class TskEditForm : DevExpress.XtraEditors.XtraForm
- {
- public TskEditForm()
- {
- InitializeComponent();
- _tskManager = TskManager.Default;
- _adcManager = AdcManager.Default;
- adjaSatsEdit.AdjaSatsChanged += SatText_EditValueChanged;
- }
- public TskEditForm(int? id, int stgId) : this()
- {
- this.Id = id;
- this.StrategyId = stgId;
- btnSaveOther.Visibility = id.HasValue ? BarItemVisibility.Always : BarItemVisibility.Never;
- }
- public int? Id { get; private set; }
- public int? StrategyId { get; private set; }
- private TskStrategy Strategy { get; set; }
- protected UnitOfWork uow { get; private set; }
- public Tsk EditModel { get => (Tsk)bsTsk.DataSource; }
- TskManager _tskManager;
- AdcManager _adcManager;
- List<Ant> _allAntList;
- List<Emt> _allEmtList;
- List<Sat> _allSatList;
- private void TskEditForm_Load(object sender, EventArgs e)
- {
- uow = new UnitOfWork();
- LoadResureList();
- Strategy = uow.GetObjectByKey<TskStrategy>(StrategyId);
- Tsk tsk;
- if (Id.HasValue)
- {
- tsk = uow.GetObjectByKey<Tsk>(Id.Value);
- }
- else
- {
- tsk = new Tsk(uow)
- {
- Name = $"{Strategy.Name}-{DateTime.Now:yyyyMMddHHmmss}",
- Strategy = Strategy
- };
- }
- if (tsk.AdCardList.IsNullOrEmpty())
- {
- var adCard = uow.Query<AdCard>().Where(m => m.Enable && m.IsDefault).FirstOrDefault();
- if (adCard != null)
- {
- tsk.AdCardList.Add(TskAdCard.CreateFrom(adCard, uow));
- }
- else
- {
- tsk.AdCardList.Add(new TskAdCard(uow));
- }
- }
- bsTsk.DataSource = tsk;
- ShowTskStrategy(tsk);
- }
- private void LoadResureList()
- {
- //_allSatList = _adcManager.GetSatList();
- _allSatList = uow.Query<Sat>().Where(m => m.Enable).OrderBy(m => m.SatNum).ToList();
- _allAntList = uow.Query<Ant>().OrderBy(m => m.Oid).ToList();
- _allEmtList = uow.Query<Emt>().Where(m => m.Enable).ToList();
- bsSat.DataSource = _allSatList;
- }
- private void ShowTskStrategy(Tsk tsk)
- {
- if (tsk.Strategy == null) return;
- TskStrategy strategy = tsk.Strategy;
- grpSatList.Visibility = strategy.ShowSatList ? LayoutVisibility.Always : LayoutVisibility.Never;
- grpAdInfo.Visibility = strategy.ShowAdcList ? LayoutVisibility.Always : LayoutVisibility.Never;
- grpSigList.Visibility = strategy.ShowSigList ? LayoutVisibility.Always : LayoutVisibility.Never;
- grpRefSigList.Visibility = strategy.ShowRefList ? LayoutVisibility.Always : LayoutVisibility.Never;
- grpDxSigs.Visibility = strategy.ShowDxSigList ? LayoutVisibility.Always : LayoutVisibility.Never;
- ItemForIsHistory.Visibility = strategy.SupHistory ? LayoutVisibility.Always : LayoutVisibility.Never;
- if (strategy.ShowSatList)
- {
- adjaSatsEdit.SetSatList(_allSatList);
- adjaSatsEdit.SetAdjaSatList(tsk.AdjaSatList);
- }
- if (strategy.ShowAdcList)
- {
- if (tsk.AdCardList.IsNullOrEmpty())
- {
- var adcList = uow.Query<AdCard>().Where(m => m.Enable && m.IsDefault).ToList();
- TskAdCard tskAdCard = new TskAdCard(uow);
- if (adcList.IsNotNullOrEmpty())
- {
- tskAdCard = new TskAdCard(uow);
- tskAdCard.CopyFrom(adcList.First());
- }
- tsk.AdCardList.Add(tskAdCard);
- }
- var adcard = tsk.AdCardList.First();
- tskAdcEditCtrl.SetResourceList(_allAntList, _allSatList);
- tskAdcEditCtrl.SetAdCard(adcard);
- }
- if (strategy.ShowSigList)
- {
- var tarSigCategory = strategy.TskType == TskType.LocTsk ? SignalCategory.TarSig : SignalCategory.SctSig;
- var showScanFreq = true;//strategy.TskType == TskType.LocTsk && strategy.SigType == SignalType.NORMAL;
- sigListCtrl.SetSigProperties(tarSigCategory, strategy.SigType, true, showScanFreq, _allSatList, _allEmtList);
- sigListCtrl.SetDataSource(tsk.SignalList);
- }
- if (strategy.ShowRefList)
- {
- refSigListCtrl.SetSigProperties(SignalCategory.RefSig, SignalType.NORMAL, true, false, _allSatList, _allEmtList);
- refSigListCtrl.SetDataSource(tsk.RefSignalList);
- }
- if (strategy.ShowDxSigList)
- {
- dxSigListCtrl.SetSigProperties(DxSignalType._BPSK, true, _allSatList);
- dxSigListCtrl.SetDataSource(tsk.DxSignalList);
- }
- if (tsk.AdCardList.IsNotNullOrEmpty())
- {
- //if (tsk.AdCardList.First().Channels.Any())
- //{
- // var defaultChannel = tsk.AdCardList.First().Channels.FirstOrDefault(m => m.SatIds.IsNotNullOrWhitespace());
- // if (defaultChannel != null)
- // {
- // var defaultSatId = defaultChannel.GetSatIds()[0];
- // sigListCtrl.SetSatInfo(defaultSatId);
- // }
- //}
- sigListCtrl.SetAdCardInfo(tsk.AdCardList.First());
- refSigListCtrl.SetAdCardInfo(tsk.AdCardList.First());
- dxSigListCtrl.SetAdCardInfo(tsk.AdCardList.First());
- }
- }
- private void btnSaveOther_Click(object sender, ItemClickEventArgs e)
- {
- UnitOfWork uowClone = new UnitOfWork();
- CloneHelper cloneHelper = new CloneHelper(uowClone);
- var newTsk = cloneHelper.Clone<Tsk>(EditModel, true);
- if (!_tskManager.CheckTskName(newTsk)) return;
- newTsk.State = TskState.Stop;
- uowClone.CommitChanges();
- this.Id = newTsk.Oid;
- this.DialogResult = DialogResult.OK;
- Close();
- Messenger.Default.Send(new ReloadTskMessage(this.Id));
- }
- private void btnSave_Click(object sender, ItemClickEventArgs e)
- {
- try
- {
- dataLayoutControl1.Validate();
- uow.CommitChanges();
- Id = ((Tsk)(bsTsk.DataSource)).Oid;
- this.DialogResult = DialogResult.OK;
- Close();
- Messenger.Default.Send(new ReloadTskMessage(this.Id));
- }
- catch (LockingException)
- {
- MsgHelper.ShowError("对象已被修改,请关闭后重新打开进行编辑!");
- }
- }
- private void btnCancel_Click(object sender, ItemClickEventArgs e)
- {
- Close();
- }
- private void SatText_EditValueChanged(object sender, EventArgs e)
- {
- sigListCtrl.SetDefaultSatText(MainSatIdLookUpEdit.Text, adjaSatsEdit.AdjaSatText);
- refSigListCtrl.SetDefaultSatText(MainSatIdLookUpEdit.Text, adjaSatsEdit.AdjaSatText);
- dxSigListCtrl.SetDefaultSatText(adjaSatsEdit.AdjaSatText);
- }
- }
- }
|