Ejemplo n.º 1
0
        /*
         * return success
         */

        public void Execute(Parque p)
        {
            using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
            {
                EnsureContext();
                _context.EnlistTransaction();
                using (IDbCommand cmd = _context.CreateCommand())
                {
                    var parqueMapper           = new ParqueMapper(_context);
                    var alojamentoMapper       = new AlojamentoMapper(_context);
                    var estadaMapper           = new EstadaMapper(_context);
                    var estadaAlojamentoMapper = new EstadaAlojamentoMapper(_context);
                    var estadaHóspedeMapper    = new EstadaHóspedeMapper(_context);
                    var hospedeMapper          = new HóspedeMapper(_context);

                    var alojamentos = alojamentoMapper.ReadAll().Where(a => a.Parque.Nome.Equals(p.Nome));

                    //find relations of alojamento-estada
                    var estadaAlojamentos = estadaAlojamentoMapper.ReadAll()
                                            .Where(ea => alojamentos.Any(a => a.Nome.Equals(ea.Alojamento.Nome)));

                    var estadaHóspedes = estadaHóspedeMapper.ReadAll()
                                         .Where(eh => estadaAlojamentos.Any(al => al.Estada.Id == eh.Estada.Id));

                    var hospedes = estadaHóspedes.Select(eh => eh.Hóspede);


                    foreach (var estadaHóspede in estadaHóspedes)
                    {
                        estadaHóspedeMapper.Delete(estadaHóspede);
                    }


                    foreach (var ea in estadaAlojamentos)
                    {
                        estadaAlojamentoMapper.Delete(ea);
                        estadaMapper.Delete(ea.Estada);
                    }
                    foreach (var alojamento in alojamentos)
                    {
                        alojamentoMapper.Delete(alojamento);
                    }
                    //alojamentos deleted

                    var hospedesSemEstada =
                        hospedes.Where(h => estadaHóspedeMapper.ReadAll().All(eh => eh.Hóspede.Nif != h.Nif));

                    foreach (var e in hospedesSemEstada)
                    {
                        hospedeMapper.Delete(e);
                    }

                    parqueMapper.Delete(p);
                }


                ts.Complete();
            }
        }
        public static void ObterTotalPagoPorHóspede(Context ctx)
        {
            Console.WriteLine("Insira o nome do Parque");
            var nomeParque = Console.ReadLine();

            Console.WriteLine("Insira a Data Inicial (ANO-MÊS-DIA)");
            var dataInicial = Convert.ToDateTime(Console.ReadLine());

            Console.WriteLine("Insira a Data Final (ANO-MÊS-DIA)");
            var dataFinal = Convert.ToDateTime(Console.ReadLine());

            var estadasMapper          = new EstadaMapper(ctx);
            var estadaAlojamentoMapper = new EstadaAlojamentoMapper(ctx);
            var alojamentosMapper      = new AlojamentoMapper(ctx);
            var extraEstadasMapper     = new ExtraEstadaMapper(ctx);
            var estadaHospedeMapper    = new EstadaHóspedeMapper(ctx);

            var idEstada = from estada in estadasMapper.ReadAll()
                           where estada.DataFim <= dataFinal && estada.DataInicio >= dataInicial
                           select estada.Id;//Estadas para a data inserida;

            var estadaAlojamentos = from alojamento in estadaAlojamentoMapper.ReadAll()
                                    where idEstada.Contains(alojamento.Estada.Id)
                                    select alojamento;

            var countALojamentos = (from alojameno in alojamentosMapper.ReadAll()
                                    where alojameno.Parque.Nome == nomeParque
                                    select alojameno).Count();


            var extraEstadas = from extraEstada in extraEstadasMapper.ReadAll()
                               where estadaAlojamentos.Select(e => e.Estada.Id).Contains(extraEstada.Estada.Id)
                               select extraEstada;

            var estrasAlojamento = from extrasAlojamento in extraEstadas
                                   where extrasAlojamento.Extra.Tipo.Equals("Alojamento")
                                   select extrasAlojamento;

            var extrasPreços = (from estras in estrasAlojamento select estras.PreçoDia);
            var somaDosPreçosDosExtrasAlojamento = extrasPreços.Any() ? extrasPreços.Sum() : 0;

            var numeroHospedes = (from estadaHospede in estadaHospedeMapper.ReadAll()
                                  where estadaAlojamentos.Select(e => e.Estada.Id).Contains(estadaHospede.Estada.Id)
                                  select estadaHospede.Hóspede).Count();
            var extraHospedes = from extras in extraEstadas
                                where extras.Extra.Tipo.Equals("Hóspede")
                                select extras.Extra.PreçoDia;

            var preçoTotal = (extraHospedes.Any() ? extraHospedes.Sum() : 0) + somaDosPreçosDosExtrasAlojamento / (numeroHospedes != 0 ? numeroHospedes : 1);

            Console.WriteLine("O preço total pago por hóspede é {0}", preçoTotal);
        }
Ejemplo n.º 3
0
        public void EnviarEmailsNumPeriodoTest()
        {
            using (Context ctx = new Context(_connectionString))
            {
                var estada = new Estada
                {
                    DataInicio = new DateTime(2000, 1, 2),
                    DataFim    = new DateTime(2000, 1, 5),
                    Id         = 123456,
                    NifHospede = 111
                };

                EstadaMapper estadaMapper = new EstadaMapper(ctx);
                estada = estadaMapper.Create(estada);

                Hóspede hóspede = new Hóspede
                {
                    Bi     = 456,
                    Nif    = 111,
                    Nome   = "Jaquim",
                    Email  = "*****@*****.**",
                    Morada = "Rua da Calçada"
                };

                HóspedeMapper hóspedeMapper = new HóspedeMapper(ctx);
                hóspede = hóspedeMapper.Create(hóspede);

                EstadaHóspede estadaHóspede = new EstadaHóspede()
                {
                    Estada  = estada,
                    Hóspede = hóspede
                };

                var estadaHospedeMapper = new EstadaHóspedeMapper(ctx);
                estadaHóspede = estadaHospedeMapper.Create(estadaHóspede);
                ////////////////////
                var estada2 = new Estada
                {
                    DataInicio = new DateTime(2000, 1, 10),
                    DataFim    = new DateTime(2000, 1, 12),
                    Id         = 576586,
                    NifHospede = 222
                };

                estada2 = estadaMapper.Create(estada2);

                Hóspede hóspede2 = new Hóspede
                {
                    Bi     = 789,
                    Nif    = 222,
                    Nome   = "Pedro",
                    Email  = "*****@*****.**",
                    Morada = "Rua de Juz"
                };

                hóspede2 = hóspedeMapper.Create(hóspede2);

                EstadaHóspede estadaHóspede2 = new EstadaHóspede()
                {
                    Estada  = estada2,
                    Hóspede = hóspede2
                };

                estadaHóspede2 = estadaHospedeMapper.Create(estadaHóspede2);

                var enviar = new EnviarEmailsNumPeriodo(ctx);
                enviar.Execute(5, out int contador);

                Assert.AreEqual(1, contador);

                foreach (var e in estadaHospedeMapper.ReadAll())
                {
                    estadaHospedeMapper.Delete(e);
                }

                foreach (var hospede in hóspedeMapper.ReadAll())
                {
                    hóspedeMapper.Delete(hospede);
                }

                foreach (var e in estadaMapper.ReadAll())
                {
                    estadaMapper.Delete(estada);
                }
            }
        }
Ejemplo n.º 4
0
        public void InsertHóspedeTest()
        {
            using (Context ctx = new Context(_connectionString))
            {
                var estada = new Estada
                {
                    DataInicio = new DateTime(2007, 3, 1),
                    DataFim    = new DateTime(2017, 3, 1),
                    Id         = 25,
                    NifHospede = 0
                };

                EstadaMapper estadaMapper = new EstadaMapper(ctx);
                estada = estadaMapper.Create(estada);


                Hóspede hóspede = new Hóspede();
                hóspede.Bi     = 1234567890;
                hóspede.Nif    = 0;
                hóspede.Nome   = "Jaquim";
                hóspede.Email  = "*****@*****.**";
                hóspede.Morada = "Rua da Calçada";

                HóspedeMapper hóspedeMapper = new HóspedeMapper(ctx);
                hóspede = hóspedeMapper.Create(hóspede);

                EstadaHóspede estadaHóspede = new EstadaHóspede()
                {
                    Estada  = estada,
                    Hóspede = hóspede
                };

                var estadaHospedeMapper = new EstadaHóspedeMapper(ctx);

                estadaHóspede = estadaHospedeMapper.Create(estadaHóspede);

                /*
                 * CREATE PARQUE
                 */
                Parque p = new Parque();
                p.Nome     = "brasil";
                p.Email    = "*****@*****.**";
                p.Morada   = "Rio de Janeiro, Rua Junqueiro 367";
                p.Estrelas = 5;

                ParqueMapper parqueMap = new ParqueMapper(ctx);
                p = parqueMap.Create(p);


                var atividade = new Atividade
                {
                    Parque        = p,
                    DataAtividade = new DateTime(2009, 10, 1),
                    Descrição     = "FORA",
                    Preço         = 90,
                    Lotaçao       = 12,
                    NomeAtividade = "HAMBURGER"
                };
                var atividadeMapper = new AtividadeMapper(ctx);
                atividade = atividadeMapper.Create(atividade);


                Fatura fatura = new Fatura();
                fatura.Hóspede    = hóspede;
                fatura.Estada     = estada;
                fatura.Id         = 1;
                fatura.ValorFinal = 0;


                var faturaMapper = new FaturaMapper(ctx);
                fatura = faturaMapper.Create(fatura);


                var inscr = new InscreverHóspedeEmAtividade(ctx);

                inscr.Execute(hóspede.Nif, atividade.NomeAtividade, p.Nome);


                var hospedeAtividadeMapper = new HóspedeAtividadeMapper(ctx);
                var componenteFaturaMapper = new ComponenteFaturaMapper(ctx);

                var hospedeAtividade = hospedeAtividadeMapper.Read(atividade.NomeAtividade);
                Assert.IsNotNull(hospedeAtividade);
                var count = componenteFaturaMapper.ReadAll().Count;
                Assert.AreNotEqual(count, 0);

                /*
                 * REMOVE THE PARQUE
                 */


                foreach (var cp in hospedeAtividadeMapper.ReadAll())
                {
                    hospedeAtividadeMapper.Delete(cp);
                }
                foreach (var s in atividadeMapper.ReadAll())
                {
                    atividadeMapper.Delete(s);
                }
                foreach (var e in estadaHospedeMapper.ReadAll())
                {
                    estadaHospedeMapper.Delete(e);
                }

                foreach (var cp in componenteFaturaMapper.ReadAll())
                {
                    componenteFaturaMapper.Delete(cp);
                }

                foreach (var e in faturaMapper.ReadAll())
                {
                    faturaMapper.Delete(e);
                }

                foreach (var hospede in hóspedeMapper.ReadAll())
                {
                    hóspedeMapper.Delete(hospede);
                }

                foreach (var parque in parqueMap.ReadAll())
                {
                    parqueMap.Delete(parque);
                }


                foreach (var e in estadaMapper.ReadAll())
                {
                    estadaMapper.Delete(estada);
                }
            }
        }
Ejemplo n.º 5
0
        public void ListAvailableActivitiesTest()
        {
            using (Context ctx = new Context(_connectionString))
            {
                var estada = new Estada
                {
                    DataInicio = new DateTime(2017, 1, 1),
                    DataFim    = new DateTime(2017, 5, 2),
                    Id         = 123456,
                    NifHospede = 111
                };

                EstadaMapper estadaMapper = new EstadaMapper(ctx);
                estada = estadaMapper.Create(estada);

                Hóspede hóspede = new Hóspede();
                hóspede.Bi     = 456;
                hóspede.Nif    = 111;
                hóspede.Nome   = "Jaquim";
                hóspede.Email  = "*****@*****.**";
                hóspede.Morada = "Rua da Calçada";

                HóspedeMapper hóspedeMapper = new HóspedeMapper(ctx);
                hóspede = hóspedeMapper.Create(hóspede);

                EstadaHóspede estadaHóspede = new EstadaHóspede()
                {
                    Estada  = estada,
                    Hóspede = hóspede
                };

                var estadaHospedeMapper = new EstadaHóspedeMapper(ctx);
                estadaHóspede = estadaHospedeMapper.Create(estadaHóspede);

                Parque p = new Parque();
                p.Nome     = "brasil";
                p.Email    = "*****@*****.**";
                p.Morada   = "Rio de Janeiro, Rua Junqueiro 367";
                p.Estrelas = 5;

                ParqueMapper parqueMap = new ParqueMapper(ctx);
                p = parqueMap.Create(p);

                Atividade atividade = new Atividade
                {
                    Parque        = p,
                    DataAtividade = new DateTime(2017, 1, 1),
                    Descrição     = "Canoagem",
                    Preço         = 90,
                    Lotaçao       = 12,
                    NomeAtividade = "Canoagem"
                };

                var atividadeMapper = new AtividadeMapper(ctx);
                atividade = atividadeMapper.Create(atividade);

                Atividade atividade2 = new Atividade
                {
                    Parque        = p,
                    DataAtividade = new DateTime(2016, 1, 2),
                    Descrição     = "Pesca",
                    Preço         = 45,
                    Lotaçao       = 20,
                    NomeAtividade = "Pesca"
                };

                atividade2 = atividadeMapper.Create(atividade2);

                HóspedeAtividade hóspedeAtividade = new HóspedeAtividade()
                {
                    Hóspede        = hóspede,
                    Nome_Atividade = atividade.NomeAtividade,
                    Nome_Parque    = p.Nome
                };

                var hóspedeAtividadeMapper = new HóspedeAtividadeMapper(ctx);
                hóspedeAtividade = hóspedeAtividadeMapper.Create(hóspedeAtividade);

                HóspedeAtividade hóspedeAtividade2 = new HóspedeAtividade()
                {
                    Hóspede        = hóspede,
                    Nome_Atividade = atividade2.NomeAtividade,
                    Nome_Parque    = p.Nome
                };

                hóspedeAtividade2 = hóspedeAtividadeMapper.Create(hóspedeAtividade2);

                var listagem = new ListarAtividadeComLugares(ctx);

                listagem.Execute(new DateTime(2016, 1, 1), new DateTime(2018, 1, 1));

                foreach (var h in hóspedeAtividadeMapper.ReadAll())
                {
                    hóspedeAtividadeMapper.Delete(h);
                }
                foreach (var s in atividadeMapper.ReadAll())
                {
                    atividadeMapper.Delete(s);
                }
                foreach (var e in estadaHospedeMapper.ReadAll())
                {
                    estadaHospedeMapper.Delete(e);
                }

                foreach (var hospede in hóspedeMapper.ReadAll())
                {
                    hóspedeMapper.Delete(hospede);
                }

                foreach (var parque in parqueMap.ReadAll())
                {
                    parqueMap.Delete(parque);
                }

                foreach (var e in estadaMapper.ReadAll())
                {
                    estadaMapper.Delete(estada);
                }
            }
        }
Ejemplo n.º 6
0
        public void InsertExtraTest()
        {
            using (Context ctx = new Context(_connectionString))
            {
                var estada = new Estada
                {
                    DataInicio = new DateTime(2007, 3, 1),
                    DataFim    = new DateTime(2017, 3, 1),
                    Id         = 25,
                    NifHospede = 0
                };

                EstadaMapper estadaMapper = new EstadaMapper(ctx);
                estada = estadaMapper.Create(estada);


                Hóspede hóspede = new Hóspede();
                hóspede.Bi     = 1234567890;
                hóspede.Nif    = 0987654321;
                hóspede.Nome   = "Jaquim";
                hóspede.Email  = "*****@*****.**";
                hóspede.Morada = "Rua da Calçada";

                HóspedeMapper hóspedeMapper = new HóspedeMapper(ctx);
                hóspede = hóspedeMapper.Create(hóspede);

                EstadaHóspede estadaHóspede = new EstadaHóspede()
                {
                    Estada  = estada,
                    Hóspede = hóspede
                };

                var estadaHospedeMapper = new EstadaHóspedeMapper(ctx);

                estadaHóspede = estadaHospedeMapper.Create(estadaHóspede);

                var ee = estadaHospedeMapper.Read(new KeyValuePair <int, int>(estadaHóspede.Hóspede.Nif, estadaHóspede.Estada.Id));

                Assert.IsNotNull(ee);

                Assert.AreEqual(ee.Hóspede.Nif, estadaHóspede.Hóspede.Nif);
                Assert.AreEqual(ee.Estada.Id, estadaHóspede.Estada.Id);



                foreach (var e in estadaHospedeMapper.ReadAll())
                {
                    estadaHospedeMapper.Delete(e);
                }

                foreach (var e in estadaMapper.ReadAll())
                {
                    estadaMapper.Delete(estada);
                }

                foreach (var hospede in hóspedeMapper.ReadAll())
                {
                    hóspedeMapper.Delete(hospede);
                }
            }
        }
Ejemplo n.º 7
0
        public void PagamentoEstadaComFaturaTest()
        {
            using (Context ctx = new Context(_connectionString))
            {
                var estada = new Estada
                {
                    DataInicio = new DateTime(2000, 1, 1),
                    DataFim    = new DateTime(2000, 5, 2),
                    Id         = 123456,
                    NifHospede = 111
                };

                EstadaMapper estadaMapper = new EstadaMapper(ctx);
                estada = estadaMapper.Create(estada);

                Hóspede hóspede = new Hóspede();
                hóspede.Bi     = 456;
                hóspede.Nif    = 111;
                hóspede.Nome   = "Jaquim";
                hóspede.Email  = "*****@*****.**";
                hóspede.Morada = "Rua da Calçada";

                HóspedeMapper hóspedeMapper = new HóspedeMapper(ctx);
                hóspede = hóspedeMapper.Create(hóspede);

                EstadaHóspede estadaHóspede = new EstadaHóspede()
                {
                    Estada  = estada,
                    Hóspede = hóspede
                };

                var estadaHospedeMapper = new EstadaHóspedeMapper(ctx);
                estadaHóspede = estadaHospedeMapper.Create(estadaHóspede);

                Fatura fatura = new Fatura()
                {
                    Id         = 9999,
                    Estada     = estada,
                    Hóspede    = hóspede,
                    ValorFinal = 0
                };

                FaturaMapper faturaMapper = new FaturaMapper(ctx);
                fatura = faturaMapper.Create(fatura);

                Parque p = new Parque();
                p.Nome     = "brasil";
                p.Email    = "*****@*****.**";
                p.Morada   = "Rio de Janeiro, Rua Junqueiro 367";
                p.Estrelas = 5;

                ParqueMapper parqueMap = new ParqueMapper(ctx);
                p = parqueMap.Create(p);

                Alojamento alojamento = new Alojamento
                {
                    Nome        = "Primeiro Alojamento",
                    Localizaçao = "Quinta da Marinha",
                    Descrição   = "T0 com duche",
                    MaxPessoas  = 5,
                    PreçoBase   = 85,
                    Parque      = p
                };

                AlojamentoMapper alojamentoMapper = new AlojamentoMapper(ctx);
                alojamento = alojamentoMapper.Create(alojamento);

                Bungalow bungalow = new Bungalow()
                {
                    Tipologia  = "T2",
                    Alojamento = alojamento
                };

                BungalowMapper bungalowMapper = new BungalowMapper(ctx);
                bungalow = bungalowMapper.Create(bungalow);

                ComponenteFatura componenteFatura = new ComponenteFatura
                {
                    Preço     = 85,
                    Fatura    = fatura,
                    Tipo      = "Alojamento",
                    Descrição = "muito bom"
                };

                var componenteMapper = new ComponenteFaturaMapper(ctx);
                componenteFatura = componenteMapper.Create(componenteFatura);

                Atividade atividade = new Atividade
                {
                    Parque        = p,
                    DataAtividade = new DateTime(2017, 1, 1),
                    Descrição     = "Canoagem",
                    Preço         = 90,
                    Lotaçao       = 12,
                    NomeAtividade = "Canoagem"
                };

                AtividadeMapper atividadeMapper = new AtividadeMapper(ctx);
                atividade = atividadeMapper.Create(atividade);

                var inscr = new InscreverHóspedeEmAtividade(ctx);
                inscr.Execute(hóspede.Nif, atividade.NomeAtividade, p.Nome);

                var pagamento = new PagamentoEstadaComFatura(ctx);
                pagamento.Execute(estada.Id, out int total);

                // atualizar valor final da fatura
                fatura.ValorFinal = total;
                fatura            = faturaMapper.Update(fatura);

                Assert.AreEqual(175, fatura.ValorFinal);

                var hospedeAtividadeMapper = new HóspedeAtividadeMapper(ctx);

                foreach (var ha in hospedeAtividadeMapper.ReadAll())
                {
                    hospedeAtividadeMapper.Delete(ha);
                }

                foreach (var b in bungalowMapper.ReadAll())
                {
                    bungalowMapper.Delete(b);
                }

                foreach (var c in componenteMapper.ReadAll())
                {
                    componenteMapper.Delete(c);
                }

                foreach (var f in faturaMapper.ReadAll())
                {
                    faturaMapper.Delete(f);
                }

                foreach (var s in atividadeMapper.ReadAll())
                {
                    atividadeMapper.Delete(s);
                }

                foreach (var e in estadaHospedeMapper.ReadAll())
                {
                    estadaHospedeMapper.Delete(e);
                }

                foreach (var hospede in hóspedeMapper.ReadAll())
                {
                    hóspedeMapper.Delete(hospede);
                }

                foreach (var e in estadaMapper.ReadAll())
                {
                    estadaMapper.Delete(estada);
                }

                foreach (var a in alojamentoMapper.ReadAll())
                {
                    alojamentoMapper.Delete(a);
                }

                foreach (var parque in parqueMap.ReadAll())
                {
                    parqueMap.Delete(parque);
                }
            }
        }