public ФактическоеПотреблениеVM(ПланНормативныйТехнологический планНормативный) { cfc = new CodeFirstContext(); ActualConsumption = new ObservableCollection <ФактическоеПотребление>(); cfc.ФактическоеПотреблениеSet .Where(w => w.ПланНормативныйТехнологический.Id == планНормативный.Id) .Load(); var contextCollection = cfc.ФактическоеПотреблениеSet.Local; foreach (ФактическоеПотребление item in contextCollection) { ActualConsumption.Add(item); } //ActualConsumption = WorkCollection.GetФактическоеПотребление<ФактическоеПотребление>(cfc); cfc.УстановкаSet.Load(); Devices = WorkCollection.GetТехнологическоеУстройство <ТехнологическаяУстановка>(cfc); UpLoadComboBoxes(планНормативный); //if (ActualConsumption.Count > 0) //{ // UpLoadComboBoxes(планНормативный); //} ActualConsumption.CollectionChanged += ActualConsumption_CollectionChanged; }
public ДневнаяНормаVM(ДневнаяНормаНаУстановку дневнаяНормаНаУстановку) { // Инициализация контекста данных. cfc = new CodeFirstContext(); // Выбрать текущую запись о дневной норме, для обновления поля - режим работы, в свойстве SelectedMode. cfc.ДневнаяНормаНаУстановкуSet .Where(w => w.Id == дневнаяНормаНаУстановку.Id) .Load(); currentNorm = cfc.ДневнаяНормаНаУстановкуSet.Local.FirstOrDefault(); // Заполнение combobox, данными из таблицы РежимРаботыУстановкиSet. cfc.ежимРаботыУстановкиSet .Where(w => w.ТехнологическаяУстановка.УстройствоId == дневнаяНормаНаУстановку.ТехнологическаяУстановка.УстройствоId) .Load(); ModePowersDevices = WorkCollection.GetРежимыРаботыУстановки <ежимРаботыУстановки>(cfc); // Усановка combobox в выбранное состояние. selectedMode = currentNorm.ежимРаботыУстановки; // Обновление и заполнение DataGrid.ы if (selectedMode != null) { UpdateOperationMods(currentNorm.Норма); } }
public ПланНормативныйVM() { cfc = new CodeFirstContext(); cfc.СправочникSet.Load(); Plans = WorkCollection.GetПланНормативныйТехнологический <ПланНормативныйТехнологический>(cfc); Plans.CollectionChanged += Plans_CollectionChanged; }
private void UpdateDayOfNorm() { DayOfNorm .ToList() .ForEach(x => cfc.Entry(x).Reload()); DayOfNorm = WorkCollection.GetДневнаяНормаНаУстановку <ДневнаяНормаНаУстановку>(cfc); }
private void PowerDevices_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { // Данная выборка добавляет внешний ключ к полю ТехнологическоеУстройство, из текущего контекса, // так как при добавлении строки в DataGrid это поле пустое. // Существовала ошибка с пустой ссылкой поля currentDevice, когда добавленная строка // силового агрегата не имела внешнего ключа таблицы УстройствоSet. (sender as ObservableCollection <СиловойАгрегатВУстановке>) .Where(w => w.ТехнологическаяУстановка == null) .ToList() .ForEach(x => x.ТехнологическаяУстановка = currentDevice); WorkCollection.ItemCollectionChanged <СиловойАгрегатВУстановке>(cfc, e); if (e.Action == NotifyCollectionChangedAction.Add) { var coll = e.NewItems; foreach (СиловойАгрегатВУстановке item in coll) { cfc.УстройствоРежимРесурсSet.Add(new УстановкаРежимРесурс(item.Id, 1)); } cfc.SaveChanges(); } }
public СиловойАгрегатVM(ТехнологическаяУстановка технологическоеУстройство) { cfc = new CodeFirstContext(); cfc.СиловойАгрегатВУстройствеSet.Load(); cfc.УстановкаSet.Load(); cfc.УстройствоРежимРесурсSet.Load(); PowerDevices = new ObservableCollection <СиловойАгрегатВУстановке>(); установкаРежимРесурсSets = new ObservableCollection <УстановкаРежимРесурс>(); var contextCollection = cfc .СиловойАгрегатВУстройствеSet .Where(w => w.ТехнологическаяУстановка .УстройствоId.Equals(технологическоеУстройство.УстройствоId)); // Получение внешнего ключа из текущего контекста. currentDevice = (ТехнологическаяУстановка)cfc .УстановкаSet .Local .Where(w => w.УстройствоId == технологическоеУстройство.УстройствоId) .FirstOrDefault(); //TODO 2021-01-10: Вынести в отдельный класс по заполнению коллекций. foreach (СиловойАгрегатВУстановке item in contextCollection) { PowerDevices.Add(item); } установкаРежимРесурсSets = WorkCollection.GetУстановкаРежимРесурс <УстановкаРежимРесурс>(cfc); PowerDevices.CollectionChanged += PowerDevices_CollectionChanged; }
public ПланПоМесяцамVM() { cfc = new CodeFirstContext(); cfc.ПланПроизводстваПоМесяцамSet.Load(); планПроизводстваПоМесяцамs = WorkCollection.GetПланПоМесяцам <ПланПроизводстваПоМесяцам>(cfc); планПроизводстваПоМесяцамs.CollectionChanged += ПланПроизводстваПоМесяцамs_CollectionChanged; }
public УстройствоVM() { cfc = new CodeFirstContext(); cfc.УстановкаSet.Load(); Devices = WorkCollection.GetТехнологическоеУстройство <ТехнологическаяУстановка>(cfc); Devices.CollectionChanged += Devices_CollectionChanged; }
public СправочникРесурсовVM() { cfc = new CodeFirstContext(); cfc.СправочникРесурсовSet.Load(); ListResource = WorkCollection.GetСправочникРесурсов <СправочникРесурсов>(cfc); ListResource.CollectionChanged += ListResource_CollectionChanged; }
private void ActualConsumption_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { (sender as ObservableCollection <ФактическоеПотребление>) .Where(w => w.ПланНормативныйТехнологический == null) .ToList() .ForEach(x => x.ПланНормативныйТехнологический = currentPlan); WorkCollection.ItemCollectionChanged <ФактическоеПотребление>(cfc, e); }
private void ModeOperationDevice_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { //Добавление внешнего ключа в поле - СиловойАгрегатВУстройстве. (sender as ObservableCollection <ежимРаботыУстановки>) .Where(w => w.ТехнологическаяУстановка == null) .ToList() .ForEach(x => x.ТехнологическаяУстановка = currentDev); WorkCollection.ItemCollectionChanged <ежимРаботыУстановки>(cfc, e); }
//------------------------------------------------------------------------------ //Callback Name: apply_cb //------------------------------------------------------------------------------ public int apply_cb() { int errorCode = 0; try { //---- Enter your callback code here ----- NXOpen.Assemblies.Component ct = seleComp.GetSelectedObjects()[0] as NXOpen.Assemblies.Component; Part workPart = theSession.Parts.Work; if (ct != null) { List <string> err = new List <string>(); bool isBorrow; if (this.enum0.ValueAsString == "借用电极") { isBorrow = true; } else { isBorrow = false; } MoldInfo old = MoldInfo.GetAttribute(ct); MoldInfo mold = new MoldInfo() { MoldNumber = this.MoldNumber.WideValue.ToUpper(), WorkpieceNumber = this.PartNumber.WideValue.ToUpper(), ClientName = this.ClientNumber.WideValue.ToUpper(), EditionNumber = this.EditionNumber.WideValue.ToUpper(), MoldType = old.MoldType }; ParentAssmblieInfo info = new ParentAssmblieInfo(mold, user.CreatorUser); WorkCollection wkColl = asmColl.GetWorkCollection(old); err.AddRange(AlterWork(wkColl.Work, info)); err.AddRange(AlterEdm(wkColl.EdmModel, info)); err.AddRange(AlterElectrode(wkColl.Electrodes, info, isBorrow)); PartUtils.SetPartDisplay(workPart); ASMModel asm = new ASMModel(workPart); if (asm.Info.MoldInfo.Equals(old)) { err.AddRange(AlterAsm(asm, info)); } if (err.Count > 0) { ClassItem.Print(err.ToArray()); } } } catch (Exception ex) { //---- Enter your exception handling code here ----- errorCode = 1; theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString()); } return(errorCode); }
/// <summary> /// 修改版本 /// </summary> /// <param name="editionNumber"></param> private void UpdateEditionNumber(string editionNumber) { UFSession theUFSession = UFSession.GetUFSession(); Session theSession = Session.GetSession(); MoldInfo mf = asm.Info.MoldInfo; mf.EditionNumber = editionNumber; mf.SetAttribute(asm.PartTag); foreach (ElectrodeModel em in asmColl.GetElectrodes()) { MoldInfo mi = em.Info.MoldInfo; mi.EditionNumber = editionNumber; mi.SetAttribute(em.PartTag); string dwgName = em.Info.AllInfo.Name.EleName + "_dwg"; string dwg = em.WorkpieceDirectoryPath + em.Info.AllInfo.Name.EleName + "_dwg.prt"; if (File.Exists(dwg)) { Part dwgPart = null; try { dwgPart = theSession.Parts.FindObject(dwgName) as Part; if (dwgPart != null) { mi.SetAttribute(dwgPart); continue; } } catch { } Tag part; UFPart.LoadStatus error_status; theUFSession.Part.Open(dwg, out part, out error_status); mi.SetAttribute(NXObjectManager.Get(part) as Part); } } foreach (MoldInfo mi in asmColl.MoldInfo) { WorkCollection wkColl = asmColl.GetWorkCollection(mi); foreach (WorkModel wm in wkColl.Work) { MoldInfo wmMold = wm.Info.MoldInfo; wmMold.EditionNumber = editionNumber; wmMold.SetAttribute(wm.PartTag); } foreach (EDMModel em in wkColl.EdmModel) { MoldInfo wmMold = em.Info.MoldInfo; wmMold.EditionNumber = editionNumber; wmMold.SetAttribute(em.PartTag); } } PartUtils.SetPartDisplay(asm.PartTag); }
/// <summary> /// 默认电极名 /// </summary> /// <returns></returns> private string GetDefEleName(MoldInfo mold) { WorkCollection wc = new WorkCollection(mold); if (wc.Electrodes.Count == 0) { return(mold.MoldNumber + "-" + mold.WorkpieceNumber + "E1"); } else { ElectrodeNameInfo nameInfo = (wc.Electrodes[wc.Electrodes.Count - 1].Info).AllInfo.Name; string name = nameInfo.EleName.Substring(0, nameInfo.EleName.LastIndexOf("E")); return(name + "E" + (nameInfo.EleNumber + 1).ToString()); } }
public НормыПоУстановкамиVM(ПланПроизводстваПоДням планПроизводстваПоДням) { cfc = new CodeFirstContext(); cfc.УстановкаSet.Load(); cfc.ежимРаботыАгрегатаSet.Load(); cfc.ежимРаботыУстановкиSet.Load(); cfc.СиловойАгрегатВУстройствеSet.Load(); cfc.ДневнаяНормаНаУстановкуSet .Where(w => w.ПланПроизводстваПоДням.Id == планПроизводстваПоДням.Id) .Load(); DayOfNorm = WorkCollection.GetДневнаяНормаНаУстановку <ДневнаяНормаНаУстановку>(cfc); //TODO 2021-01-21: Доделать список ресурсов и по мелочи :), удачи тебе Дмитрий, ты справишся! }
private void OperatingModePD_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { //Добавление внешнего ключа в поле - СиловойАгрегатВУстройстве. (sender as ObservableCollection <ежимРаботыАгрегата>) .Where(w => w.СиловойАгрегатВУстройстве == null) .ToList() .ForEach(x => { x.СиловойАгрегатВУстройстве = currentPowerDev; x.НаименованиеРесурса = selectedRes.НаименованиеРесурса ?? "Наименование отсувсвует"; x.ТипЕдиниц = currentPowerDev.ТипЕдиницИзмерения; }); WorkCollection.ItemCollectionChanged <ежимРаботыАгрегата>(cfc, e); }
public ежимРаботыVM(УстановкаРежимРесурс устройствоРежимРесурс) { OperatingModePD = new ObservableCollection <ежимРаботыАгрегата>(); cfc = new CodeFirstContext(); //cfc.СправочникРесурсовSet.Load(); //cfc.УстройствоРежимРесурсSet // .Where(w => w.УстановкаId == устройствоРежимРесурс.УстановкаId // && w.РесурсId == устройствоРежимРесурс.РесурсId) // .Load(); //currentустройствоРежимРесурс = cfc.УстройствоРежимРесурсSet // .Local // .Where(w => w.РесурсId == устройствоРежимРесурс.РесурсId // && w.УстановкаId == устройствоРежимРесурс.УстановкаId // && w.РежимРаботыУстановкиId == устройствоРежимРесурс.РежимРаботыУстановкиId) // .FirstOrDefault(); ListResource = WorkCollection.GetСправочникРесурсов <СправочникРесурсов>(cfc); //selectedRes = cfc // .УстройствоРежимРесурсSet // .Local // .Where(w => w.УстановкаId == устройствоРежимРесурс.УстановкаId // && w.РесурсId == устройствоРежимРесурс.РесурсId) // .Select(s => s.СправочникРесурсов) // .FirstOrDefault(); var ContextCollection = cfc.УстройствоРежимРесурсSet.Local; //selectedRes = ContextCollection // .Where(w => w.УстановкаId == устройствоРежимРесурс.УстановкаId // && w.РесурсId == устройствоРежимРесурс.РесурсId) // .Select(s => s.СправочникРесурсов) // .FirstOrDefault(); //TODO 2021-01-10: Вынести в отдельный класс по заполнению коллекций. //foreach (УстановкаРежимРесурс item in ContextCollection) //{ // OperatingModePD.Add(item.РежимРаботыСиловогоАгретата); //} //currentустройствоРежимРесурс = ContextCollection // .Where(w => w.РесурсId == устройствоРежимРесурс.РесурсId // && w.УстановкаId == устройствоРежимРесурс.УстановкаId // && w.РежимРаботыАгрегатаId == устройствоРежимРесурс.РежимРаботыАгрегатаId) // .FirstOrDefault(); }
public ежимРаботыУстановкиVM(ТехнологическаяУстановка технологическаяУстановка) { cfc = new CodeFirstContext(); cfc.ежимРаботыУстановкиSet .Where(w => w.ТехнологическаяУстановка.УстройствоId == технологическаяУстановка.УстройствоId) .Load(); cfc.УстановкаSet .Where(w => w.УстройствоId == технологическаяУстановка.УстройствоId) .Load(); currentDev = cfc.УстановкаSet.Local.FirstOrDefault() as ТехнологическаяУстановка; ModeOperationDevice = WorkCollection.GetРежимыРаботыУстановки <ежимРаботыУстановки>(cfc); ModeOperationDevice.CollectionChanged += ModeOperationDevice_CollectionChanged; }
private List <string> CopWork(NXOpen.Assemblies.Component ct, WorkModel work, UserModel user) { List <string> err = new List <string>(); Matrix4 mat = new Matrix4(); mat.Identity(); MoldInfo mold = work.Info.MoldInfo.Clone() as MoldInfo; WorkCollection workColl = new WorkCollection(mold); NXOpen.Assemblies.Component moveCt = null; try { moveCt = AssmbliesUtils.MoveCompCopyPart(ct, new Vector3d(), mat); } catch (NXException ex) { err.Add("无法移动工件!" + ex.Message); return(err); } string name = work.WorkpieceDirectoryPath + mold.MoldNumber + "-" + mold.WorkpieceNumber + "-"; if (moveCt != null) { WorkInfo wk = new WorkInfo(mold, user, work.Info.WorkNumber, work.Info.Matr); try { NXObject make1 = AssmbliesUtils.MakeUnique(moveCt, name + "WORK" + (workColl.Work[workColl.Work.Count - 1].Info.WorkNumber + 1).ToString() + ".prt"); wk.WorkNumber = (workColl.Work[workColl.Work.Count - 1].Info.WorkNumber + 1); wk.SetAttribute(moveCt.Prototype as Part); } catch (NXException ex) { err.Add(name + "WORK" + (workColl.Work[workColl.Work.Count - 1].Info.WorkNumber + 1).ToString() + ".prt" + ex.Message + "无法创建唯一"); } } return(err); }
private void UpdateOperationMods(decimal норма) { CodeFirstContext cfc = new CodeFirstContext(); // Отбор записей в таблице РежимРаботыАгрегатаSet, где режим работы установки, // соответсвует режиму работы силового агрегата и коды установок совпадают. cfc.ежимРаботыАгрегатаSet .Where(w => w.ежимРаботы == selectedMode.ежимРаботы && w.СиловойАгрегатВУстройстве.ТехнологическаяУстановка.УстройствоId == selectedMode.ТехнологическаяУстановка.УстройствоId) .Load(); OperationMods = WorkCollection.GetРежимРаботы <ежимРаботыАгрегата>(cfc); try { OperationMods.ToList().ForEach(x => x.асчитанноеПотребление = Math.Round(((норма / selectedMode.Производительность) * x.Потребление), 2)); } catch (DivideByZeroException) { OperationMods.ToList().ForEach(x => x.асчитанноеПотребление = 0); } }
public ежимРаботыVM(СиловойАгрегатВУстановке агрегатВУстройстве) { cfc = new CodeFirstContext(); cfc.УстройствоРежимРесурсSet.Load(); cfc.СправочникРесурсовSet.Load(); cfc.ежимРаботыАгрегатаSet.Load(); cfc.СиловойАгрегатВУстройствеSet.Load(); OperatingModePD = new ObservableCollection <ежимРаботыАгрегата>(); var contextCollectionOperationModes = cfc .ежимРаботыАгрегатаSet .Local .Where(w => w.СиловойАгрегатВУстройстве .Id.Equals(агрегатВУстройстве.Id)); // Получение внешнего ключа из текущего контекста. currentPowerDev = cfc .СиловойАгрегатВУстройствеSet .Local .Where(w => w.Id == агрегатВУстройстве.Id) .FirstOrDefault(); // Установка значения combobox в ранее выбранное состояние. selectedТипЕдиниц = currentPowerDev.ТипЕдиницИзмерения; // Получение выбранного ресурса. //selectedRes = currentPowerDev.УстановкаРежимРесурс // .Where(w => w.СиловойАгрегатВУстановке.Id == currentPowerDev.Id) // .Select(s => s.СправочникРесурсов) // .FirstOrDefault(); int idrecord = cfc.УстройствоРежимРесурсSet .Local .Where(w => w.СиловойАгрегатВУстановкеFK == currentPowerDev.Id) .FirstOrDefault().СправочникРесурсовFK; selectedRes = cfc.СправочникРесурсовSet.Local.Where(w => w.Id == idrecord).FirstOrDefault(); currentустройствоРежимРесурс = cfc .УстройствоРежимРесурсSet .Local .Where(w => w.СиловойАгрегатВУстановкеFK == currentPowerDev.Id && w.СправочникРесурсовFK == selectedRes.Id) .FirstOrDefault(); //if (collection.FirstOrDefault() != null) //{ // currentPowerDev = collection // .FirstOrDefault() // .СиловойАгрегатВУстройстве; //} //TODO 2021-01-10: Вынести в отдельный класс по заполнению коллекций. foreach (ежимРаботыАгрегата item in contextCollectionOperationModes) { OperatingModePD.Add(item); } ListResource = WorkCollection.GetСправочникРесурсов <СправочникРесурсов>(cfc); OperatingModePD.CollectionChanged += OperatingModePD_CollectionChanged; }
private void ListResource_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { WorkCollection.ItemCollectionChanged <СправочникРесурсов>(cfc, e); }
private void Plans_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { WorkCollection.ItemCollectionChanged <ПланНормативныйТехнологический>(cfc, e); }
private void Devices_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { WorkCollection.ItemCollectionChanged <ТехнологическаяУстановка>(cfc, e); }