/* * 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); }
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); } } }
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); } } }
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); } } }
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); } } }
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); } } }