public async Task <IActionResult> Put([FromRoute] string orgRoleId, [FromRoute] string reportId, [FromBody] ReportContentVM model) { if (string.IsNullOrEmpty(orgRoleId) || string.IsNullOrWhiteSpace(orgRoleId)) { return(StatusCode(StatusCodes.Status400BadRequest, new BadRequestError($"'{nameof(orgRoleId)}' cannot be null or whitespace"))); } if (string.IsNullOrEmpty(reportId) || string.IsNullOrWhiteSpace(reportId)) { return(StatusCode(StatusCodes.Status400BadRequest, new BadRequestError("reportId Parameter cant be null"))); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } OrganizationRole organizationRole = organizationRoleService .Get <OrganizationRole>(orgRole => orgRole.Id == orgRoleId); if (organizationRole == null) { return(StatusCode(StatusCodes.Status404NotFound, new NotFoundError($"OrganizationRole not found"))); } User user = await GetCurrentUser(); ReportContentDto reportUpdated = _typeAdapter.Adapt <ReportContentVM, ReportContentDto>(model); reportUpdated.ReportId = reportId; reportUpdated.UserId = user.Id; try { reportService.Update(reportUpdated); if (_unitOfWork.SaveChanges() < 0) { return(StatusCode(StatusCodes.Status400BadRequest, new BadRequestError("Error when trying to update a report content"))); } return(StatusCode(StatusCodes.Status200OK)); } catch (NullReferenceException e) { return(StatusCode(StatusCodes.Status500InternalServerError, new InternalServerError(e.Message))); } catch (InvalidOperationException e) { return(StatusCode(StatusCodes.Status400BadRequest, new BadRequestError(e.Message))); } catch (Exception) { throw; } }
/// <summary> /// /// </summary> /// <typeparam name="Dto"></typeparam> /// <param name="dto"></param> /// <returns></returns> public override Report Update <Dto>(Dto dto) { return(dto switch { ReportContentDto reportContentDto => UpdateReportContent(reportContentDto), _ => throw new InvalidOperationException($"{nameof(dto)} is not {nameof(ReportContentDto)}"), });