public bool GetElectricalEquipmentType(string typeName, ElectricalEquipment newEquipment, int rowIndex) { if (string.IsNullOrEmpty(typeName)) { if (MetaData.ImportType == CommonUtils.ImportType.UpdateElectrical) { return false; } } if (string.IsNullOrEmpty(typeName)) { RaiseMessage(CommonUtils.MessageType.Error, string.Format("WorkSheet '{0}' Row '{1}': Type row is blank. Skipping.", WorkSheetName, rowIndex)); return true; } ElectricalEquipmentType equipmentType = (from x in mExistingEquipmentTypes where string.Compare(x.Name, typeName, true, CultureInfo.CurrentCulture) == 0 select x).FirstOrDefault(); if (equipmentType == null) { if (CanCreateProperties) { equipmentType = new ElectricalEquipmentType { Name = typeName }; mExistingEquipmentTypes.Add(equipmentType); } else { RaiseMessage(CommonUtils.MessageType.Error, string.Format("WorkSheet '{0}' Row '{1}':Could not match '{2}' Mech Equip Type. Skipping.", WorkSheetName, rowIndex, typeName)); return true; } } newEquipment.ElectricalEquipmentTypeId = equipmentType.Id; return false; }
public ElectricalEquipmentComponentsControl(ElectricalEquipment electricalEquipment) { InitializeComponent(); CompositionInitializer.SatisfyImports(this); mViewModel = new ElectricalEquipmentComponentsViewModel(electricalEquipment); mViewModel.CollectionChanged += (count) => { OnCollectionChanged(count); }; mViewModel.View = this; DataContext = mViewModel; }
public ElectricalRelatedIssuesViewModel(ElectricalEquipment electricalEquipment) { CompositionInitializer.SatisfyImports(this); mElectricalEquipment = electricalEquipment; LoadData(); CreateCommand = new DelegateCommand<object>(AddRelatedIssueHandler, CanCreate); LinkCommand = new DelegateCommand<object>(LinkIssueButtonHandler, CanLink); ViewCommand = new DelegateCommand<object>(OpenIssueButtonHandler, CanView); }
public ElectricalEquipmentComponentsViewModel(ElectricalEquipment electricalEquipment) { CompositionInitializer.SatisfyImports(this); mElectricalEquipment = electricalEquipment; AddComponentCommand = new DelegateCommand<object>(AddButtonHandler, CanAdd); RemoveComponentCommand = new DelegateCommand<object>(DeleteButtonHandler, CanDelete); EditComponentCommand = new DelegateCommand<object>(EditComponentHandler, CanModify); SelectComponentCommand = new DelegateCommand<object>(SelectButtonHandler, CanView); MoveComponentCommand = new DelegateCommand<object>(MoveComponentHandler, CanModify); mDictionary = Utils.BuildDictionaryForCollection(mElectricalEquipment.ElectricalEquipmentComponents.Select(x => x.Id).ToList()); }
public ElectricalEquipmentDocumentsViewModel(ElectricalEquipment electricalEquipment) { CompositionInitializer.SatisfyImports(this); mElectricalEquipment = electricalEquipment; CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetElectricalDocumentsCompleted += cmsWebServiceClient_GetElectricalDocumentsCompleted; cmsWebServiceClient.GetElectricalDocumentsAsync(ElectricalEquipment.Id); AddCommand = new DelegateCommand<object>(AddButtonHandler, CanAdd); DeleteCommand = new DelegateCommand<object>(DeleteButtonHandler, CanDelete); OpenCommand = new DelegateCommand<object>(OpenDocumentHandler, CanView); }
public ElectricalEquipmentAttachmentsViewModel(ElectricalEquipment electricalEquipment, ElectricalAttachmentsControl view) { CompositionInitializer.SatisfyImports(this); View = view; AddAttachmentCommand = new DelegateCommand<object>(AddFileHandler, CanAdd); RemoveAttachmentCommand = new DelegateCommand<object>(DeleteButtonHandler, CanDelete); ExportButton = new DelegateCommand<object>(ExportButtonHandler, x => true); mElectricalEquipment = electricalEquipment; Attachments = new ObservableCollection<ElectricalEquipmentAttachment>(); CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetAttachmentTypesCompleted += cmsWebServiceClient_GetAttachmentTypesCompleted; cmsWebServiceClient.GetAttachmentTypesAsync(); }
private List<UpperEquipment> mAllUpperEquipments; //everytime the Selected Area is bound we need to reset the upper equipment list using the area id selected. #endregion Fields #region Constructors public AddElectricalEquipmentViewModel() { CompositionInitializer.SatisfyImports(this); Equipment = new ElectricalEquipment(); var pidDocumentsTask = DatabaseLoader.GetQuickDocuments(CommonUtils.DoctypePidCode); var specificationDocumentsTask = DatabaseLoader.GetQuickDocuments(CommonUtils.DoctypeFuncspecCode); var getElectricalEquipmentTypesTask = DatabaseLoader.GetElectricalEquipmentTypes(); var getUpperEquipmentsTask = DatabaseLoader.GetUpperEquipments(); List<Task> tasks = new List<Task>(); tasks.Add(pidDocumentsTask); tasks.Add(specificationDocumentsTask); tasks.Add(getElectricalEquipmentTypesTask); tasks.Add(getUpperEquipmentsTask); Task.Factory.ContinueWhenAll(tasks.ToArray(), x => { CMS.UiFactory.StartNew(() => { PandIDDocuments = pidDocumentsTask.Result; SpecificationDocuments = specificationDocumentsTask.Result; Types = getElectricalEquipmentTypesTask.Result; mAllUpperEquipments = getUpperEquipmentsTask.Result; mAllUpperEquipments.Insert(0, new UpperEquipment {Name = CMS.Constants.UpperEquipmentNullName}); UpperEquipments = mAllUpperEquipments; RaisePropertyChanged("PandIDDocuments"); RaisePropertyChanged("SpecificationDocuments"); RaisePropertyChanged("Types"); RaisePropertyChanged("UpperEquipments"); OnDataSourceLoaded(); }); }); Areas = new ObservableCollection<Area>(from x in CMS.Cache.Areas where x.IsActive && x.SiteId == CMS.AppSetting.DefaultSiteId select x); OkButtonCommand = new DelegateCommand<object>(OkButtonHander, CanModify); CancelButtonCommand = new DelegateCommand<object>(CancelButtonHander, x => true); }
public ElectricalAttachmentsControl(ElectricalEquipment electricalEquipment) { InitializeComponent(); CompositionInitializer.SatisfyImports(this); mElectricalEquipment = electricalEquipment; ViewModel = new ElectricalEquipmentAttachmentsViewModel(electricalEquipment, this) { View = this }; ViewModel.UploadComplete += () => { }; ViewModel.Loaded += (s1) => { Utils.ResetOriginalValues(AttachedFilesGridView); Utils.SetUpChangeEvents(AttachedFilesGridView, EventAggregator, electricalEquipment); DataContext = ViewModel; if (ModelLoaded!=null) { ModelLoaded(); } }; ViewModel.ErrorOccurred += (message) => { List<string> errors = new List<string>(); errors.Add(message); this.ValidationPopup.Show(Utils.BuildValidationResultFromServerErrors("", errors)); }; ViewModel.CollectionChanged += (count) => { OnCollectionChanged(count); }; }
private void AddInsertRevisionHistory(ElectricalEquipment newEquipment) { decimal revision = new decimal(1.000); Cee.ElectricalEquipments.Add(newEquipment); ElectricalEquipmentRevisionHistory rvh = new ElectricalEquipmentRevisionHistory { Date = DateTime.Now, UserId = MetaData.UserId, Description = BuildRevisionHistoryInsertComment(MetaData.RevisionHistoryComment), Revision = revision, IsSystemMessage = true }; newEquipment.ElectricalEquipmentRevisionHistories.Add(rvh); }
public void SaveElectricalRelatedIssues(ElectricalEquipment electricalEquipment, CmsEntities cee) { //Delete List<IssueRelatedElectricalEquipment> originals = (from x in cee.IssueRelatedElectricalEquipments where x.ElectricalEquipmentId == electricalEquipment.Id select x).ToList(); originals.ForEach(x => cee.IssueRelatedElectricalEquipments.Remove(x)); foreach (IssueRelatedElectricalEquipment issueRelatedElectricalEquipment in electricalEquipment.IssueRelatedElectricalEquipments) { IssueRelatedElectricalEquipment newObject = new IssueRelatedElectricalEquipment { ElectricalEquipmentId = electricalEquipment.Id, IssueId = issueRelatedElectricalEquipment.IssueId, Notes = issueRelatedElectricalEquipment.Notes, TestedById = issueRelatedElectricalEquipment.TestedById, TestedDate = issueRelatedElectricalEquipment.TestedDate, ImplementedById = issueRelatedElectricalEquipment.ImplementedById, ImplementedDate = issueRelatedElectricalEquipment.ImplementedDate }; cee.IssueRelatedElectricalEquipments.Add(newObject); } }
private void BuildRevisionHistory(ElectricalEquipment equip, CmsEntities cee) { var latestPrh = (from x in cee.ElectricalEquipmentRevisionHistories where x.ElectricalEquipmentId == equip.Id select x.Revision).ToList(); if (latestPrh.Count > 0) { foreach (ElectricalEquipmentRevisionHistory revisionHistory in equip.ElectricalEquipmentRevisionHistories) { if (revisionHistory.Id == 0) { revisionHistory.Revision = latestPrh.AsQueryable().Max() + VERSIONINCREMENT; cee.ElectricalEquipmentRevisionHistories.Add(revisionHistory); } } } else { foreach (ElectricalEquipmentRevisionHistory revisionHistory in equip.ElectricalEquipmentRevisionHistories) { if (revisionHistory.Id == 0) { revisionHistory.Revision = VERSIONINCREMENT; cee.ElectricalEquipmentRevisionHistories.Add(revisionHistory); } } } }
private static ElectricalEquipmentRevisionHistory BuildRevisonHistory(ElectricalEquipment equip, int userId, IEnumerable<ElectricalEquipmentComponent> electricalComponentsToBeDeleted, CmsEntities cee) { ElectricalEquipmentRevisionHistory rh = new ElectricalEquipmentRevisionHistory(); string[] deleted = (from x in electricalComponentsToBeDeleted select "Name: " + x.Name + " Type: " + x.ElectricalEquipmentComponentType.Name).ToArray(); if (deleted.Length > 0) { string removedItems = string.Join(",", deleted); rh.Description = string.Format("Electrical Components were removed : {0}", removedItems); rh.ElectricalEquipmentId = equip.Id; rh.Date = DateTime.Now; rh.UserId = userId; const decimal incrediment = 0.001m; var latestPrh = (from x in cee.ElectricalEquipmentRevisionHistories where x.ElectricalEquipmentId == equip.Id select x.Revision).ToList(); if (latestPrh.Count > 0) { rh.Revision = latestPrh.AsQueryable().Max() + incrediment; } else { rh.Revision = incrediment; } cee.ElectricalEquipmentRevisionHistories.Add(rh); } return rh; }
private void InsertData(IList<ElectricalDataAdapter> importData) { if (importData.Count == 0) { RaiseMessage(CommonUtils.MessageType.Warning, NoDataFoundForWorkSheetMessage()); return; } for (int i = 0; i < importData.Count; i++) { ElectricalDataAdapter adapter = importData[i]; IList<string> tags = (from x in importData select x.Tag).ToList(); if (DuplicateItemNameFoundInExcell(adapter.Tag, tags, adapter.RowNumber)) { continue; } ElectricalEquipment equipment = (from x in Cee.ElectricalEquipments where x.Name.Equals(adapter.Tag, StringComparison.CurrentCultureIgnoreCase) select x).FirstOrDefault(); if (equipment != null) { RaiseMessage(CommonUtils.MessageType.Warning, string.Format(BuildDuplicateNameExistsInDbMessage(adapter.Tag, adapter.RowNumber))); continue; } equipment = new ElectricalEquipment(); if (!adapter.IsValid()) { foreach (string message in adapter.ErrorMessages) { RaiseMessage(CommonUtils.MessageType.Error, message); } continue; } if (adapter.IsActive.HasValue) { equipment.IsActive = adapter.IsActive.Value; } else { equipment.IsActive = true; //assume true } //AREA int areaId; if (GetAreaFailed(adapter.AreaNumber, adapter.RowNumber, out areaId, false)) { continue; } if (areaId > 0) { equipment.AreaId = areaId; } if (GetElectricalEquipmentType(adapter.EquipmentType, equipment, adapter.RowNumber)) continue; equipment.Description = adapter.Description; equipment.Notes = adapter.Notes; equipment.Name = adapter.Tag; //Specification if (!string.IsNullOrEmpty(adapter.Specification)) { int docId; if (GetSpecDocumentFailed(adapter.Specification, out docId, adapter.RowNumber)) { continue; } equipment.SpecificationDocumentId = docId; } //PandID if (!string.IsNullOrEmpty(adapter.PandID)) { int docId; if (GetPIDDocumentFailed(adapter.PandID, out docId, adapter.RowNumber)) { continue; } equipment.PandIDDocumentId = docId; } if (!String.IsNullOrEmpty(adapter.MaintSysId)) { equipment.MaintSystemId = adapter.MaintSysId; } if (!adapter.Classified.HasValue) { RaiseMessage(CommonUtils.MessageType.Error, string.Format("WorkSheet '{0}' Row '{1}': Classified row is blank or could not be parsed to boolean (please use true or false). Skipping.", WorkSheetName, adapter.RowNumber)); continue; } equipment.Classified = adapter.Classified.Value; AddInsertRevisionHistory(equipment); mSavedResults.Add(equipment); } if (mSavedResults.Count == 0) { RaiseMessage(CommonUtils.MessageType.Warning, string.Format("No Equipments were added from from worksheet {0}.", WorkSheetName)); } else { //SAVE Cee.SaveChanges(); foreach (ElectricalEquipment equipment in mSavedResults) { RaiseMessage(CommonUtils.MessageType.Added, string.Format("Processed Equipment '{0}'.", equipment.Name)); } } }
private ElectricalEquipmentRevisionHistory BuildRevisionHistory(ElectricalEquipment equipment) { const decimal incrediment = 0.001m; decimal revision = new decimal(1.000); List<decimal> foo = (from x in Cee.ElectricalEquipmentRevisionHistories where x.ElectricalEquipmentId == equipment.Id orderby x.Revision descending select x.Revision).ToList(); if (foo.Count > 0) { revision = foo[0] + incrediment; } ElectricalEquipmentRevisionHistory rvh = new ElectricalEquipmentRevisionHistory { Date = DateTime.Now, ElectricalEquipmentId = equipment.Id, UserId = MetaData.UserId, Description = BuildRevisionHistoryUpdateComment(MetaData.RevisionHistoryComment), Revision = revision, IsSystemMessage = true }; return rvh; }
private void AddUpdateRevisionHistory(ElectricalEquipment equipment) { ElectricalEquipmentRevisionHistory rvh = BuildRevisionHistory(equipment); equipment.ElectricalEquipmentRevisionHistories.Add(rvh); }
private void ViewModel_DataSourceLoaded(object obj) { mElectricalEquipment = ViewModel.Equipment; DataContext = ViewModel; //Components mComponentsControl = new ElectricalEquipmentComponentsControl(ViewModel.Equipment); mComponentsControl.CollectionChanged += (count) => { mElectricalEquipment.GeneralEquipmentRelatedItemsCount.PropertyOrComponents = count; SetTabHeadersText(); }; ComponentsTab.Content = mComponentsControl; mComponentsLoaded = true; //Issues mElectricalRelatedIssuesControl = new ElectricalRelatedIssuesControl(ViewModel.Equipment); mElectricalRelatedIssuesControl.CollectionChanged += (count) => { mElectricalEquipment.GeneralEquipmentRelatedItemsCount.Issues = count; SetTabHeadersText(); }; RelatedIssuesTab.Content = mElectricalRelatedIssuesControl; mIssuesLoaded = true; //Attachments mElectricalAttachmentsControl = new ElectricalAttachmentsControl(ViewModel.Equipment); mElectricalAttachmentsControl.ModelLoaded += () => { mAttachmentsLoaded = true; CheckAllLoaded(); }; mElectricalAttachmentsControl.CollectionChanged += (count) => { mElectricalEquipment.GeneralEquipmentRelatedItemsCount.Attachments = count; SetTabHeadersText(); }; AttachmentsTab.Content = mElectricalAttachmentsControl; //Documents Tab mDocumentsControl = new ElectricalEquipmentDocumentsControl(ViewModel.Equipment); mDocumentsControl.ControlLoaded += mDocumentsControl_ControlLoaded; RoutedEventHandler docsloaded = null; docsloaded = (s1, e1) => { //This will hook up change events on all controls Utils.SetUpChangeEvents((UIElement) DocumentsTab.Content, EventAggregator, ViewModel.Equipment); DocumentsTab.Loaded -= docsloaded; }; DocumentsTab.Loaded += docsloaded; //This will hook up change events on all controls Utils.SetUpChangeEvents(EquipmentControl.Content, EventAggregator, ViewModel.Equipment); Utils.SetUpChangeEvents((UIElement) ComponentsTab.Content, EventAggregator, ViewModel.Equipment); Utils.SetUpChangeEvents((UIElement) RelatedIssuesTab.Content, EventAggregator, ViewModel.Equipment); Utils.SetUpChangeEvents((UIElement) AttachmentsTab.Content, EventAggregator, ViewModel.Equipment); RoutedEventHandler loaded = null; loaded = (s1, e1) => { //This will hook up change events on all controls Utils.SetUpChangeEvents((UIElement) AttachmentsTab.Content, EventAggregator, ViewModel.Equipment); AttachmentsTab.Loaded -= loaded; }; AttachmentsTab.Loaded += loaded; CheckAllLoaded(); }
public DbOperationResult<QuickElectrical> SaveElectricalEquipment(ElectricalEquipment equip, int userId) { try { using (CmsEntities cee = new CmsEntities()) { var originalObject = (from x in cee.ElectricalEquipments .Include("ElectricalEquipmentComponents") .Include("ElectricalEquipmentComponents.ElectricalEquipmentComponentType") where x.Id == equip.Id select x).FirstOrDefault(); if (originalObject != null) { IEnumerable<ElectricalEquipmentComponent> electricalComponentsToBeDeleted = from x in originalObject.ElectricalEquipmentComponents where !equip.ElectricalEquipmentComponents.Any(x1 => x1.Id == x.Id) select x; BuildRevisonHistory(equip, userId, electricalComponentsToBeDeleted, cee); BuildRevisionHistory(equip, cee); foreach (var electricalComponent in electricalComponentsToBeDeleted) { DeleteElectricalEquipmentComponent(electricalComponent); } SaveElectricalEquipmentComponents(equip.ElectricalEquipmentComponents.ToList(), cee, equip.Id, userId); SaveElectricalAttachments(equip.ElectricalEquipmentAttachments.ToList()); SaveElectricalRelatedIssues(equip, cee); SaveElectricalDocuments(equip, cee); cee.Entry(originalObject).CurrentValues.SetValues(equip); cee.SaveChanges(); } else { equip.ElectricalEquipmentType = null; equip.Area = null; equip.IsActive = true; cee.ElectricalEquipments.Add(equip); cee.SaveChanges(); } QuickElectrical quickElectrical = BuildQuickElectrical(cee, equip.Id); return new DbOperationResult<QuickElectrical> { EntityResult = quickElectrical }; } } catch (Exception ex) { log.Error("", ex, ex.ToString()); return BuildOperationalErrorResults<QuickElectrical>(ex); } }
private void SaveElectricalDocuments(ElectricalEquipment electricalEquipment, CmsEntities cee) { if (electricalEquipment.ElectricalDocuments == null) { return; } //Delete originals List<DocumentEquipment> originals = (from x in cee.DocumentEquipments where x.EquipmentId == electricalEquipment.Id && x.EquipmentTypeId == (int)CommonUtils.EquipmentTypeCode.ELECT select x).ToList(); originals.ForEach(x => cee.DocumentEquipments.Remove(x)); foreach (DocumentEquipment document in electricalEquipment.ElectricalDocuments) { DocumentEquipment newObject = new DocumentEquipment { EquipmentId = electricalEquipment.Id, DocumentId = document.DocumentId, EquipmentTypeId = (int)CommonUtils.EquipmentTypeCode.ELECT }; cee.DocumentEquipments.Add(newObject); } }