public IActionResult PatchAppointmentHour(int workdayId, int id, [FromBody] JsonPatchDocument <AppointmentHourForUpdateData> patchDoc) { var claimsPrincipal = User as ClaimsPrincipal; string role = claimsPrincipal.FindFirst("role").Value; int barberId = int.Parse(claimsPrincipal.FindFirst("userId").Value); if (!role.Equals("client")) { AppointmentHour appointmentHour = role.Equals("admin") ? WorkDaysDataStore.Current.Days.FirstOrDefault(wd => wd.Id == workdayId).AppointmentHours.FirstOrDefault(ah => ah.Id == id) : WorkDaysDataStore.Current.Days.FirstOrDefault(wd => wd.Id == workdayId && wd.BarberId == barberId).AppointmentHours.FirstOrDefault(ah => ah.Id == id); if (appointmentHour == null) { return(NotFound()); } var patchData = new AppointmentHourForUpdateData() { Hour = appointmentHour.Hour }; patchDoc.ApplyTo(patchData); if (!ModelState.IsValid) { return(BadRequest()); } appointmentHour.Hour = patchData.Hour; return(NoContent()); } return(Unauthorized()); }
public IActionResult UpdateAppointmentHour(int workdayId, int id, [FromBody] AppointmentHourForUpdateData data) { var claimsPrincipal = User as ClaimsPrincipal; var role = claimsPrincipal.FindFirst("role").Value; int barberId = int.Parse(claimsPrincipal.FindFirst("userId").Value); if (!role.Equals("client")) { AppointmentHour appointmentHour = role.Equals("admin") ? WorkDaysDataStore.Current.Days.FirstOrDefault(wd => wd.Id == workdayId).AppointmentHours.FirstOrDefault(ah => ah.Id == id) : WorkDaysDataStore.Current.Days.FirstOrDefault(wd => wd.Id == workdayId && wd.BarberId == barberId).AppointmentHours.FirstOrDefault(ah => ah.Id == id); if (appointmentHour == null) { return(NotFound()); } appointmentHour.Hour = data.Hour; return(NoContent()); } return(Unauthorized()); }