public ModelContainer(T model, ActionType actionType, ResponseStatusCode responseCode, bool isSuccessful = true, ModelContainerErrorMessages errorMessage = ModelContainerErrorMessages.None) { Model = model; ErrorMessage = errorMessage; ResponseStatusCode = responseCode; TransformActionData(actionType); }
/// <summary> /// Returns generic response model T <see cref="IActionResult"/> acording <see cref="ModelContainer<T>.ResponseStatusCode"/> /// </summary> /// <typeparam name="T"></typeparam> /// <param name="mappedResponseModel"></param> /// <param name="responseStatusCode"></param> /// <param name="errorMessage"></param> /// <returns></returns> private ActionResult ApiActionResult <T>(T mappedResponseModel, ResponseStatusCode responseStatusCode, ModelContainerErrorMessages errorMessage) { if (!ModelState.IsValid) { return(BadRequest(JsonConvert.SerializeObject(ModelState.Values.Select(e => e.Errors).ToList()))); } return(responseStatusCode switch { ResponseStatusCode.Ok => Ok((mappedResponseModel)), ResponseStatusCode.Created => Created("", mappedResponseModel),//todo: uri ResponseStatusCode.Accepted => Accepted(mappedResponseModel), ResponseStatusCode.NoContent => NoContent(), ResponseStatusCode.UnprocessableEntity => UnprocessableEntity(errorMessage), ResponseStatusCode.NotFound => NotFound(errorMessage), ResponseStatusCode.BadRequest => BadRequest(errorMessage), _ => throw new Exception("Not implemented Response status code."), });