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);
        }
Пример #4
0
        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");

                    };
            }
        }
Пример #6
0
        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);
     }
 }
Пример #10
0
        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);
            }
        }
Пример #11
0
        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));
                }
            }
        }