/// <summary> /// This converts the <see cref="ActionResult{WebApiMessageOnly}"/> created by <see cref="CreateResponse"/> into a GenericServices.IStatusGeneric /// </summary> /// <param name="actionResult"></param> /// <returns>a status which is similar to the original status (errors might not be in the exact same form)</returns> public static IStatusGeneric CopyToStatus(this ActionResult <WebApiMessageOnly> actionResult) { var testStatus = new StatusGenericHandler(); var objResult = (actionResult.Result as ObjectResult); if (objResult == null) { throw new NullReferenceException("Could not cast the response to ObjectResult"); } var errorPart = objResult as BadRequestObjectResult; if (errorPart != null) { //It has errors, so copy errors to status testStatus.AddValidationResults(ExtractErrors(errorPart)); return(testStatus); } var decodedValue = objResult.Value as WebApiMessageOnly; if (decodedValue == null) { throw new NullReferenceException($"Could not cast the response value to WebApiMessageOnly"); } testStatus.Message = decodedValue.Message; return(testStatus); }
private static IStatusGeneric ExecuteValidation(this DbContext context) { var status = new StatusGenericHandler(); foreach (var entry in context.ChangeTracker.Entries() .Where(e => (e.State == EntityState.Added) || (e.State == EntityState.Modified))) { var entity = entry.Entity; var valProvider = new ValidationDbContextServiceProvider(context); var valContext = new ValidationContext(entity, valProvider, null); var entityErrors = new List <ValidationResult>(); if (!Validator.TryValidateObject( entity, valContext, entityErrors, true)) { status.AddValidationResults(entityErrors); } } return(status); }