public HttpResponseMessage ObterBloqueioAgenda(int id) { try { var model = new BloqueioAgendaViewModel(); var result = _serviceAgenda.ObterBloqueioAgenda(id); if (result == null) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Não foi possível recuperar dados do bloqueio de agenda.")); } model.DataFim = result.DataFim; model.DataInicio = result.DataInicio; model.Funcionario = result.Funcionario.Pessoa.Nome; model.IdBloqueio = result.IdBloqueio; model.IdFuncionario = result.IdFuncionario; model.Motivo = result.Motivo; return(Request.CreateResponse(HttpStatusCode.OK, model)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message)); } }
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)); } }