public AddEditSystemReferenceTypeModel()
        {
            mSystemReferenceType = new SystemReferenceType();

            OkButtonCommand = new DelegateCommand<object>(OkButtonHander, CanExecuteOkButtonHandler);
            CancelButtonCommand = new DelegateCommand<object>(CancelButtonHander, 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);
                }
            }
        }
        /// <summary>
        ///     Save/Update SystemReference
        /// </summary>
        /// <param name="systemReferenceType"> </param>
        /// <returns> </returns>
        public SystemReferenceType SaveSystemReferenceType(SystemReferenceType systemReferenceType)
        {
            using (var cee = new CmsEntities())
            {
                //Check if the SystemReference exist
                SystemReferenceType dbSystemReferenceType = (from x in cee.SystemReferenceTypes where x.Id == systemReferenceType.Id select x).FirstOrDefault();

                if (dbSystemReferenceType == null)
                {
                    //Add new SystemReference
                    systemReferenceType.Code = systemReferenceType.Name.Replace(" ", "");
                    systemReferenceType.IsActive = true;
                    systemReferenceType.AllowDuplicates = false;
                    cee.SystemReferenceTypes.Add(systemReferenceType);
                }
                else
                {
                    //Update existing SystemReference
                    dbSystemReferenceType.Name = systemReferenceType.Name;
                    dbSystemReferenceType.Description = systemReferenceType.Description;
                    dbSystemReferenceType.Ordinal = systemReferenceType.Ordinal;
                    dbSystemReferenceType.ShowInTimesheet = systemReferenceType.ShowInTimesheet;
                    dbSystemReferenceType.AllowDuplicates = systemReferenceType.AllowDuplicates;
                }

                cee.SaveChanges();
            }
            return systemReferenceType;
        }
 private void cmsWebServiceClient_GetSystemReferenceTypeCompleted(object sender, GetSystemReferenceTypeCompletedEventArgs e)
 {
     mSystemReferenceType = e.Result;
     DataLoaded(null);
 }