public override ReportTemplate Update <Dto>(Dto dto) { return(dto switch { ReportTemplateUpdateDto reportTemplateUpdateDto => UpdateReportTemplate(reportTemplateUpdateDto), _ => throw new InvalidOperationException($"{nameof(dto)} is not ReportTemplateUpdateDto"), });
public async Task <IActionResult> Put([FromRoute] string OrgRoleId, [FromRoute] string templateId, [FromBody] ReportTemplateVM reportTemplateVM) { if (string.IsNullOrEmpty(OrgRoleId) || string.IsNullOrWhiteSpace(OrgRoleId)) { return(StatusCode(StatusCodes.Status400BadRequest, new BadRequestError($"{nameof(OrgRoleId)} Parameter cant be null"))); } if (string.IsNullOrEmpty(templateId) || string.IsNullOrWhiteSpace(templateId)) { return(StatusCode(StatusCodes.Status400BadRequest, new BadRequestError($"{nameof(templateId)} 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(); if (user == null) { return(StatusCode(StatusCodes.Status404NotFound, new NotFoundError("current User not found"))); } ReportTemplateDto reportTemplateDto = _typeAdapter.Adapt <ReportTemplateVM, ReportTemplateDto>(reportTemplateVM); var reportTemplateUpdateDto = new ReportTemplateUpdateDto { UserId = user.Id, ReportTemplateId = templateId, ReportTemplatedDto = reportTemplateDto }; try { reportTemplateService.Update(reportTemplateUpdateDto); if (_unitOfWork.SaveChanges() < 0) { return(StatusCode(StatusCodes.Status400BadRequest, new BadRequestError("Error when trying to update a template"))); } return(StatusCode(StatusCodes.Status200OK)); } catch (InvalidOperationException ex) { return(StatusCode(StatusCodes.Status400BadRequest, new BadRequestError(ex.Message))); } }