public void Duplicate() { if (!isProcessingMultipleDuplicates) { MainViewModel.EntitiesUndoRedoManager.PauseActionId(); } foreach (BASELINE_ITEMProjection selectedEntity in MainViewModel.SelectedEntities) { BASELINE_ITEMProjection newProjection = new BASELINE_ITEMProjection(); DataUtils.ShallowCopy(newProjection.BASELINE_ITEM, selectedEntity.BASELINE_ITEM); newProjection.BASELINE_ITEM.GUID = Guid.Empty; AREA selectedAREA = AREACollection.FirstOrDefault(x => x.GUID == newProjection.BASELINE_ITEM.GUID_AREA); DISCIPLINE selectedDISCIPLINE = DISCIPLINECollection.FirstOrDefault(x => x.GUID == newProjection.BASELINE_ITEM.GUID_DISCIPLINE); DOCTYPE selectedDOCTYPE = DOCTYPECollection.FirstOrDefault(x => x.GUID == newProjection.BASELINE_ITEM.GUID_DOCTYPE); newProjection.BASELINE_ITEM.INTERNAL_NUM = BluePrintDataUtils.BASELINEITEM_Generate_InternalNumber(loadPROJECT, MainViewModel.Entities, selectedAREA, selectedDISCIPLINE, selectedDOCTYPE, newProjection.GUID); MainViewModel.EntitiesUndoRedoManager.AddUndo(newProjection, null, null, null, EntityMessageType.Added); MainViewModel.Save(newProjection); } if (!isProcessingMultipleDuplicates) { MainViewModel.EntitiesUndoRedoManager.UnpauseActionId(); } }
public void CellValueChanging(CellValueChangedEventArgs e) { if (e.Column.FieldName == "GUID_DDOCTYPE") { WORKPACK changingWORKPACK = (WORKPACK)e.Row; DOCTYPE chosenDOCTYPE = LookUpDOCTYPES.Entities.FirstOrDefault(entity => entity.GUID == (Guid)e.Value); if (chosenDOCTYPE != null && chosenDOCTYPE.GUID_DDEPARTMENT != null) { changingWORKPACK.GUID_DDEPARTMENT = chosenDOCTYPE.DEPARTMENT.GUID; PROJECTWORKPACKSDetails.UpdateSelectedEntity(); } } else if (e.Column.FieldName == "STARTDATE" || e.Column.FieldName == "ENDDATE") { DateTime startDate; DateTime endDate; WORKPACK changingWORKPACK = (WORKPACK)e.Row; if (e.Column.FieldName == "STARTDATE") { startDate = (DateTime)e.Value; endDate = changingWORKPACK.ENDDATE; if (endDate < startDate) { endDate = BluePrintDataUtils.WORKPACK_Calculate_EndDate(startDate, Entity); changingWORKPACK.ENDDATE = endDate; } } else { endDate = (DateTime)e.Value; startDate = changingWORKPACK.STARTDATE; if (endDate < startDate) { startDate = BluePrintDataUtils.WORKPACK_Calculate_StartDate(endDate, Entity); changingWORKPACK.STARTDATE = startDate; } } DateTime reviewStartDate = startDate; DateTime reviewEndDate = endDate; BluePrintDataUtils.WORKPACK_Calculate_ReviewPeriod(ref reviewStartDate, ref reviewEndDate, Entity, false); changingWORKPACK.REVIEWSTARTDATE = reviewStartDate; if (reviewEndDate >= endDate) { changingWORKPACK.REVIEWENDDATE = endDate; } else { changingWORKPACK.REVIEWENDDATE = reviewEndDate; } PROJECTWORKPACKSDetails.UpdateSelectedEntity(); } }
/// <summary> /// Influence column(s) when changes happens in other column /// </summary> public void CellValueChanging(CellValueChangedEventArgs e) { if (e.RowHandle != GridControl.NewItemRowHandle) { return; } BASELINE_ITEMProjection activeBASELINE_ITEM = (BASELINE_ITEMProjection)e.Row; if (e.Column.FieldName == BindableBase.GetPropertyName(() => new BASELINE_ITEMProjection().BASELINE_ITEM) + "." + BindableBase.GetPropertyName(() => new BASELINE_ITEM().GUID_WORKPACK)) { WORKPACK chosenWORKPACK = WORKPACKCollection.FirstOrDefault(entity => entity.GUID == (Guid)e.Value); if (chosenWORKPACK != null) { activeBASELINE_ITEM.BASELINE_ITEM.GUID_AREA = chosenWORKPACK.GUID_DAREA; activeBASELINE_ITEM.BASELINE_ITEM.GUID_DOCTYPE = chosenWORKPACK.GUID_DDOCTYPE; activeBASELINE_ITEM.BASELINE_ITEM.GUID_DEPARTMENT = chosenWORKPACK.GUID_DDEPARTMENT; activeBASELINE_ITEM.BASELINE_ITEM.GUID_DISCIPLINE = chosenWORKPACK.GUID_DDISCIPLINE; activeBASELINE_ITEM.BASELINE_ITEM.GUID_PHASE = chosenWORKPACK.PHASE != null ? chosenWORKPACK.GUID_DPHASE : null; var SelectedAREA = AREACollection.FirstOrDefault(x => x.GUID == chosenWORKPACK.GUID_DAREA); var SelectedDOCTYPE = DOCTYPECollection.FirstOrDefault(x => x.GUID == chosenWORKPACK.GUID_DDOCTYPE); var SelectedDISCIPLINE = DISCIPLINECollection.FirstOrDefault(x => x.GUID == chosenWORKPACK.GUID_DDISCIPLINE); activeBASELINE_ITEM.BASELINE_ITEM.INTERNAL_NUM = BluePrintDataUtils.BASELINEITEM_Generate_InternalNumber(loadPROJECT, MainViewModel.Entities, SelectedAREA, SelectedDISCIPLINE, SelectedDOCTYPE); MainViewModel.UpdateSelectedEntity(); } } else if (e.Column.FieldName == BindableBase.GetPropertyName(() => new BASELINE_ITEMProjection().BASELINE_ITEM) + "." + BindableBase.GetPropertyName(() => new BASELINE_ITEM().GUID_DOCTYPE)) { DOCTYPE chosenDOCTYPE = DOCTYPECollection.FirstOrDefault(entity => entity.GUID == (Guid)e.Value); if (chosenDOCTYPE != null && chosenDOCTYPE.GUID_DDEPARTMENT != null) { activeBASELINE_ITEM.BASELINE_ITEM.GUID_DEPARTMENT = chosenDOCTYPE.DEPARTMENT.GUID; MainViewModel.UpdateSelectedEntity(); } } }
/// <summary> /// Generate internal number1 when all required fields are populated /// </summary> public static string BASELINEITEM_Generate_InternalNumber(PROJECT fromPROJECT, BASELINE_ITEM fromBASELINE_ITEM, IEnumerable <BASELINE_ITEM> BASELINE_ITEMEntities, AREA selectedAREA, DISCIPLINE selectedDISCIPLINE, DOCTYPE selectedDOCTYPE) { if (selectedAREA != null && selectedDISCIPLINE != null && selectedDOCTYPE != null) { string InternalNum = fromPROJECT.NUMBER; InternalNum += "-" + selectedAREA.INTERNAL_NUM; InternalNum += selectedDOCTYPE.CODE; InternalNum += selectedDISCIPLINE.CODE; int InternalNameCount = BASELINE_ITEMEntities.Count(obj => obj.INTERNAL_NUM != null && obj.INTERNAL_NUM.Contains(InternalNum)) + 1; InternalNum += InternalNameCount.ToString(); return(InternalNum); } else { return(string.Empty); } }
/// <summary> /// Generate internal number1 when all required fields are populated /// </summary> public static string BASELINEITEM_Generate_InternalNumber(PROJECT fromPROJECT, IEnumerable <BASELINE_ITEMProjection> BASELINE_ITEMEntities, AREA selectedAREA, DISCIPLINE selectedDISCIPLINE, DOCTYPE selectedDOCTYPE, Guid?excludeGUID = null) { if (selectedAREA != null && selectedDISCIPLINE != null && selectedDOCTYPE != null) { string InternalNum = fromPROJECT.NUMBER; if (selectedAREA != null) { InternalNum += "-" + selectedAREA.INTERNAL_NUM; } if (selectedDOCTYPE != null) { InternalNum += selectedDOCTYPE.CODE; } if (selectedDISCIPLINE != null) { InternalNum += selectedDISCIPLINE.CODE; } int internalNameCount = BASELINE_ITEMEntities.Where(x => x.GUID != excludeGUID).Count(x => x.BASELINE_ITEM.INTERNAL_NUM != null && x.BASELINE_ITEM.INTERNAL_NUM.Contains(InternalNum)); internalNameCount += 1; InternalNum += internalNameCount.ToString(); return(InternalNum); } else { return(string.Empty); } }