/* * 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 void UpdateTendaTest() { using (Context ctx = new Context(connectionString)) { Parque parque = new Parque(); parque.Nome = "Marechal Carmona"; parque.Morada = "Rua de Cascais"; parque.Estrelas = 4; parque.Email = "*****@*****.**"; ParqueMapper pm = new ParqueMapper(ctx); parque = pm.Create(parque); Alojamento alojamento = new Alojamento(); alojamento.Nome = "Primeiro Alojamento"; alojamento.Localizaçao = "Quinta da Marinha"; alojamento.Descrição = "T0 com duche"; alojamento.MaxPessoas = 5; alojamento.PreçoBase = 85; alojamento.Parque = parque; AlojamentoMapper am = new AlojamentoMapper(ctx); alojamento = am.Create(alojamento); Tenda tenda = new Tenda(); tenda.Area = 1234; tenda.Alojamento = alojamento; tenda.Tipo = "yurt"; TendaMapper tendaMapper = new TendaMapper(ctx); tenda = tendaMapper.Create(tenda); tenda.Area = 5678; tenda.Tipo = "safari"; tendaMapper.Update(tenda); Tenda tenda1 = tendaMapper.Read(tenda.Alojamento.Nome); Assert.AreEqual(tenda.Alojamento.Nome, tenda1.Alojamento.Nome); Assert.AreEqual(tenda.Tipo, tenda1.Tipo); foreach (var t in tendaMapper.ReadAll()) { tendaMapper.Delete(t); } foreach (var a in am.ReadAll()) { am.Delete(a); } foreach (var p in pm.ReadAll()) { pm.Delete(p); } } }
public void UpdateTendaTest() { using (Context ctx = new Context(connectionString)) { Parque parque = new Parque(); parque.Nome = "Marechal Carmona"; parque.Morada = "Rua de Cascais"; parque.Estrelas = 4; parque.Email = "*****@*****.**"; ParqueMapper pm = new ParqueMapper(ctx); parque = pm.Create(parque); Alojamento alojamento = new Alojamento(); alojamento.Nome = "Primeiro Alojamento"; alojamento.Localizaçao = "Quinta da Marinha"; alojamento.Descrição = "T0 com duche"; alojamento.MaxPessoas = 5; alojamento.PreçoBase = 85; alojamento.Parque = parque; AlojamentoMapper am = new AlojamentoMapper(ctx); alojamento = am.Create(alojamento); Bungalow bungalow = new Bungalow(); bungalow.Tipologia = "T0"; bungalow.Alojamento = alojamento; BungalowMapper bungalowMapper = new BungalowMapper(ctx); bungalow = bungalowMapper.Create(bungalow); bungalow.Tipologia = "T1"; bungalowMapper.Update(bungalow); Bungalow bungalow1 = bungalowMapper.Read(bungalow.Alojamento.Nome); Assert.AreEqual(bungalow.Alojamento.Nome, bungalow1.Alojamento.Nome); Assert.AreEqual(bungalow.Tipologia, bungalow1.Tipologia); foreach (var b in bungalowMapper.ReadAll()) { bungalowMapper.Delete(b); } foreach (var a in am.ReadAll()) { am.Delete(a); } foreach (var p in pm.ReadAll()) { pm.Delete(p); } } }
public static void RemoverAlojamento(Context context) { var alojamentoMapper = new AlojamentoMapper(context); Console.WriteLine("Insira o nome do alojamento que pretende remover :"); var alojamento = alojamentoMapper.Read(Console.ReadLine()); while (alojamento == null) { Console.WriteLine("Por favor tente novamente, o alojamento indicado não Existe. Ou pressione [Enter] para sair"); var input = Console.ReadLine(); if (!input.Any()) { return; } alojamento = alojamentoMapper.Read(input); } alojamentoMapper.Delete(alojamento); }
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); } } }
public void ApagarParqueEAssociaçoesTest() { using (var ctx = new Context(_connectionString)) { EstadaMapper estadaMapper = new EstadaMapper(ctx); ParqueMapper parqueMap = new ParqueMapper(ctx); AlojamentoMapper alojamentoMapper = new AlojamentoMapper(ctx); var estadaAlojamentoMapper = new EstadaAlojamentoMapper(ctx); try { var estada = new Estada { DataInicio = new DateTime(2007, 3, 1), DataFim = new DateTime(2017, 3, 1), Id = 25, NifHospede = 0 }; estada = estadaMapper.Create(estada); /* * CREATE PARQUE */ Parque p = new Parque(); p.Nome = "brasil"; p.Email = "*****@*****.**"; p.Morada = "Rio de Janeiro, Rua Junqueiro 367"; p.Estrelas = 5; p = parqueMap.Create(p); /* * Alojamento */ Alojamento c = new Alojamento { PreçoBase = 50, Nome = "OI", Descrição = "sem descricao", Localizaçao = "Brasil", MaxPessoas = 20, Parque = p }; c = alojamentoMapper.Create(c); EstadaAlojamento estadaAlojamento = new EstadaAlojamento() { Estada = estada, Alojamento = c, Descrição = "OLA", PreçoBase = 1234 }; estadaAlojamento = estadaAlojamentoMapper.Create(estadaAlojamento); var apagrParque = new ApagarParqueEAssociaçoes(ctx); apagrParque.Execute(p); var parqueExists = parqueMap.ReadAll().Any(parque => parque.Nome.Equals(p.Nome)); Assert.AreEqual(false, parqueExists); var alojamentoExists = alojamentoMapper.ReadAll().Any(a => a.Nome.Equals(c.Nome)); Assert.AreEqual(false, alojamentoExists); var estadaExists = estadaMapper.ReadAll().Any(e => e.Id == estada.Id); Assert.AreEqual(false, estadaExists); } catch (Exception exception) { Console.WriteLine(exception); foreach (var e in estadaAlojamentoMapper.ReadAll()) { estadaAlojamentoMapper.Delete(e); } foreach (var e in estadaMapper.ReadAll()) { estadaMapper.Delete(e); } foreach (var alojamento in alojamentoMapper.ReadAll()) { alojamentoMapper.Delete(alojamento); } foreach (var parque in parqueMap.ReadAll()) { parqueMap.Delete(parque); } throw; } } }
public void InsertTest() { 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); /* * 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); /* * Alojamento */ Alojamento c = new Alojamento(); c.PreçoBase = 50; c.Nome = "OI"; c.Descrição = "sem descricao"; c.Localizaçao = "Brasil"; c.MaxPessoas = 20; c.Parque = p; AlojamentoMapper alojamentoMapper = new AlojamentoMapper(ctx); c = alojamentoMapper.Create(c); EstadaAlojamento estadaAlojamento = new EstadaAlojamento() { Estada = estada, Alojamento = c, Descrição = "OLA", PreçoBase = 1234 }; var estadaAlojamentoMapper = new EstadaAlojamentoMapper(ctx); estadaAlojamento = estadaAlojamentoMapper.Create(estadaAlojamento); var ee = estadaAlojamentoMapper.Read(new KeyValuePair <string, int>(estadaAlojamento.Alojamento.Nome, estadaAlojamento.Estada.Id)); Assert.IsNotNull(ee); Assert.AreEqual(ee.Alojamento.Nome, estadaAlojamento.Alojamento.Nome); Assert.AreEqual(ee.Estada.Id, estadaAlojamento.Estada.Id); foreach (var e in estadaAlojamentoMapper.ReadAll()) { estadaAlojamentoMapper.Delete(e); } foreach (var e in estadaMapper.ReadAll()) { estadaMapper.Delete(estada); } foreach (var alojamento in alojamentoMapper.ReadAll()) { alojamentoMapper.Delete(alojamento); } foreach (var parque in parqueMap.ReadAll()) { parqueMap.Delete(parque); } } }