public async Task <IActionResult> Post([FromRoute] string orgRoleId, [FromBody] ReportTemplateVM reportTemplateVM) { if (string.IsNullOrWhiteSpace(orgRoleId) || string.IsNullOrEmpty(orgRoleId)) { return(StatusCode(StatusCodes.Status400BadRequest, new BadRequestError($"'{nameof(orgRoleId)}' cannot be null or whitespace"))); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } OrganizationRole organizationRole = organizationRoleService .Get <OrganizationRole>(orgRole => orgRole.Id == orgRoleId, asNoTracking: true); 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 reportTemplateCreationDto = new ReportTemplateCreationDto { UserId = user.Id, ReportTemplateDto = reportTemplateDto }; ReportTemplate reportTemplate = reportTemplateService.Add(reportTemplateCreationDto); _unitOfWork.SaveChanges(); return(CreatedAtAction( actionName: nameof(Get), routeValues: new { version = $"{HttpContext.GetRequestedApiVersion()}", orgRoleId = organizationRole.Id, templateId = reportTemplate.Id }, value: reportTemplate.Id)); }
public async Task <IActionResult> Get([FromRoute] string orgRoleId, [FromRoute] string templateId) { if (string.IsNullOrEmpty(templateId) || string.IsNullOrWhiteSpace(templateId)) { return(StatusCode(StatusCodes.Status400BadRequest, new BadRequestError($"{nameof(templateId)} cannot be null or empty"))); } if (string.IsNullOrEmpty(orgRoleId) || string.IsNullOrWhiteSpace(orgRoleId)) { StatusCode(StatusCodes.Status400BadRequest, new BadRequestError($"{nameof(orgRoleId)} cannot be null or empty")); } OrganizationRole organizationRole = organizationRoleService.Get <OrganizationRole>( orgRole => orgRole.Id == orgRoleId, asNoTracking: true); 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"))); } ReportTemplateVM reportTemplate = reportTemplateService.Get <ReportTemplateVM>( t => t.Id == templateId, asNoTracking: true); if (reportTemplate == null) { return(StatusCode(StatusCodes.Status404NotFound, new NotFoundError("template not found"))); } return(StatusCode(StatusCodes.Status200OK, reportTemplate)); }
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))); } }