public ResponseModel UpdateSchedulingStatus(UpdateSchedulingStatusModel model) { var resp = new ResponseModel(); try { if (model.NewStatus < 0 || (int)model.NewStatus > 1) { resp.Message = "Novo status inválido"; return(resp); } Scheduling scheduling = _schedulingRepository.GetById(Guid.Parse(model.SchedulingId)); if (scheduling == null) { resp.Message = "Não foi possível encontrar o agendamento"; return(resp); } if (model.NewStatus == SchedulingStatus.Canceled) { Policy policy = _schedulingRepository.GetCompanyPolicyBySchedulingId(Guid.Parse(model.SchedulingId)); DateTime now = DateTimeUtil.UtcToBrasilia(); DateTime limitCancel = scheduling.StartTime.AddHours(-(policy.LimitCancelHours)); int compare = DateTime.Compare(now, limitCancel); if (compare >= 0) { resp.Message = "Não é possível realizar o cancelamento." + "O Horário limite para cancelamento era: " + limitCancel; return(resp); } } scheduling.Status = model.NewStatus; scheduling.LastUpdatedAt = DateTimeUtil.UtcToBrasilia(); _schedulingRepository.Edit(scheduling); resp.Success = true; resp.Message = "Atualizado com sucesso"; } catch (Exception) { resp.Message = "Não foi possível atualizar o status do agendamento"; } return(resp); }