public static List <string> CalculaMelhorPreco(List <Orcamento> orcamentos) { List <string> _dadosMelhorPreco = new List <string>(); double melhorCusto = orcamentos[0].Custo; Petshop petshopMelhorPreco = orcamentos[0].PetShop; //Analisando cada preço de Petshop passado e seta o menor valor foreach (Orcamento orcamento in orcamentos) { if (orcamento.Custo < melhorCusto) { melhorCusto = orcamento.Custo; petshopMelhorPreco = orcamento.PetShop; } } //Analisa se o menor valor encontrado se repetiu mais de uma vez entre os custos if (orcamentos.Count(x => x.Custo == melhorCusto) > 1) { _dadosMelhorPreco = Desempate(melhorCusto, orcamentos); } else { _dadosMelhorPreco.Add(petshopMelhorPreco.Nome); _dadosMelhorPreco.Add(melhorCusto.ToString("F2")); } return(_dadosMelhorPreco); }
//Caso haja empate entre os custos, é chamada a função de desempate private static List <string> Desempate(double melhorCusto, List <Orcamento> orcamentos) { List <string> _dadosMelhorPreco = new List <string>(); Petshop petshopMelhorPreco = orcamentos[0].PetShop; double menorDistancia = maiorDistancia; //Percorre todo o vetor de objetos Petshop foreach (Orcamento orcamento in orcamentos) { //Analisa se o custo do Petshop é igual ao menor custo encontrado if (orcamento.Custo == melhorCusto) { //Analisa a distância entre os Petshops e retorna o mais próximo if (orcamento.PetShop.Distancia < menorDistancia) { menorDistancia = orcamento.PetShop.Distancia; petshopMelhorPreco = orcamento.PetShop; } } } //Adiciona os dados do Petshop mais próximo à lista de informações do //Petshop com as melhores condições _dadosMelhorPreco.Add(petshopMelhorPreco.Nome); _dadosMelhorPreco.Add(melhorCusto.ToString("F2")); return(_dadosMelhorPreco); }
public ActionResult Get(string dataDoBanho, int caesPequenos, int caesGrandes) { if (string.IsNullOrEmpty(dataDoBanho)) { return(new JsonResult(new { Response = "Favor informar o dia do banho e a quantidade de caes pequenos e grandes " })); } var data = Convert.ToDateTime(dataDoBanho); var vaiRex = new VaiRex(); var meuCaninoFeliz = new MeuCaninoFeliz(); var chowChawgas = new ChowChawgas(); // Calcula o valor total do banho vaiRex.CalcularValorBanho(data, caesPequenos, caesGrandes); meuCaninoFeliz.CalcularValorBanho(data, caesPequenos, caesGrandes); chowChawgas.CalcularValorBanho(data, caesPequenos, caesGrandes); Petshop melhorPetshop = Petshop.ComparaValores(vaiRex, meuCaninoFeliz, chowChawgas); return(new JsonResult(new { nome = melhorPetshop.nome, valorTotal = melhorPetshop.valorTotal, distanciaEmKm = melhorPetshop.distanciaEmQuilometros })); }
public void VerificaValorBanhoFimDeSemanaTest() { var meuCaninoFeliz = new MeuCaninoFeliz(); var vaiRex = new VaiRex(); var chowChawgas = new ChowChawgas(); var dataFimDeSemana = new DateTime(2020, 07, 18); var quantCaesPequenos = 2; var quantCaesGrandes = 1; // Action // Calcula o valor total dos banhos em cada petshop meuCaninoFeliz.CalcularValorBanho(dataFimDeSemana, quantCaesPequenos, quantCaesGrandes); vaiRex.CalcularValorBanho(dataFimDeSemana, quantCaesPequenos, quantCaesGrandes); chowChawgas.CalcularValorBanho(dataFimDeSemana, quantCaesPequenos, quantCaesGrandes); // Verifica qual é o melhor petshop var melhorPetshop = Petshop.ComparaValores(meuCaninoFeliz, vaiRex, chowChawgas); // Assert Assert.AreEqual(96, meuCaninoFeliz.valorTotal); Assert.AreEqual(95, vaiRex.valorTotal); Assert.AreEqual(105, chowChawgas.valorTotal); Assert.AreEqual(melhorPetshop, vaiRex); }
public Solucao() { _petshops = new List <Petshop>(); Petshop mcFeliz = new Petshop { Banhos = new List <Banho>(MontaListaBanho(40.00, (40.00 * 1.2), 20.00, (20.00 * 1.2))), Distancia = 2, Nome = "Meu Canino Feliz" }; _petshops.Add(mcFeliz); Petshop vRex = new Petshop { Banhos = new List <Banho>(MontaListaBanho(50.00, 55.00, 15.00, 20.00)), Distancia = 1.7, Nome = "Vai Rex" }; _petshops.Add(vRex); Petshop cChawgas = new Petshop { Banhos = new List <Banho>(MontaListaBanho(45.00, 45.00, 30.00, 30.00)), Distancia = 0.8, Nome = "ChowChawgas" }; _petshops.Add(cChawgas); }
public void EditarPetshopTeste() { var psService = new PetshopService(); var psEditar = psService.ListarPetshops().ElementAt(0); var psEditada = new Petshop("PetshopEditada", 10, 10, 20, 20, 0.7); var editou = psService.EditarPetshop(psEditar, psEditada); Assert.True(editou); Assert.Contains(psEditada, psService.ListarPetshops()); }
public void CalcularPrecoBanhoTeste_DiaSemanaSucesso() { var psService = new PetshopService(); var ps = new Petshop("Petshop de teste", 10, 20, 15, 30, 1.5); DateTime data = DateTime.Parse("2019-03-06"); int caesPequenos = 3; int caesGrandes = 5; var resultado = psService.CalcularPrecoBanho(ps, data, caesPequenos, caesGrandes); Assert.Equal(resultado, 10 * 3 + 20 * 5); }
public void VerificaFinalDeSemanaTest() { var petshop = new Petshop(); var dataSemana = new DateTime(2020, 07, 16); var dataFimDeSemana = new DateTime(2020, 07, 18); // Action var resultadoSemana = petshop.VerificaFinalDeSemana(dataSemana); var resultadoFimDeSemana = petshop.VerificaFinalDeSemana(dataFimDeSemana); // Assert Assert.IsTrue(resultadoFimDeSemana); Assert.IsFalse(resultadoSemana); }
public void Resolve_IntoRegistered_Singleton() { var container = Container.Create(); var food = new CatFood(); var petshop = new Petshop(); container.Register <IPetFood>(Scope.Singleton, food); container.Register(Scope.Singleton, petshop); container.InjectIntoRegistered(); var cached = container.GetCached <Petshop>(); Assert.AreEqual(food, cached.Food); }
public void InserirPetshopTeste() { var psService = new PetshopService(); var psAdicionar = new Petshop("PSTeste", 10, 15, 20, 30, 2.0); psService.InserirPetshop(psAdicionar); var psAdicionada = psService.BuscarPetshop(psAdicionar.Nome); Assert.Equal(psAdicionar.Nome, psAdicionada.Nome); Assert.Equal(psAdicionar.PrecoDiaUtilPequeno, psAdicionada.PrecoDiaUtilPequeno); Assert.Equal(psAdicionar.PrecoDiaUtilGrande, psAdicionada.PrecoDiaUtilGrande); Assert.Equal(psAdicionar.PrecoFimDeSemanaPequeno, psAdicionada.PrecoFimDeSemanaPequeno); Assert.Equal(psAdicionar.PrecoFimDeSemanaGrande, psAdicionada.PrecoFimDeSemanaGrande); Assert.Equal(psAdicionar.Distancia, psAdicionada.Distancia); }
public void CompararDistanciaTeste_Sucesso() { var psService = new PetshopService(); var ps1 = new Petshop("PS1", 10, 20, 15, 30, 1.2); var ps2 = new Petshop("PS2", 10, 20, 15, 30, 1.1); var listaPetshops = new List <Petshop> { ps1, ps2 }; var resultado = psService.CompararDistancia(listaPetshops); Assert.Equal(ps2.Distancia, resultado.Distancia); }
public IActionResult Add_finish(string Name, string Breed, string type) { Pet new_pet = new Pet(); switch (type) { case "Dog": new_pet = new Dog(Name, Breed); break; case "Cat": new_pet = new Cat(Name, Breed); break; } Petshop.AddPet(new_pet); return(View("Add_finish", new_pet)); }
public void Resolve_IntoRegistered_Transient() { var container = Container.Create(); var food = new CatFood(); var petshopOne = new Petshop(); var petshopTwo = new Petshop(); container.Register <IPetFood>(Scope.Singleton, food); container.Register(Scope.Transient, petshopOne); container.Register(Scope.Transient, petshopTwo); container.InjectIntoRegistered(); var cached = container.GetCachedMultiple <Petshop>(); CollectionAssert.AllItemsAreNotNull(cached.Select(item => item.Food)); CollectionAssert.AllItemsAreInstancesOfType(cached.Select(item => item.Food), typeof(IPetFood)); }
static void Main(string[] args) { Console.WriteLine("Hello World!"); Cat Cadife = new Cat("Cadife", 'F', "Calico"); Cadife.printGreetings(); Petshop.AddCat(Cadife); Console.WriteLine("Let there be snakes!"); Mamba mamba = new Mamba(); CornSnake cornSnake = new CornSnake(); Console.WriteLine(Snake.Poisonous); //True Console.WriteLine(Mamba.Poisonous); //True Console.WriteLine(CornSnake.Poisonous); //False Console.WriteLine(mamba.greeting); //"Hello from Animal!" Console.WriteLine(cornSnake.greeting); //"Hello from Animal!" mamba.Length = 150; //The length of a snake cannot exceed 100! mamba.Length = 30.2768f; Console.WriteLine(mamba.Length); //30.28 IShape triangle = new Triangle(1, 2); Console.WriteLine(ShapeOperations.DoubleAndRoundArea(triangle)); //2 Customer annaCustomer = new ("Anna", "Karenina"); Customer annaCustomerCopy = new ("Anna", "Karenina"); Console.WriteLine(annaCustomer == annaCustomerCopy); //True Console.WriteLine(annaCustomer); //Customer { FirstName = Anna, LastName = Karenina } Customer annaChanged = annaCustomer with { FirstName = "Anneta" }; Console.WriteLine(annaCustomer == annaChanged); //False BusinessCustomer annaBusinessCustomer = new("Anna", "Karenina", "Perfumes Corp"); Console.WriteLine(annaCustomer == annaBusinessCustomer); //False because annaCustomer does not include the BusinessName field } }
public static void Main() { Dog sharo = new Dog("Sharo", ""); Cat catya = new Cat("Katya", "I said Miauu Miau!"); Dog rex = new Dog("Rex", "I said Bauuu Bauu Bauuu!"); Petshop.AddPet(sharo); Petshop.AddPet(catya); Petshop.AddPet(rex); //Console.WriteLine(sharo.Introduce()); //Console.WriteLine(catya.Introduce()); //Console.WriteLine(rex.Introduce()); try { Console.WriteLine(Petshop.IntorduceAll()); } catch { } }
public static IQueryable<Petshop.Data.Entities.Product> ByCategory(this IQueryable<Petshop.Data.Entities.Product> queryable, Petshop.Data.Entities.Category category) { return queryable.ByCategory(ComparisonOperator.Equals, category); }
public static IQueryable<Petshop.Data.Entities.Cart> ByProfile(this IQueryable<Petshop.Data.Entities.Cart> queryable, ComparisonOperator comparisonOperator, Petshop.Data.Entities.Profile profile) { switch(comparisonOperator) { case ComparisonOperator.Equals: return queryable.Where(c => c.Profile == profile); case ComparisonOperator.NotEquals: return queryable.Where(c => c.Profile != profile); default: throw new ArgumentException("Parameter 'comparisonOperator' must be ComparisonOperator.Equals or ComparisonOperator.NotEquals to support Association type.", "comparisonOperator"); } }
public static IQueryable<Petshop.Data.Entities.Cart> ByProfile(this IQueryable<Petshop.Data.Entities.Cart> queryable, Petshop.Data.Entities.Profile profile) { return queryable.ByProfile(ComparisonOperator.Equals, profile); }
public static IQueryable<Petshop.Data.Entities.Item> BySupplier(this IQueryable<Petshop.Data.Entities.Item> queryable, ComparisonOperator comparisonOperator, Petshop.Data.Entities.Supplier supplier) { switch(comparisonOperator) { case ComparisonOperator.Equals: return queryable.Where(i => i.Supplier == supplier); case ComparisonOperator.NotEquals: return queryable.Where(i => i.Supplier != supplier); default: throw new ArgumentException("Parameter 'comparisonOperator' must be ComparisonOperator.Equals or ComparisonOperator.NotEquals to support Association type.", "comparisonOperator"); } }
public static IQueryable<Petshop.Data.Entities.Item> BySupplier(this IQueryable<Petshop.Data.Entities.Item> queryable, Petshop.Data.Entities.Supplier supplier) { return queryable.BySupplier(ComparisonOperator.Equals, supplier); }
public static IQueryable<Petshop.Data.Entities.Item> ByProduct(this IQueryable<Petshop.Data.Entities.Item> queryable, Petshop.Data.Entities.Product product) { return queryable.ByProduct(ComparisonOperator.Equals, product); }
public static IQueryable<Petshop.Data.Entities.LineItem> ByOrder(this IQueryable<Petshop.Data.Entities.LineItem> queryable, Petshop.Data.Entities.Order order) { return queryable.ByOrder(ComparisonOperator.Equals, order); }
public static IQueryable<Petshop.Data.Entities.Product> ByCategory(this IQueryable<Petshop.Data.Entities.Product> queryable, ComparisonOperator comparisonOperator, Petshop.Data.Entities.Category category) { switch(comparisonOperator) { case ComparisonOperator.Equals: return queryable.Where(p => p.Category == category); case ComparisonOperator.NotEquals: return queryable.Where(p => p.Category != category); default: throw new ArgumentException("Parameter 'comparisonOperator' must be ComparisonOperator.Equals or ComparisonOperator.NotEquals to support Association type.", "comparisonOperator"); } }