Exemple #1
0
 public BloqueioAgenda SalvarBloqueioAgenda(BloqueioAgenda model)
 {
     if (model.IdBloqueio > 0)
     {
         Context.Entry(model).State = EntityState.Modified;
     }
     else
     {
         Context.BloqueioAgenda.Add(model);
     }
     Context.SaveChanges();
     return(model);
 }
Exemple #2
0
 public void ExcluirBloqueioAgenda(BloqueioAgenda model)
 {
     Context.BloqueioAgenda.Remove(model);
     Context.SaveChanges();
 }
 public BloqueioAgenda SalvarBloqueioAgenda(BloqueioAgenda model)
 {
     return(_repository.SalvarBloqueioAgenda(model));
 }
 public void ExcluirBloqueioAgenda(BloqueioAgenda model)
 {
     _repository.ExcluirBloqueioAgenda(model);
 }
        public HttpResponseMessage SalvarBloqueioAgenda(BloqueioAgendaViewModel model)
        {
            var result = new BloqueioAgendaAvisoViewModel();

            try
            {
                if (model.IdBloqueio > 0)
                {
                    var bloqueio = _serviceAgenda.ObterBloqueioAgenda(model.IdBloqueio);
                    bloqueio.SetDataFim(model.DataFim);
                    bloqueio.SetDataInicio(model.DataInicio);
                    bloqueio.SetMotivo(model.Motivo);

                    _serviceAgenda.SalvarBloqueioAgenda(bloqueio);
                }
                else
                {
                    var funcionario = _cadastroService.ObterFuncionarioById(model.IdFuncionario);
                    if (funcionario == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Não foi possível recuperar dados do funcionário."));
                    }

                    var clinica = _cadastroService.ObterClinicaById(base.GetUsuarioLogado().IdClinica);
                    if (clinica == null)
                    {
                        return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Não foi possível recuperar dados da clinica."));
                    }

                    //recupero a agenda do funcionário no periódo selecionado
                    var agendaperiodo = _serviceAgenda.ListarAgendaMedicaPorPeriodo(funcionario.IdFuncionario, model.DataInicio, model.DataFim);
                    if (agendaperiodo.Count == 0)
                    {
                        var bloqueio = new BloqueioAgenda(funcionario, clinica, model.DataInicio, model.DataFim, model.Motivo);
                        _serviceAgenda.SalvarBloqueioAgenda(bloqueio);
                        result.Aceito = true;
                    }
                    else
                    {
                        result.Aceito = false;

                        var marcados = agendaperiodo.Where(x => x.Situacao == "Marcado").ToList();
                        foreach (var item in marcados)
                        {
                            result.PacientesMarcados.Add(new PacientesMarcados
                            {
                                Data     = item.Data.ToShortDateString() + " as " + item.Hora.ToString(@"hh\:mm"),
                                Email    = item.Paciente.Pessoa.Email,
                                Nome     = item.Paciente.Pessoa.Nome,
                                Telefone = item.Paciente.Pessoa.Telefone1
                            });
                        }
                    }
                }

                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }