コード例 #1
0
 public Models.TbConsulta CancelarConsulta(int id)
 {
     Models.TbConsulta consulta = this.PegarConsulta(id);
     consulta.DsSituacao = "Cancelado";
     ctx.SaveChanges();
     return(consulta);
 }
コード例 #2
0
        public Models.TbConsulta AgendarNovaConsulta(Models.TbConsulta request, string email)
        {
            if (request.IdServico == 0)
            {
                throw new ArgumentException("Obrigatório a escolha de um serviço");
            }

            if (request.IdFuncionario == 0)
            {
                throw new ArgumentException("Obrigatório a escolha de um profissional");
            }

            validador.ValidarSeOFuncionarioEstaDisponivel(request.DtConsulta, request.IdFuncionario);

            validador.ValidarSeOClienteEstaDisponivel(request.DtConsulta, request.IdCliente);

            validador.ValidarHorarios(request.DtConsulta);

            validador.ValidarPagamento(request.TpFormaPagamento, request.NrParcelas);

            if (email == null)
            {
                return(dbAgendamento.AgendarNovaConsulta(request));
            }
            else
            {
                validador.ValidarEmail(email);
                int IdCliente = dbAgendamento.DescobrirClientePeloEmail(email);

                request.IdCliente = IdCliente;
                return(dbAgendamento.AgendarNovaConsulta(request));
            }
        }
コード例 #3
0
 public Models.TbConsulta AlterarSituação(int idConsulta, string novaSituacao)
 {
     Models.TbConsulta consulta = this.PegarConsulta(idConsulta);
     consulta.DsSituacao = novaSituacao;
     ctx.SaveChanges();
     return(consulta);
 }
コード例 #4
0
        public Models.TbConsulta AgendarNovaConsulta(Models.TbConsulta request)
        {
            ctx.TbConsulta.Add(request);

            ctx.SaveChanges();

            return(this.PegarConsulta(request.IdConsulta));
        }
コード例 #5
0
        public Models.TbConsulta RemarcarConsulta(Models.Request.RemarcacaoRequest request)
        {
            Models.TbConsulta consultaNova = this.PegarConsulta(request.IdAgendamento);

            consultaNova.DtConsulta = request.NovoHorario;
            ctx.SaveChanges();

            return(this.PegarConsulta(consultaNova.IdConsulta));
        }
コード例 #6
0
 public Models.Response.ConsultaResponse ParaConsultaResponse(Models.TbConsulta consulta)
 {
     Models.Response.ConsultaResponse consultaResponse = new Models.Response.ConsultaResponse();
     consultaResponse.Email           = consulta.IdClienteNavigation.IdLoginNavigation.DsEmail;
     consultaResponse.HorarioConsulta = consulta.DtConsulta;
     consultaResponse.HorarioInclusao = consulta.DtInclusao;
     consultaResponse.NomeCliente     = consulta.IdClienteNavigation.NmCliente;
     consultaResponse.NomeFuncionario = consulta.IdFuncionarioNavigation.NmFuncionario;
     consultaResponse.Servico         = consulta.IdServicoNavigation.NmServico;
     return(consultaResponse);
 }
コード例 #7
0
        public Models.TbConsulta RemarcarConsulta(Models.Request.RemarcacaoRequest request)
        {
            validador.ValidarHorarios(request.NovoHorario);

            Models.TbConsulta consulta = dbAgendamento.PegarConsulta(request.IdAgendamento);

            validador.ValidarSeOFuncionarioEstaDisponivel(request.NovoHorario, consulta.IdFuncionario);

            validador.ValidarSeOClienteEstaDisponivel(request.NovoHorario, consulta.IdCliente);

            return(dbAgendamento.RemarcarConsulta(request));
        }
コード例 #8
0
        public Models.TbConsulta AvaliarConsulta(Models.Request.AvaliarRequest feedback)
        {
            Models.TbConsulta consultaComNovoFeedback = this.PegarConsulta(feedback.IdConsulta);

            consultaComNovoFeedback.NrNota = feedback.Nota;
            ctx.SaveChanges();

            consultaComNovoFeedback.DsComentarioFeedback = feedback.Comentario;
            ctx.SaveChanges();

            return(consultaComNovoFeedback);
        }
コード例 #9
0
 public ActionResult <Models.Response.ConsultaResponse> RemarcarConsulta(Models.Request.RemarcacaoRequest request)
 {
     try
     {
         Models.TbConsulta consulta = business.RemarcarConsulta(request);
         Models.Response.ConsultaResponse response = conversor.ParaConsultaResponse(consulta);
         enviarEmailBusiness.EnviarEmailDeRemarcacaoDaConsulta(response);
         return(response);
     }
     catch (System.Exception ex)
     {
         return(BadRequest(new Models.Response.ErroResponse(
                               ex.Message, 400
                               )));
     }
 }
コード例 #10
0
        public Models.TbConsulta FuncionarioParaTbConsulta(Models.Request.NovaConsultaFuncionarioRequest request)
        {
            Models.TbConsulta NovaConsulta = new Models.TbConsulta();

            NovaConsulta.IdFuncionario    = request.IdFuncionario;
            NovaConsulta.DsSituacao       = "Agendado";
            NovaConsulta.DtConsulta       = request.Data;
            NovaConsulta.DtInclusao       = DateTime.Now;
            NovaConsulta.IdFuncionario    = request.IdFuncionario;
            NovaConsulta.IdServico        = request.IdServico;
            NovaConsulta.NrParcelas       = request.QtdParcelas;
            NovaConsulta.TpFormaPagamento = request.FormaDePagamento;
            NovaConsulta.VlDesconto       = request.Desconto;
            NovaConsulta.VlSubtotal       = request.SubTotal;
            NovaConsulta.VlTotal          = request.ValorTotal;
            NovaConsulta.VlTotalPorMes    = request.ValorTotal / request.QtdParcelas;

            return(NovaConsulta);
        }
コード例 #11
0
        public ActionResult <Models.Response.SucessoResponse> CancelarConsulta(int idconsulta)
        {
            try
            {
                Models.TbConsulta consulta = business.CancelarConsulta(idconsulta);

                Models.Response.ConsultaResponse consultaResponse = conversor.ParaConsultaResponse(consulta);

                enviarEmailBusiness.EnviarEmailDeCancelamentoDaConsulta(consultaResponse);

                return(new Models.Response.SucessoResponse("Consulta cancelada com sucesso"));
            }
            catch (System.Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(
                                      ex.Message, 400
                                      )));
            }
        }
コード例 #12
0
        public ActionResult <Models.Response.ConsultaResponse> AgendarNovaConsultaCliente(Models.Request.NovaConsultaClienteRequest request)
        {
            try
            {
                Models.TbConsulta consulta = conversor.ClienteParaTbConsulta(request);

                consulta = business.AgendarNovaConsulta(consulta, null);

                Models.Response.ConsultaResponse consultaResponse = conversor.ParaConsultaResponse(consulta);

                enviarEmailBusiness.EnviarEmailDeAgendamentoDaConsulta(consultaResponse);
                return(consultaResponse);
            }
            catch (System.Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(
                                      ex.Message, 400
                                      )));
            }
        }
コード例 #13
0
        public ActionResult <Models.Response.SucessoResponse> AlterarSituação(int idConsulta, string novaSituacao)
        {
            try
            {
                Models.TbConsulta consulta = business.AlterarSituação(idConsulta, novaSituacao);

                if (consulta.DsSituacao == "Concluido")
                {
                    Models.Response.ConsultaResponse consultaResponse = conversor.ParaConsultaResponse(consulta);
                    enviarEmailBusiness.EnviarEmailDeAvaliacaoDaConsulta(consultaResponse);
                }

                return(new Models.Response.SucessoResponse("Situação da consulta alterada com sucesso!"));
            }
            catch (System.Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(
                                      ex.Message, 400
                                      )));
            }
        }
コード例 #14
0
        public ActionResult <Models.Response.ConsultaResponse> AgendarNovaConsultaFuncionario(Models.Request.NovaConsultaFuncionarioRequest request)
        {
            try
            {
                Models.TbConsulta tbConsulta = conversor.FuncionarioParaTbConsulta(request);

                Models.TbConsulta consultaAgendada = business.AgendarNovaConsulta(tbConsulta, request.EmailCliente);

                Models.Response.ConsultaResponse response = conversor.ParaConsultaResponse(consultaAgendada);

                enviarEmailBusiness.EnviarEmailDeAgendamentoDaConsulta(response);

                return(response);
            }
            catch (System.Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(
                                      ex.Message, 400
                                      )));
            }
        }
コード例 #15
0
 public Models.TbConsulta PegarConsulta(int id)
 {
     Models.TbConsulta consulta = ctx.TbConsulta.FirstOrDefault(x => x.IdConsulta == id);
     return(consulta);
 }