private void SetDefaultFocus(InventoryAssistantState state) { State = state; defaultFocusDelegate.DynamicInvoke(); }
private void UpdateModelErrorCount(object property, InventoryAssistantState view) { var itemKey = this.AssistantItems.IndexOf(this.AssistantItems.Where(x => x.AssistantState.ToString() == view.ToString()).Single()); if (property.IsNull() || this.AssistantItems.Count == 0) this.AssistantItems[itemKey].ErrorCount = string.Empty; if (this.AssistantItems.Count > 0) { this.AssistantItems[itemKey].ErrorCount = ((ModelBase)property).GetErrorCount > 0 ? ((ModelBase)property).GetErrorCount.ToString() : String.Empty; } }
public IEnumerable<IResult> Save() { this.RemoveAllErrors(); if (InventoryItem.Id > 0) { GetIsLockValidRequest getIsLockValidRequest = new GetIsLockValidRequest(ModelNamesEnum.Inventory, this.InventoryItem.Id.ToString()); yield return getIsLockValidRequest; if (getIsLockValidRequest.Error != null) { yield return new HandleExceptionResult(getIsLockValidRequest.Error); BusyOff(); yield break; } if (!getIsLockValidRequest.Result) { WindowManager.Value.Alert("Unable to continue", "The Record lock has expired."); BusyOff(); yield break; } } InventoryAssistantState validatingState; BusyOn("Validating Inventory Item..."); validatingState = InventoryAssistantState.General; if (!ValidateGeneral()) { this.state = validatingState; BusyOff(); yield break; } validatingState = InventoryAssistantState.Notes; if (AssistantNoteMode == (int)AssistantViewMode.DataEntry) { if (ValidateNote()) { NoteSave(); } else { NotifyOfPropertyChange(() => ViewModelErrorsString); if (this.State != validatingState) this.State = validatingState; BusyOff(); yield break; } } BusyOn("Saving Inventory Item..."); // Build Save Object this.InventoryItem.Notes.Reset(this.Notes); //Save Order SaveInventoryItemRequest saveInventoryItemRequest = new SaveInventoryItemRequest(this.InventoryItem); yield return saveInventoryItemRequest; if (saveInventoryItemRequest.Error != null) { yield return new HandleExceptionResult(saveInventoryItemRequest.Error); BusyOff(); yield break; } if (this.InventoryItem.Id == null) this.InventoryItem.Id = saveInventoryItemRequest.Result; GetInventoryItemRequest getInventoryItemRequest = new GetInventoryItemRequest((int)this.InventoryItem.Id); yield return getInventoryItemRequest; if (getInventoryItemRequest.Error != null) { yield return new HandleExceptionResult(getInventoryItemRequest.Error); BusyOff(); yield break; } Events.Value.Publish(new EventModifiedInventory() { InventoryItem = getInventoryItemRequest.Result.Clone() }); IsDirty = false; BusyOff(); base.Close(); }