Exemplo n.º 1
0
        public static string buscaMelhorHotel(List<Hotel> lstHotel, Cliente cliente)
        {
            int melhor = 0;
            int totalIgual = 0;

            for (int i = 0; i < lstHotel.Count; i++){
                if (i == 0)
                    melhor = i;
                else{

                    if (lstHotel[i].calularDiaria(cliente) < lstHotel[melhor].calularDiaria(cliente))
                    {
                        melhor = i;
                    }
                    else if (lstHotel[i].calularDiaria(cliente) == lstHotel[melhor].calularDiaria(cliente))
                    {
                        totalIgual++;
                    }
                }
            }

            if (totalIgual ==  lstHotel.Count) {

                for (int i = 0; i < lstHotel.Count; i++) {
                    if (lstHotel[i].Estrelas > lstHotel[melhor].Estrelas)
                        melhor = i;
                }
            }

            return lstHotel[melhor].Nome;
        }
Exemplo n.º 2
0
        public float calularDiaria(Cliente cliente)
        {
            float valor = 0;

            foreach (var reserva in cliente.Reserva){
                bool weekEnd = (reserva.Data.DayOfWeek == DayOfWeek.Saturday || reserva.Data.DayOfWeek == DayOfWeek.Sunday) ? true : false;

                var blackout = new Blockout();
                blackout.Data = reserva.Data;
                var hasBlouckout = blackouts.Contains(blackout);

                var precoFiltrado = precos.Where(x => x.DiaSemana == (weekEnd ? "WEEKEND" :"WEEK"));
                var precoReserva = precoFiltrado.First(x => x.TipoCliente == (hasBlouckout ? "REGULAR" : cliente.Tipo)).Preco;
                valor += precoReserva;
            }

            return valor;
        }
Exemplo n.º 3
0
        static Cliente makeInput(string inputReserva)
        {
            int keyPipe = inputReserva.IndexOf(":");
            string typeCliente = inputReserva.Substring(0, keyPipe).ToUpper().Trim();
            inputReserva = inputReserva.Substring(keyPipe + 1, inputReserva.Length - keyPipe -1).Trim();
            string[] lstDataReserva = inputReserva.Split(',');

            List<Reserva> lstReserva = new List<Reserva>();
            foreach (var data in lstDataReserva){
                var reserva = new Reserva(Convert.ToDateTime(data));
                lstReserva.Add(reserva);
            }

            var cliente = new Cliente();
            cliente.Reserva = lstReserva;
            cliente.Tipo = typeCliente;

            return cliente;
        }