private void ViewModel_DataSourceLoaded(object obj) { DataContext = ViewModel; mMechanicalEquipment = ViewModel.Equipment; //Components mComponentsControl = new MechanicalEquipmentComponentsControl(ViewModel.Equipment); mComponentsControl.CollectionChanged += (count) => { mMechanicalEquipment.GeneralEquipmentRelatedItemsCount.PropertyOrComponents = count; SetTabHeadersText(); }; ComponentsTab.Content = mComponentsControl; //Issues mMechanicalRelatedIssuesControl = new MechanicalRelatedIssuesControl(ViewModel.Equipment); mMechanicalRelatedIssuesControl.CollectionChanged += (count) => { mMechanicalEquipment.GeneralEquipmentRelatedItemsCount.Issues = count; SetTabHeadersText(); }; RelatedIssuesTab.Content = mMechanicalRelatedIssuesControl; //Attachements mMechanicalAttachmentsControl = new MechanicalAttachmentsControl(ViewModel.Equipment); mMechanicalAttachmentsControl.CollectionChanged += (count) => { mMechanicalEquipment.GeneralEquipmentRelatedItemsCount.Attachments = count; SetTabHeadersText(); }; AttachmentsTab.Content = mMechanicalAttachmentsControl; //Documents Tab mDocumentsControl = new MechanicalEquipmentDocumentsControl(ViewModel.Equipment); mDocumentsControl.CollectionChanged += (count) => { mMechanicalEquipment.GeneralEquipmentRelatedItemsCount.Documents = count; SetTabHeadersText(); }; 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; //GET Tab Counts -------------------------------------------------- CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetMechanicalRelatedItemsCountCompleted += (s2, e2) => { mMechanicalEquipment.GeneralEquipmentRelatedItemsCount = e2.Result; SetTabHeadersText(); }; cmsWebServiceClient.GetMechanicalRelatedItemsCountAsync(mMechanicalEquipment.Id); }; 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; }
private void BuildMoveComponentRevisionHistory(MechanicalEquipmentComponentsControl componentsControl) { if (componentsControl == null || componentsControl.Model == null || componentsControl.Model.MovedComponent == null) { return; } MechanicalEquipmentRevisionHistory rv = new MechanicalEquipmentRevisionHistory(); rv.Date = DateTime.Now; rv.UserId = CMS.User.Id; rv.MechanicalEquipmentId = mEquipmentId; rv.Description = string.Format("Moved Component {0} to Mechanical Equipment {1}.", componentsControl.Model.MovedComponent.Name, componentsControl.Model.MovedComponent.MechanicalEquipment.Name); mMechanicalEquipment.MechanicalEquipmentRevisionHistories.Add(rv); }