public async Task <IActionResult> Update([FromRoute] string rosterId, [FromBody] UpdateRosterRequest request) { if (request == null) { return(ValidationProblem()); } var rosterAccessModel = await _rosterAccessService.GetRosterAccessAsync(GetBy.RosterId, HttpContext.GetUserId(), rosterId); if (rosterAccessModel == null) { return(CreateErrorResponse(Status.Forbidden)); } if (!rosterAccessModel.IsOwner) { if (!rosterAccessModel.IsModerator) { return(CreateErrorResponse(Status.Forbidden)); } } var roster = await _rosterService.GetRosterByIdAsync(rosterId); if (roster is null) { return(NotFound()); } roster.Name = request.Name; roster.Description = request.Description; await _rosterService.UpdateRosterAsync(roster); return(Ok(new Response <RosterResponse>(_mapper.Map <RosterResponse>(roster)))); }