public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { var validator = new OrderViewModelValidator(); var result = validator.Validate(this); return(result.Errors.Select(item => new ValidationResult(item.ErrorMessage, new[] { item.PropertyName }))); }
public ActionResult Update(OrderViewModel model) { var result = new OrderViewModel(); var validator = new OrderViewModelValidator(); var validationResult = validator.Validate(new ValidationContext<OrderViewModel>(model, new PropertyChain(), new RulesetValidatorSelector("update"))); if (validationResult.IsValid) { var request = model.ConvertToUpdateOrderRequest(); request.IdentityToken = this.FormsAuthentication.GetAuthenticationToken(); var response = this.orderService.UpdateOrder(request); result = response.ConvertToOrderViewModel(); } else { result.MessageType = MessageType.Warning.ToString(); result.BrokenRules = new List<BusinessRule>(); foreach (var failure in validationResult.Errors) { result.BrokenRules.Add(new BusinessRule(failure.PropertyName, failure.ErrorMessage)); } } if (result.Id == 0) { result.Id = model.Id; } if (string.IsNullOrEmpty(result.OrderNumber)) { result.OrderNumber = model.OrderNumber; } if (string.IsNullOrEmpty(result.TrackingNumber)) { result.TrackingNumber = model.TrackingNumber; } if (string.IsNullOrEmpty(result.Status)) { result.Status = model.Status; } var jsonNetResult = new JsonNetResult { Formatting = (Formatting)Newtonsoft.Json.Formatting.Indented, Data = result }; return jsonNetResult; }
public ActionResult Add([Bind]string retailerUrl, string userEmail) { this.EnsureUserEmailIsNotChanged(userEmail); var result = new OrderViewModel { Status = "New", RetailerUrl = retailerUrl }; var validator = new OrderViewModelValidator(); var validationResult = validator.Validate(result); if (validationResult.IsValid) { var request = new AddOrderRequest { RetailerUrl = retailerUrl, CreatedDate = DateTime.UtcNow, IdentityToken = userEmail, CreatedByOperator = !userEmail.Equals(FormsAuthentication.GetAuthenticationToken()) }; var response = this.orderService.AddOrder(request); result = response.ConverToOrderViewModel(); } else { result.MessageType = MessageType.Warning.ToString(); result.BrokenRules = new List<BusinessRule>(); foreach (var failure in validationResult.Errors) { result.BrokenRules.Add(new BusinessRule(failure.PropertyName, failure.ErrorMessage)); } } var jsonNetResult = new JsonNetResult { Formatting = (Formatting)Newtonsoft.Json.Formatting.Indented, Data = result }; return jsonNetResult; }