public FuncionarioServico Create(FuncionarioServico funcionarioServico)
        {
            var funcionario = _repoFuncionario.FindById(funcionarioServico.FuncionarioId);
            var servico     = _repoServico.FindById(funcionarioServico.ServicoId);

            if (funcionario == null || servico == null)
            {
                return(null);
            }

            var f = funcionario.FuncionarioServico.Find(fs => fs.ServicoId == funcionarioServico.ServicoId);

            if (f != null)
            {
                return(null);
            }

            return(_repoFuncionarioServico.Create(funcionarioServico));
        }
Example #2
0
        public Agendamento Create(Agendamento agendamento)
        {
            var cliente = _repoCliente.FindById(agendamento.ClienteId);
            var servico = _repoServico.FindById(agendamento.ServicoId);

            if (cliente == null || servico == null)
            {
                return(null);
            }

            // Adiciona o funcionário que realiza o serviço solicitado.
            var funcionarioServico = _repoFuncionarioServico.FindByIdServico(servico.Id).FirstOrDefault();

            if (funcionarioServico == null)
            {
                return(null);
            }

            agendamento.Funcionario = funcionarioServico.Funcionario;
            agendamento.DataTermino = agendamento.Data.Value.AddMinutes(servico.MinutosParaExecucao);

            var agenda = _repoAgendamento.FindAll();

            if (agenda.Count < 1)
            {
                return(_repoAgendamento.Create(agendamento));
            }

            DateTime dataTerminoParaAgendar = agendamento.Data.Value.AddMinutes(servico.MinutosParaExecucao);

            if (agenda.Any(a => a.DataTermino >= agendamento.Data && a.Data <= dataTerminoParaAgendar &&
                           a.Funcionario == funcionarioServico.Funcionario))
            {
                return(null);
            }

            return(_repoAgendamento.Create(agendamento));
        }
Example #3
0
 public Servico FindById(int id)
 {
     return(_repoServico.FindById(id));
 }