Ejemplo n.º 1
0
        public async Task <ObterServicosAgendadosResult> Execute(ObterServicosAgendadosParameter parameter)
        {
            var servicos = await _servicoRepository.ObterServicosAgendadosDia(parameter.Data);

            var servicosModel = _mapper.Map <IEnumerable <AgendaServicoListaModel> >(servicos);

            return(new ObterServicosAgendadosResult {
                ServicosAgendados = servicosModel
            });
        }
        public async Task <ObterHorariosProfissionalResult> Execute(ObterHorariosProfissionalParameter parameter)
        {
            int diaSemana = (int)parameter.Dia.DayOfWeek + 1;

            var dispobilidades    = (await _funcionarioRepository.GetDisponibilidade(parameter.FuncionarioId)).Where(x => x.DiaSemana == diaSemana);
            var horariosAgendados = (await _servicoRepository.ObterServicosAgendadosDia(parameter.Dia)).Where(x => x.FuncionarioId == parameter.FuncionarioId).Select(x => x.DataRealizacao.TimeOfDay);

            var result = new List <string>();

            var disponibilidadesValidas = dispobilidades.Where(x => !horariosAgendados.Contains(x.HorarioInicio)).ToList();

            disponibilidadesValidas.ForEach(x => result.Add($"{x.HorarioInicio} - {x.HorarioFim}"));

            return(new ObterHorariosProfissionalResult {
                Horarios = result
            });
        }