public AddEditSystemReferenceViewModel(int issueId, List<LightSystemReference> inMemorySystemRefs) { SystemReference = new SystemReference { IssueId = issueId }; InMemorySystemReferences = inMemorySystemRefs; LoadData(); OkButtonCommand = new DelegateCommand<object>(OkButtonHandler, CanExecuteOkButtonHandler); CancelButtonCommand = new DelegateCommand<object>(CanelButtonHandler, CanExecuteOkButtonHandler); }
public AddEditSystemReferenceDialog(SystemReference selectedSystemReference, List<LightSystemReference> inMemorySystemRefs) { InitializeComponent(); CompositionInitializer.SatisfyImports(this); Title = "Edit Reference"; viewModel = new AddEditSystemReferenceViewModel(selectedSystemReference, inMemorySystemRefs) { View = this }; viewModel.Loaded += () => { DataContext = viewModel; Utils.ResetOriginalValues(this); }; }
public AddEditSystemReferenceViewModel(SystemReference systemReferenceEdit, List<LightSystemReference> inMemorySystemRefs) { RemoveEditedItemFromInMemoryList(systemReferenceEdit, inMemorySystemRefs); InEditMode = true; InMemorySystemReferences = inMemorySystemRefs; SystemReference = systemReferenceEdit; LoadData(); OkButtonCommand = new DelegateCommand<object>(OkButtonHandler, CanExecuteOkButtonHandler); CancelButtonCommand = new DelegateCommand<object>(CanelButtonHandler, CanExecuteOkButtonHandler); }
public void InsertUpdate(CmsEntities cee, ImportWbsProjectObject importWbsProjectObject, int issueId, SystemReferenceType systemReferenceType) { foreach (var systemReferenceDataAdapter in importWbsProjectObject.Children) { var existing = cee.SystemReferences.FirstOrDefault(x => x.IssueId == issueId && x.Number == systemReferenceDataAdapter.WbsElement); if (existing != null) //Exist so lets update { mLog.Verbose("Updating SystemReferenceId ='{0}', IssueId ='{1}', SystemReferenceTypeId ='{2}' ({3}) Number ='{4}' to Description ='{5}', FundingType ='{6}', ActualValue ='{7}', EstValue ='{8}'", existing.Id, existing.IssueId, existing.SystemReferenceTypeId,existing.SystemReferenceType.Name, existing.Number, existing.Description, existing.FundingType, existing.ActualValue, existing.EstValue); existing.Description = systemReferenceDataAdapter.WbsElementDescription; existing.FundingType = systemReferenceDataAdapter.SpendClassification == "CAPEX" ? "CAPEX" : systemReferenceDataAdapter.SpendClassification == "OPEX" ? "OPEX" : "--"; existing.Status = systemReferenceDataAdapter.Status; existing.ActualValue = systemReferenceDataAdapter.Actuals; existing.EstValue = systemReferenceDataAdapter.WbsBudget; } else //Insert new { SystemReference newReference = new SystemReference { IssueId = issueId, Number = systemReferenceDataAdapter.WbsElement, SystemReferenceTypeId = systemReferenceType.Id, Description = systemReferenceDataAdapter.WbsElementDescription, FundingType = systemReferenceDataAdapter.SpendClassification == "CAPEX" ? "CAPEX" : systemReferenceDataAdapter.SpendClassification == "OPEX" ? "OPEX" : "--", Status = systemReferenceDataAdapter.Status, ActualValue = systemReferenceDataAdapter.Actuals, EstValue = systemReferenceDataAdapter.WbsBudget }; cee.SystemReferences.Add(newReference); mLog.Verbose("Inserting new SystemReferenceId ='{0}', IssueId ='{1}', SystemReferenceTypeId ='{2}' ({3}) Number ='{4}', Description ='{5}', FundingType ='{6}', ActualValue ='{7}', EstValue ='{8}'", newReference.Id, newReference.IssueId, newReference.SystemReferenceTypeId, systemReferenceType.Name, newReference.Number, newReference.Description, newReference.FundingType, newReference.ActualValue, newReference.EstValue); } } }
private void EditHandler(object parameter) { if (SelectedSystemReference != null) { SystemReference clone = new SystemReference { //in case user cancels out... FundingType = SelectedSystemReference.FundingType, SystemReferenceType = SelectedSystemReference.SystemReferenceType, Number = SelectedSystemReference.Number, Description = SelectedSystemReference.Description, EstValue = SelectedSystemReference.EstValue }; List<LightSystemReference> systemReferences = (from x in SystemReferences where x.Id == 0 select new LightSystemReference { Id = 0, Number = x.Number, SystemReferenceTypeId = x.SystemReferenceTypeId }).ToList(); AddEditSystemReferenceDialog dialog = new AddEditSystemReferenceDialog(SelectedSystemReference, systemReferences); dialog.Show(); dialog.Closed += (e, s) => { if (dialog.DialogResult.HasValue && dialog.DialogResult.Value) { Utils.OnCollectionChanged(EventAggregator, mIssue, PROPERTYNAME, true); } else { //reverse out changes SelectedSystemReference.SystemReferenceType = clone.SystemReferenceType; SelectedSystemReference.FundingType = clone.FundingType; SelectedSystemReference.Number = clone.Number; SelectedSystemReference.Description = clone.Description; SelectedSystemReference.EstValue = clone.EstValue; } RaisePropertyChanged("SystemReferences"); }; } }
private void LoadOtherFinancialAccruals(int issueId, DateTime date) { var getVendorsTask = DatabaseLoader.GetVendors(); var getSystemReferencesTask = DatabaseLoader.GetSystemReferences(issueId); var getOtherFinancialAccrualsTask = DatabaseLoader.GetOtherFinancialAccruals(issueId, date); var tasks = new List<Task> { getVendorsTask, getSystemReferencesTask, getOtherFinancialAccrualsTask }; Task.Factory.ContinueWhenAll(tasks.ToArray(), xx => { CMS.UiFactory.StartNew(() => { mVendors = getVendorsTask.Result; mWbsElements = getSystemReferencesTask.Result.Where(x => x.SystemReferenceType.Code == CommonUtils.SystemReferenceTypeCode.PRJWBS.ToString()).ToList(); mProjectDefinition = getSystemReferencesTask.Result.FirstOrDefault(x => x.SystemReferenceType.Code == CommonUtils.SystemReferenceTypeCode.PRJDEF.ToString()); AddButtonCommand.RaiseCanExecuteChanged(); // we have loaded mProjectDefinition so reload the permission to click RemoveButtonCommand.RaiseCanExecuteChanged(); OkButtonCommand.RaiseCanExecuteChanged(); CancelButtonCommand.RaiseCanExecuteChanged(); //Get OtherAccruals foreach (var issueFinancialOtherAccrual in getOtherFinancialAccrualsTask.Result) { PurchaseOrderOtherAccureModel purchaseOrderOtherAccureModel = new PurchaseOrderOtherAccureModel( issueFinancialOtherAccrual, mWbsElements, mVendors, View); OtherAccruals.Add(purchaseOrderOtherAccureModel); } RaisePropertyChanged("OtherAccruals"); RaisePropertyChanged("LastImportedByUserDate"); }); }); //CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); //{ // cmsWebServiceClient.GetPropertyListNamesCompleted += (s2, e2) => // { // //Get Vendors // mVendors = e2.Result; // cmsWebServiceClient.GetSystemReferencesCompleted += (s3, e3) => // { // //Get WbsElements // mWbsElements = e3.Result.Where(x => x.SystemReferenceType.Code == CommonUtils.SystemReferenceTypeCode.PRJWBS.ToString()).ToList(); // mProjectDefinition = e3.Result.FirstOrDefault(x => x.SystemReferenceType.Code == CommonUtils.SystemReferenceTypeCode.PRJDEF.ToString()); // AddButtonCommand.RaiseCanExecuteChanged(); // we have loaded mProjectDefinition so reload the permission to click // RemoveButtonCommand.RaiseCanExecuteChanged(); // OkButtonCommand.RaiseCanExecuteChanged(); // CancelButtonCommand.RaiseCanExecuteChanged(); // cmsWebServiceClient.GetOtherFinancialAccrualsCompleted += (s1, e1) => // { // //Get OtherAccruals // foreach (var issueFinancialOtherAccrual in e1.Result) // { // PurchaseOrderOtherAccureModel purchaseOrderOtherAccureModel = new PurchaseOrderOtherAccureModel( // issueFinancialOtherAccrual, mWbsElements, mVendors, View); // OtherAccruals.Add(purchaseOrderOtherAccureModel); // } // RaisePropertyChanged("OtherAccruals"); // RaisePropertyChanged("LastImportedByUserDate"); // }; // cmsWebServiceClient.GetOtherFinancialAccrualsAsync(issueId, date); // }; // cmsWebServiceClient.GetSystemReferencesAsync(issueId); //hardcoded // }; // cmsWebServiceClient.GetPropertyListNamesAsync("Vendors"); //} }
private void ValidateWbsElement(SystemReference wbsElement) { RemoveValidationError("WbsElement"); if (wbsElement == null) { AddValidationError("WbsElement", "WBS is a required field"); } else if (wbsElement.Status == false) { AddValidationError("WbsElement", "Please select an active WBS Element."); } }
private void RemoveEditedItemFromThisList(SystemReference systemReferenceEdit) { LightSystemReference toremove = null; foreach (LightSystemReference systemRef in LightSystemReferences) { if (systemRef.SystemReferenceTypeId == systemReferenceEdit.SystemReferenceTypeId && systemRef.Number.Equals(systemReferenceEdit.Number, StringComparison.InvariantCultureIgnoreCase)) { toremove = systemRef; break; } } if (toremove != null) { LightSystemReferences.Remove(toremove); } }
/// <summary> /// Removes the edited item from in memory list. /// Makes life much easier when checking for duplicates and we do not have a id yet ( ie not saved). /// </summary> /// <param name="systemReferenceEdit">The system reference edit.</param> /// <param name="inMemorySystemRefs">The in memory system refs.</param> private static void RemoveEditedItemFromInMemoryList(SystemReference systemReferenceEdit, List<LightSystemReference> inMemorySystemRefs) { LightSystemReference toremove = null; foreach (LightSystemReference systemRef in inMemorySystemRefs) { if (systemRef.Id == 0 && systemRef.SystemReferenceTypeId == systemReferenceEdit.SystemReferenceTypeId && systemRef.Number.Equals(systemReferenceEdit.Number, StringComparison.InvariantCultureIgnoreCase)) { toremove = systemRef; break; } } if (toremove != null) { inMemorySystemRefs.Remove(toremove); } }
private void SaveIssueSystemReferences(Issue issue, Issue originalIssue, CmsEntities cee) { log.Verbose("SaveIssueSystemReferences()"); //Delete cee.DeleteWhere<SystemReference>(cee, x => x.IssueId == issue.Id); foreach (SystemReference systemReference in issue.SystemReferences.ToList()) { var sr = new SystemReference { IssueId = systemReference.IssueId, SystemReferenceTypeId = systemReference.SystemReferenceTypeId, Number = systemReference.Number, Description = systemReference.Description, EstValue = systemReference.EstValue, ActualValue = systemReference.ActualValue, FundingType = systemReference.FundingType }; originalIssue.SystemReferences.Add(sr); } }
public void UpdateGroupSystemReference(SystemReference systemReference, ImportWbsProjectObject importWbsProjectObject) { //update sum of children Actuals to existinProjDefSystemReference Actual var actualSum = importWbsProjectObject.Children.Sum(x => x.Actuals); var estDev = importWbsProjectObject.IsOrphaned ? importWbsProjectObject.Children.Sum(x => x.WbsBudget) : importWbsProjectObject.ProjDefSystemReference.WbsBudget; systemReference.Description = importWbsProjectObject.ProjDefSystemReference.WbsElementDescription; systemReference.FundingType = importWbsProjectObject.ProjDefSystemReference.SpendClassification == "CAPEX" ? "CAPEX" : importWbsProjectObject.ProjDefSystemReference.SpendClassification == "OPEX" ? "OPEX" : "--"; systemReference.ActualValue = actualSum; systemReference.EstValue = estDev; var systemReferenceType = SystemReferenceTypes.FirstOrDefault(x => x.Id == systemReference.SystemReferenceTypeId); var systemReferenceTypeName = systemReferenceType == null ? string.Empty: systemReferenceType.Name; mLog.Verbose("Updating SystemReferenceId ='{0}', IssueId ='{1}', SystemReferenceTypeId ='{2}' ({3}) Number ='{4}' to Description ='{5}', FundingType ='{6}', ActualValue ='{7}', EstValue ='{8}'", systemReference.Id, systemReference.IssueId, systemReference.SystemReferenceTypeId,systemReferenceTypeName, systemReference.Number, systemReference.Description, systemReference.FundingType, systemReference.ActualValue, systemReference.EstValue); }
private void InsertData(IList<IssueSystemReferencesDataAdapter> importData) { if (importData.Count == 0) { RaiseMessage(CommonUtils.MessageType.Warning, NoDataFoundForWorkSheetMessage()); return; } for (int i = 0; i < importData.Count; i++) { IssueSystemReferencesDataAdapter adapter = importData[i]; var systemReference = new SystemReference(); //IssueId if (string.IsNullOrEmpty(adapter.IssueId)) { RaiseMessage(CommonUtils.MessageType.Error, string.Format(BuildPropertyEmpty("IssueId", i + 1))); continue; } int issueId; if (!int.TryParse(adapter.IssueId, out issueId)) { RaiseMessage(CommonUtils.MessageType.Error, string.Format(BuildPropertyIsNotNumeric("IssueId", i + 1))); continue; } int count = (from x in Cee.Issues where x.Id == issueId select x.Id).Count(); if (count == 0) { RaiseMessage(CommonUtils.MessageType.Error, string.Format(BuildItemNotFoundInDatabaseMessage("IssueId", adapter.IssueId, i + 1))); continue; } systemReference.IssueId = issueId; //SystemReferenceType SystemReferenceType systemReferenceTypeMatch = (from x in mExistingSystemReferenceTypes where x.Code.ToLower() == adapter.SystemReferenceType.ToLower() select x).FirstOrDefault(); if (systemReferenceTypeMatch == null) { RaiseMessage(CommonUtils.MessageType.Error, String.Format(BuildItemNotFoundInDatabaseMessage("SystemReferenceType", adapter.SystemReferenceType, adapter.RowNumber))); continue; } systemReference.SystemReferenceTypeId = systemReferenceTypeMatch.Id; systemReference.SystemReferenceType = systemReferenceTypeMatch; //Number if (string.IsNullOrEmpty(adapter.Number)) { RaiseMessage(CommonUtils.MessageType.Error, string.Format(BuildPropertyEmpty("Number", i + 1))); } systemReference.Number = adapter.Number; //SystemReference exist ? SystemReference dbMatch = (from x in mExistingSystemReferences where String.Compare(x.Number, adapter.Number, true, CultureInfo.CurrentCulture) == 0 && x.SystemReferenceTypeId == systemReferenceTypeMatch.Id && x.IssueId == issueId select x).FirstOrDefault(); if (dbMatch == null) { systemReference.Description = adapter.Description; if (!String.IsNullOrEmpty(adapter.EstValue)) systemReference.EstValue = decimal.Parse(adapter.EstValue); if (!String.IsNullOrEmpty(adapter.ActualValue)) systemReference.ActualValue = decimal.Parse(adapter.ActualValue); systemReference.FundingType = adapter.Funding; } else { RaiseMessage(CommonUtils.MessageType.Error, String.Format("SystemReference for IssueID '{0}' SystemReferenceType '{1}' and Number '{2}' already exist. Row Number = {3}", systemReference.IssueId, systemReference.SystemReferenceType.Name, systemReference.Number, adapter.RowNumber)); continue; } mSavedResults.Add(systemReference); } if (mSavedResults.Count == 0) { RaiseMessage(CommonUtils.MessageType.Warning, string.Format("No System References were added from from worksheet {0}.", WorkSheetName)); } else { //SAVE Cee.SystemReferences.AddRange(mSavedResults); Cee.SaveChanges(); foreach (var systemReference in mSavedResults) { RaiseMessage(CommonUtils.MessageType.Added, string.Format("Inserted SystemReference 'IssueId: {0} - System Reference Type: {1}', Number: '{2}'.", systemReference.IssueId, systemReference.SystemReferenceType.Name, systemReference.Number)); } } }