public async Task <IActionResult> Edit(ShiftVM shiftModel) { // Check that the data is present if (!ModelState.IsValid || shiftModel.ShiftId == 0) { return(BadRequest()); } // Check that the shift exists Shift shift = await _shiftService.GetShift(shiftModel.ShiftId); if (shift == null) { return(BadRequest()); } // Check that the user has management access string userId = _userManager.GetUserId(User); Member member = await _memberService.GetMember(shift.Location.GroupId, userId); if (member == null || !member.Approved || !member.CanManageShifts) { return(BadRequest()); } shift.Start = shiftModel.Start; shift.End = shiftModel.End; shift.MinParticipants = shiftModel.MinParticipants; shift.MaxParticipants = shiftModel.MaxParticipants; shift.Instructions = shiftModel.Instructions; await _shiftService.EditShift(shift); return(Ok()); }