public ActionResult Cancelar(CancelarAgendamentoViewModel model) { if (!ModelState.IsValid) { Callback(new Exception("Dados inválidos.")); } else { try { agendaService.CancelarAgendamento(model); Callback(); } catch (Exception ex) { Callback(ex); } } return(RedirectToAction("Index", new { model.DataAgendamento })); }
public void CancelarAgendamento(CancelarAgendamentoViewModel model) { TB_AGENDA agendamento = context.TB_AGENDA .Include(x => x.TB_SERVICOS) .Single(x => x.Id == model.IdAgendamento); //regra de cancelamento para massagens if (agendamento.TB_SERVICOS.BT_MASSAGEM) { if ((agendamento.DT_AGENDAMENTO - DateTime.Now).TotalHours < 24) { throw new Exception(ExceptionMessages.CancelarVinteQuatroHorasAntecedencia); } if (agendamento.QT_SESSOES_AGENDAMENTO == 1) { RemoverSessoes(model.IdAgendamento); } else { RL_SECAO_AGENDAMENTO sessaoAgendamento = context.RL_SECAO_AGENDAMENTO .Include(x => x.TB_SECOES) .Single(x => x.ID_AGENDAMENTO == model.IdAgendamento); context.TB_AGENDA.Remove(agendamento); context.RL_SECAO_AGENDAMENTO.Remove(sessaoAgendamento); context.SaveChanges(); } } else //regra de cancelamento para demais serviços { if (DateTime.Now > agendamento.DT_AGENDAMENTO.Date) { throw new Exception(ExceptionMessages.NaoEPossivelCancelarAgendamento); } RemoverSessoes(model.IdAgendamento); } }