private bool IsValidEntity(Model.PurchaseOrder po) { po.Errors = new List <Error>(); ValidationContext context = new ValidationContext(po); List <ValidationResult> results = new List <ValidationResult>(); bool isValid = Validator.TryValidateObject(po, context, results, true); foreach (ValidationResult r in results) { po.AddError(new Error(po.Errors.Count, r.ErrorMessage, "Model")); } return(isValid); }
private bool IsValid(Model.PurchaseOrder po) { List <bool> validations = new List <bool>(); validations.Add(IsValidEntity(po)); foreach (Item item in po.Items) { if (item.Status == ItemStatus.NoLongerRequired) { ItemStatus status = GetItemStatus(item.ItemId); if (status != ItemStatus.Pending) { validations.Add(false); po.AddError(new Error(111, "The item status cannot be changed, it has already been processed", "Business")); } else { item.Quantity = 0; item.Price = 0; item.Description = "No longer needed"; item.Status = ItemStatus.Denied; } } } if (po.PurchaseOrderId > 0) { PurchaseOrder poFromDatabase = GetPurchaseOrder(po.PurchaseOrderId); //if (po.IsProcess == false && poFromDatabase.Status == POStatus.UnderReview) //{ // validations.Add(false); // po.Errors.Add(new Error(111, "This Purchase Order is currently under review and cannot be modified", "Business")); //} if (poFromDatabase.Status == POStatus.Closed) { validations.Add(false); po.Errors.Add(new Error(112, "This Purchase Order is closed and cannot be modified", "Business")); } } return(validations.Contains(false) ? false : true); }