Exemple #1
0
        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;
            }
        }
Exemple #2
0
        /// <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)}"),
            });