public async Task <IActionResult> Details(Guid id)
        {
            var servicoViewModel = _mapper.Map <ServicoViewModel>(await _contexto.ObterPorId(id));

            if (servicoViewModel == null)
            {
                return(NotFound());
            }

            return(View(servicoViewModel));
        }
Beispiel #2
0
        public async Task <ResultDto <ServicoDto> > ObterPorId(int servicoId)
        {
            var servico = await _servicoRepository.ObterPorId(servicoId);

            if (servico == null)
            {
                return(await Task.FromResult(ResultDto <ServicoDto> .Validation("Serviço não encontrado na base de dados!")));
            }

            var servicoDto = _mapper.Map <Servico, ServicoDto>(servico);

            return(await Task.FromResult(ResultDto <ServicoDto> .Success(servicoDto)));
        }
Beispiel #3
0
        public async Task <ResultDto <IEnumerable <HorarioDisponivelDto> > > ObterHorariosDisponiveis(string dataAgendamentoStr, int estabelecimentoId, int servicoId)
        {
            var dataAgendamento = DateTime.Parse(dataAgendamentoStr);
            var agendamentos    = await _agendamentoRepository.ObterAgendamentosPorEstabelecimentoEData(dataAgendamento, estabelecimentoId);

            var servico = await _servicoRepository.ObterPorId(servicoId);

            var dataHoraInicial = new DateTime(dataAgendamento.Year, dataAgendamento.Month, dataAgendamento.Day, 5, 0, 0);
            var dataHoraFinal   = new DateTime(dataAgendamento.Year, dataAgendamento.Month, dataAgendamento.Day, 22, 0, 0);
            var horarios        = new List <HorarioDisponivelDto>();

            while (dataHoraInicial < dataHoraFinal)
            {
                var dataHoraDuracao = dataHoraInicial.AddMinutes(servico.Duracao);

                var agendamento = agendamentos.FirstOrDefault(x => (dataHoraInicial >= x.DataAgendamento && dataHoraInicial < x.DataFinalAgendamento) ||
                                                              (dataHoraDuracao > x.DataAgendamento && dataHoraDuracao <= x.DataFinalAgendamento));
                if (agendamento == null)
                {
                    var horarioDisponivelDto = new HorarioDisponivelDto()
                    {
                        DataAgendamento    = dataHoraInicial,
                        DataAgendamentoStr = dataHoraInicial.ToString("dd/MM/yyyy HH:mm"),
                        HorarioInicial     = dataHoraInicial.ToString("HH:mm"),
                        HorarioFinal       = dataHoraDuracao.ToString("HH:mm")
                    };

                    horarios.Add(horarioDisponivelDto);
                    dataHoraInicial = dataHoraDuracao;
                }
                else
                {
                    dataHoraInicial = agendamento.DataFinalAgendamento;
                }
            }

            return(await Task.FromResult(ResultDto <IEnumerable <HorarioDisponivelDto> > .Success(horarios)));
        }
Beispiel #4
0
 public Servico ObterPorId(int id)
 {
     return(_servicoRepository.ObterPorId(id));
 }
 private async Task <ServicoViewModel> ObterServicoPorId(Guid id)
 {
     return(_mapper.Map <ServicoViewModel>(await _servicoRepository.ObterPorId(id)));
 }