public void Save(Agenda agenda)
        {
            try
            {
                _dataContext.BeginTransaction();

                agenda.Medico   = _medicoRepository.Get(_dataContext, agenda.Medico.Crm);
                agenda.Paciente = _pacienteRepository.Get(_dataContext, agenda.Paciente.Cpf);

                if (ValidaAgenda(agenda))
                {
                    if (agenda.Id > 0)
                    {
                        _agendaRepository.Update(_dataContext, agenda);
                    }
                    else
                    {
                        _agendaRepository.Add(_dataContext, agenda);
                    }

                    _dataContext.Commit();

                    ResponseService = new ResponseService()
                    {
                        Type    = ResponseTypeEnum.Success,
                        Message = "Agenda cadastrada com sucesso."
                    };
                }
            }
            catch (Exception e)
            {
                ResponseService = new ResponseService()
                {
                    Type    = ResponseTypeEnum.Error,
                    Message = "Houve uma falha ao cadastrar a agenda."
                };
                _dataContext.Rollback();
            }
            finally
            {
                _dataContext.Finally();
            }
        }
        public bool ValidaAgenda(Agenda agenda)
        {
            ResponseService = new ResponseService();

            if (agenda.Clinica == null || agenda.Clinica.Id == 0)
            {
                ResponseService.FieldsInvalids.Add("Clinica");
                ResponseService.Message += "Não foi possível identificar a clínica.";
            }
            if (agenda.Medico == null || agenda.Medico.Id == 0)
            {
                ResponseService.FieldsInvalids.Add("Medico");
                ResponseService.Message += "Não foi possível identificar o médico.";
            }
            if (agenda.Paciente == null || agenda.Paciente.Id == 0)
            {
                ResponseService.FieldsInvalids.Add("Paciente");
                ResponseService.Message += "Não foi possível identificar o paciente.";
            }
            if (agenda.DataHoraMarcada < DateTime.Now)
            {
                ResponseService.FieldsInvalids.Add("DataHoraMarcada");
                ResponseService.Message += "A data marcada deve ser maior que a atual.";
            }
            if (string.IsNullOrEmpty(agenda.TempoEstimado))
            {
                ResponseService.FieldsInvalids.Add("TempoEstimado");
                ResponseService.Message += "O tempo estimado não foi informado.";
            }

            if (ResponseService.FieldsInvalids.Count > 0)
            {
                ResponseService.Message += "Informe os dados corretamente.";
            }

            ResponseService.Type =
                string.IsNullOrEmpty(ResponseService.Message) ?
                ResponseTypeEnum.Success :
                ResponseTypeEnum.Warning;
            return(ResponseService.Type == ResponseTypeEnum.Success);
        }
예제 #3
0
 public PacienteService()
 {
     _dataContext        = new DataContext();
     _pacienteRepository = new PacienteRepository();
     ResponseService     = new ResponseService();
 }
예제 #4
0
 public ClinicaService()
 {
     _dataContext       = new DataContext();
     _clinicaRepository = new ClinicaRepository();
     ResponseService    = new ResponseService();
 }