public IActionResult ContratarNutricionista(int pIdAgenda, int pIdNutricionista) { List <Agenda> agendas = _ServiceAgenda.AgendasCadastradas(DateTime.MinValue, DateTime.MinValue, pIdNutricionista, true); List <Endereco> enderecos = _ServiceEndereco.EnderecosCadastrados( pIdNutricionista, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty); List <EnderecoAlteracaoVM> enderecosVm = new List <EnderecoAlteracaoVM>(); if (enderecos.Any()) { enderecosVm = enderecos.Select(c => new EnderecoAlteracaoVM() { ID = c.IdEndereco, Bairro = c.Bairro, CEP = c.CEP, Cidade = c.Cidade, Complemento = c.Complemento, Logradouro = c.Logradouro, Numero = c.Numero, UF = c.UF.GetDefaultValue() }).ToList(); } AgendaListaContratoVM agendaContrato = null; if (agendas.Any(id => id.IdAgenda == pIdAgenda && id.IdUsuario == pIdNutricionista) && enderecosVm.Any() && _ServiceContrato.AgendaDisponivelParaContratar(pIdAgenda)) { agendaContrato = agendas.Join(enderecosVm, a => a.IdEndereco, e => e.ID, (agenda, endereco) => new AgendaListaContratoVM() { IdAgenda = agenda.IdAgenda, IdUsuario = agenda.IdUsuario, DataFim = agenda.DataFim, DataInicio = agenda.DataInicio, StatusDaAgenda = StatusAgendaEnum.Ativa, Endereco = endereco }).FirstOrDefault(id => id.IdAgenda == pIdAgenda && id.IdUsuario == pIdNutricionista && _ServiceContrato.AgendaDisponivelParaContratar(id.IdAgenda)); } if (agendaContrato == null) { return(RedirectToAction("LocalizarNutricionista", "Contrato")); } return(View(agendaContrato)); }
public IActionResult ExcluirAgenda(AgendaListaContratoVM pModel) { try { if (!ModelState.IsValid) { return(View(pModel)); } _ServiceAgenda.InativarAgenda(pModel.IdAgenda); return(RedirectToAction("Index", "Agenda", new { mensagem = "Agenda excluída com sucesso!" })); } catch (Exception ex) { ViewData[Constantes.ViewDataMensagemErro] = ex.Message; return(View(pModel)); } }
public IActionResult ContratarNutricionista(AgendaListaContratoVM pModel) { try { int idUsuario = Convert.ToInt32(User.Claims.FirstOrDefault(c => c.Type == Constantes.IDUsuarioLogado).ValueType); if (!ModelState.IsValid) { return(View(pModel)); } _ServiceContrato.ContratarNutricionista( new Contrato( pIdUsuario: idUsuario, pIdNutricionista: pModel.IdUsuario, pLogradouro: pModel.Endereco.Logradouro, complemento: pModel.Endereco?.Complemento, numero: pModel.Endereco?.Numero, pBairro: pModel.Endereco.Bairro, pCidade: pModel.Endereco.Cidade, pUF: Enum.GetValues(typeof(UnidadeFederacaoEnum)).Cast <UnidadeFederacaoEnum>().FirstOrDefault(c => c.GetDefaultValue().Equals(pModel.Endereco.UF)), pCEP: pModel.Endereco.CEP, dataInicio: pModel.DataInicio, dataTermino: pModel.DataFim, status: ContratacaoNutricionistas.Domain.Enumerados.Contrato.StatusContratoEnum.PendenteAceitacaoNutricionista ) ); ViewData[Constantes.ViewDataMensagemRetorno] = $"Sua consulta foi agendada com sucesso!"; return(RedirectToAction("ConsultasAgendadas", "Contrato", new { mensagem = ViewData[Constantes.ViewDataMensagemRetorno] })); } catch (Exception ex) { ViewData[Constantes.ViewDataMensagemErro] = ex.Message; return(View(pModel)); } }
public IActionResult ExcluirAgenda(int ID) { List <Agenda> agendas = _ServiceAgenda.AgendasCadastradas(DateTime.MinValue, DateTime.MinValue, Convert.ToInt32(User.Claims.FirstOrDefault(c => c.Type == Constantes.IDUsuarioLogado).ValueType) , false); Agenda agenda = agendas.FirstOrDefault(c => c.IdAgenda == ID); if (agenda == null) { return(RedirectToAction("Index", "Agenda")); } Endereco endereco = _ServiceEndereco.ConsultarEnderecoNutricionistaPorID(agenda.IdEndereco, agenda.IdUsuario); AgendaListaContratoVM agendaVM = new AgendaListaContratoVM() { DataFim = agenda.DataFim, DataInicio = agenda.DataInicio, IdAgenda = agenda.IdAgenda, IdUsuario = agenda.IdUsuario, StatusDaAgenda = agenda.StatusAgenda, Endereco = new EnderecoVM() { Bairro = endereco.Bairro, CEP = endereco.CEP, Cidade = endereco.Cidade, Complemento = endereco?.Complemento, Logradouro = endereco?.Logradouro, Numero = endereco?.Numero, UF = endereco.UF.GetDefaultValue() } }; return(View(agendaVM)); }