public ActionResult CreateScheduling([FromBody] CreateSchedulingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var result = _schedulingService.CreateScheduling(model); return(Ok(result)); } catch (ArgumentException e) { return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message)); } }
public ResponseModel CreateScheduling(CreateSchedulingModel model) { var resp = new ResponseModel(); try { Client client = _clientRepository.GetClientByUserId(Guid.Parse(model.UserId)); if (client == null) { resp.Message = "Não foi possível encontrar o cliente"; return(resp); } Employee employee = _employeeRepository.GetById(Guid.Parse(model.EmployeeId)); if (employee == null) { resp.Message = "Não foi possível encontrar o funciónário"; return(resp); } Domain.Entities.Services service = _serviceRepository.GetById(Guid.Parse(model.ServiceId)); if (service == null) { resp.Message = "Não foi possível encontrar o serviço"; return(resp); } DateTime startTime; if (!DateTime.TryParse(model.StartTime, out startTime)) { resp.Message = "Start time inválida"; return(resp); } DateTime endTime; if (!DateTime.TryParse(model.EndTime, out endTime)) { resp.Message = "End time inválida"; return(resp); } Scheduling newScheduling = new Scheduling { SchedulingId = Guid.NewGuid(), EmployeeId = Guid.Parse(model.EmployeeId), ClientId = client.ClientId, ServiceId = Guid.Parse(model.ServiceId), StartTime = startTime, EndTime = endTime, CreatedAt = DateTimeUtil.UtcToBrasilia(), LastUpdatedAt = DateTimeUtil.UtcToBrasilia() }; _schedulingRepository.Add(newScheduling); Scheduling scheduling = _schedulingRepository.GetSchedulingByIdComplete(newScheduling.SchedulingId); if (scheduling == null) { resp.Message = "Falha ao realizar o agendamento"; return(resp); } resp.Success = true; resp.Message = "Agendamento realizado com sucesso!"; resp.Result = SchedulingToGetSchedulingModel(scheduling); } catch (Exception e) { resp.Message = $"Não foi possível realizar o agendamento. {e.Message}"; } return(resp); }