public async Task <ActionResult> UpdateReport(UpdateUserReportRequestModel model, string userReportId)
        {
            var loggedUser = this.User.GetId();
            var result     = await this.userReportsService.UpdateReportAsync(model, userReportId, loggedUser);

            if (!result.Success)
            {
                return(BadRequest(result.Errors));
            }

            return(Ok(result.Result));
        }
Beispiel #2
0
        public async Task <ResultModel <bool> > UpdateReportAsync(UpdateUserReportRequestModel model, string userReportId, string userId)
        {
            var userReport = await this.dbContext
                             .UserReports
                             .Where(ur => ur.Id == userReportId && !ur.IsDeleted)
                             .FirstOrDefaultAsync();

            if (userReport == null)
            {
                return(new ResultModel <bool>
                {
                    Errors = { StoryReportErrors.ReportNotFoundOrDeleted }
                });
            }
            if (userId != userReport.ReporterId)
            {
                return(new ResultModel <bool>
                {
                    Errors = { UserErrors.UserHaveNoPermissionToUpdate }
                });
            }

            userReport.Title = model.Title == null || string.IsNullOrWhiteSpace(model.Title) ?
                               model.Title = userReport.Title :
                                             userReport.Title = model.Title;

            userReport.Content = model.Content == null || string.IsNullOrWhiteSpace(model.Content) ?
                                 model.Content = userReport.Content :
                                                 userReport.Content = model.Content;

            userReport.ModifiedOn = DateTime.UtcNow;

            this.dbContext.UserReports.Update(userReport);
            await this.dbContext.SaveChangesAsync();

            return(new ResultModel <bool>
            {
                Result = true,
                Success = true,
            });
        }