Esempio n. 1
0
        public PipePanelViewModel(int pipeId)
        {
            CompositionInitializer.SatisfyImports(this);

            var getPipeTask = DatabaseLoader.GetPipe(pipeId, true);
            List<Task> tasks = new List<Task>();
            tasks.Add(getPipeTask);

            Task.Factory.ContinueWhenAll(tasks.ToArray(), x =>
            {
                CMS.UiFactory.StartNew(() =>
                {
                    mPipe = getPipeTask.Result;
                    Pipe = mPipe;

                    mPipeControl = new PipeControl(mPipe);

                    mPipeComponentsControl = new PipeComponentsControl(mPipe);
                    View.PipeControl.Content = mPipeControl;

                    //Components
                    mPipeComponentsControl.CollectionChanged += (count) =>
                    {
                        mPipe.GeneralEquipmentRelatedItemsCount.PropertyOrComponents = count;
                        SetTabHeadersText();
                    };
                    View.ComponentsTab.Content = mPipeComponentsControl;

                    //PipeAttachmentsControl
                    mPipeAttachmentsControl = new PipeAttachmentsControl(mPipe);
                    mPipeAttachmentsControl.CollectionChanged += (count) =>
                    {
                        mPipe.GeneralEquipmentRelatedItemsCount.Attachments = count;
                        SetTabHeadersText();
                    };
                    View.AttachmentsTab.Content = mPipeAttachmentsControl;

                    //PipeIssuesControl
                    mPipeRelatedIssuesControl = new PipeRelatedIssuesControl(mPipe);
                    mPipeRelatedIssuesControl.CollectionChanged += (count) =>
                    {
                        mPipe.GeneralEquipmentRelatedItemsCount.Issues = count;
                        SetTabHeadersText();
                    };

                    View.IssueTab.Content = mPipeRelatedIssuesControl;

                    //PipeDocumentsControl
                    mPipeDocumentsControl = new PipeDocumentsControl(mPipe);
                    mPipeDocumentsControl.CollectionChanged += (count) =>
                    {
                        mPipe.GeneralEquipmentRelatedItemsCount.Documents = count;
                        SetTabHeadersText();
                    };
                    View.DocumentsTab.Content = mPipeDocumentsControl;

                    //GET Tab Counts --------------------------------------------------
                    CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint);
                    cmsWebServiceClient.GetPipeRelatedItemsCountCompleted += (s1, e1) =>
                    {
                        mPipe.GeneralEquipmentRelatedItemsCount = e1.Result;

                        if (Loaded != null)
                        {
                            Loaded();
                        }

                        //do this post data binding
                        SetHeadersBindings();
                        SetTabHeadersText();
                    };
                    cmsWebServiceClient.GetPipeRelatedItemsCountAsync(mPipe.Id);
                    //-------------------------------------------------------------
                });
            });
        }
Esempio n. 2
0
        private void BuildMoveComponentRevisionHistory(PipeComponentsControl componentsControl)
        {
            if (componentsControl == null || componentsControl.Model == null || componentsControl.Model.MovedComponent == null)
            {
                return;
            }

            PipeRevisionHistory rv = new PipeRevisionHistory();
            rv.Date = DateTime.Now;
            rv.UserId = CMS.User.Id;
            rv.PipeId = mPipe.Id;
            rv.Description = string.Format("Moved Component {0} to Pipe {1}.", componentsControl.Model.MovedComponent.Name, componentsControl.Model.MovedComponent.Pipe.Name);
            mPipe.PipeRevisionHistories.Add(rv);
        }