public async Task <ActionResult> UpdateStoryReport(UpdateStoryReportRequestModel model, string storyReportId)
        {
            var loggedUser = this.User.GetId();
            var result     = await this.storyReportsService.UpdateStoryReportAsync(model, loggedUser, storyReportId);

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

            return(Ok(result.Result));
        }
        public async Task <ResultModel <bool> > UpdateStoryReportAsync(UpdateStoryReportRequestModel model, string userId, string storyReportId)
        {
            var report = await this.dbContext
                         .StoryReports
                         .Where(sr => sr.Id == storyReportId && !sr.IsDeleted)
                         .FirstOrDefaultAsync();

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

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

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

            report.ModifiedOn = DateTime.UtcNow;

            this.dbContext.StoryReports.Update(report);
            await this.dbContext.SaveChangesAsync();

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