Example #1
0
        public Result <bool> Salva(SessaoModel model)
        {
            var podeSalvar = true;
            var result     = new Result <bool>();

            result.Value  = false;
            result.Status = false;

            if (model.Valor < 100)
            {
                result.Message = "O valor mínimo de uma Sessão é de R$100!";
            }
            else
            {
                model.Data = Convert.ToDateTime(String.Format("{0} {1}",
                                                              model.Data.ToShortDateString(), model.Horario));


                var pesquisaModel = new PesquisaModel
                {
                    IdPesquisa = model.IdPaciente,
                    DataIncio  = model.Data,
                    DataFim    = model.Data.AddHours(1)
                };

                var sessoesPaciente = _sessaoRepository.ListSessoesPeriodoIdPaciente(pesquisaModel);

                if (sessoesPaciente.Count > 0)
                {
                    if (model.Id != 0)
                    {
                        sessoesPaciente = sessoesPaciente.Where(x => x.Id != model.Id).ToList();
                    }

                    if (sessoesPaciente.Count > 0)
                    {
                        result.Message = "O Paciente já possui Sessão marcada para o dia e hora selecionados!";
                        podeSalvar     = false;
                    }
                }

                if (podeSalvar)
                {
                    if (model.Id == 0)
                    {
                        model = _sessaoRepository.Salvar(model);
                        if (model.Id != 0)
                        {
                            model = _sessaoRepository.GetById(model.Id);
                            InsereRegistroCaixa(model);
                            result.Message = "Sessão salva com sucesso!";
                            result.Value   = true;
                            result.Status  = true;
                        }
                        else
                        {
                            result.Message = "Falha ao salvar a Sessão!";
                        }
                    }
                    else
                    {
                        result.Value = _sessaoRepository.Atualizar(model);
                        if (result.Value)
                        {
                            model = _sessaoRepository.GetById(model.Id);
                            AtualizaRegistroCaixa(model);

                            result.Message = "Sessão atualizada com sucesso!";
                            result.Value   = true;
                            result.Status  = true;
                        }
                        else
                        {
                            result.Message = "Falha ao atualizar a Sessão!";
                        }
                    }
                }
            }

            return(result);
        }