| 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);        }    }}
 |