示例#1
0
        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); };
        }
示例#9
0
        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;
        }
示例#13
0
        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));
                }
            }
        }
示例#14
0
        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;
        }
示例#15
0
        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);
            }
        }