///-------------------------------------------------------------------------------- /// <summary>This method updates the view model data and sends update command back /// to the solution builder.</summary> ///-------------------------------------------------------------------------------- protected override void OnUpdate() { // send update for any updated children foreach (StateModelViewModel item in StateModels) { if (item.IsEdited == true) { item.Update(); } } // send update for any new children foreach (StateModelViewModel item in ItemsToAdd.OfType <StateModelViewModel>()) { item.Update(); StateModels.Add(item); } ItemsToAdd.Clear(); // send delete for any deleted children foreach (StateModelViewModel item in ItemsToDelete.OfType <StateModelViewModel>()) { item.Delete(); StateModels.Remove(item); } ItemsToDelete.Clear(); // reset modified for children foreach (StateModelViewModel item in StateModels) { item.ResetModified(false); } }
/// <summary> /// Populates the StateModels and FullfillmentCenters list for the UI. /// </summary> private void PopulateLists() { using (var db = new Models.AppContext()) { //populate states List <State> dbStates = db.States.ToList(); foreach (State state in dbStates) { StateModels.Add(new StateModel(state)); } //populate fullfillment centers List <AmazonWarehouse> amazonWarehouses = db.AmazonWarehouses.ToList(); amazonWarehouses.Sort((a1, a2) => String.Compare(a1.WarehouseCode, a2.WarehouseCode)); foreach (AmazonWarehouse amz in amazonWarehouses) { FulFillmentCenters.Add(new AmzWarehouseModel(amz)); } //sort fullfillment centers by WarehouseIDgit do FulFillmentCenters.OrderBy(i => i.WarehouseCode); } }
///-------------------------------------------------------------------------------- /// <summary>This method applies statemodel deletes.</summary> ///-------------------------------------------------------------------------------- public void ProcessDeleteStateModelPerformed(StateModelEventArgs data) { try { bool isItemMatch = false; if (data != null && data.StateModel != null) { foreach (StateModelViewModel item in StateModels.ToList <StateModelViewModel>()) { if (item.StateModel.StateModelID == data.StateModel.StateModelID) { // remove item from tabs, if present WorkspaceEventArgs message = new WorkspaceEventArgs(); message.ItemID = item.StateModel.StateModelID; Mediator.NotifyColleagues <WorkspaceEventArgs>(MediatorMessages.Command_CloseItemRequested, message); // delete children for (int i = item.Items.Count - 1; i >= 0; i--) { if (item.Items[i] is StateViewModel) { StateViewModel child = item.Items[i] as StateViewModel; StateEventArgs childMessage = new StateEventArgs(); childMessage.State = child.State; childMessage.StateModelID = item.StateModel.StateModelID; childMessage.Solution = Solution; childMessage.WorkspaceID = child.WorkspaceID; item.ProcessDeleteStatePerformed(childMessage); } } // delete item isItemMatch = true; StateModels.Remove(item); Entity.StateModelList.Remove(item.StateModel); Items.Remove(item); Entity.ResetModified(true); OnUpdated(this, null); break; } } if (isItemMatch == false) { ShowIssue(DisplayValues.Issue_DeleteItemNotFound); } } } catch (Exception ex) { ShowIssue(ex.Message + ex.StackTrace); } }
/// <summary> /// Populates the StateModels list for the UI combo box control. /// </summary> private void PopulateLists() { //populate stateModels property using (var db = new Models.AppContext()) { List <State> dbStates = db.States.ToList(); foreach (State state in dbStates) { StateModels.Add(new StateModel(state)); } } }
///-------------------------------------------------------------------------------- /// <summary>This method disposes of resources in the view model.</summary> ///-------------------------------------------------------------------------------- protected override void OnDispose() { if (StateModels != null) { foreach (StateModelViewModel itemView in StateModels) { itemView.Updated -= Children_Updated; itemView.Dispose(); } StateModels.Clear(); StateModels = null; } Entity = null; base.OnDispose(); }
///-------------------------------------------------------------------------------- /// <summary>This method loads StateModels into the view model.</summary> /// /// <param name="entity">The entity to load.</param> /// <param name="solution">The associated solution.</param> /// <param name="loadChildren">Flag indicating whether to perform a deeper load.</param> ///-------------------------------------------------------------------------------- public void LoadStateModels(Entity entity, Solution solution, bool loadChildren = true) { // attach the items Items.Clear(); if (StateModels == null) { StateModels = new EnterpriseDataObjectList <StateModelViewModel>(); } if (loadChildren == true) { foreach (StateModel item in entity.StateModelList) { StateModelViewModel itemView = new StateModelViewModel(item, solution); itemView.Updated += new EventHandler(Children_Updated); StateModels.Add(itemView); Items.Add(itemView); } } }
///-------------------------------------------------------------------------------- /// <summary>This method applies statemodel updates.</summary> ///-------------------------------------------------------------------------------- public void ProcessEditStateModelPerformed(StateModelEventArgs data) { try { bool isItemMatch = false; if (data != null && data.StateModel != null) { foreach (StateModelViewModel item in StateModels) { if (item.StateModel.StateModelID == data.StateModel.StateModelID) { isItemMatch = true; item.StateModel.TransformDataFromObject(data.StateModel, null, false); item.OnUpdated(item, null); item.ShowInTreeView(); break; } } if (isItemMatch == false) { // add new StateModel data.StateModel.Entity = Entity; StateModelViewModel newItem = new StateModelViewModel(data.StateModel, Solution); newItem.Updated += new EventHandler(Children_Updated); StateModels.Add(newItem); Entity.StateModelList.Add(newItem.StateModel); Solution.StateModelList.Add(newItem.StateModel); Items.Add(newItem); OnUpdated(this, null); newItem.ShowInTreeView(); } } } catch (Exception ex) { ShowIssue(ex.Message + ex.StackTrace); } }
///-------------------------------------------------------------------------------- /// <summary>This method deletes an instance of StateModel from the view model.</summary> /// /// <param name="itemView">The StateModel to delete.</param> ///-------------------------------------------------------------------------------- public void DeleteStateModel(StateModelViewModel itemView) { itemView.Updated -= Children_Updated; StateModels.Remove(itemView); Delete(itemView); }
///-------------------------------------------------------------------------------- /// <summary>This method adds an instance of StateModel to the view model.</summary> /// /// <param name="itemView">The StateModel to add.</param> ///-------------------------------------------------------------------------------- public void AddStateModel(StateModelViewModel itemView) { itemView.Updated += new EventHandler(Children_Updated); StateModels.Add(itemView); Add(itemView); }