private CarrinhoViewModel AplicarDescontoIngresso(PromocaoViewModel promocaoViewModel, CarrinhoViewModel carrinho, String tipoIngresso) { var tickets = carrinho.Sessions.Tickets; double valorIngresso = 0; switch (tipoIngresso) { case "MEN": valorIngresso = tickets.Min(p => p.Price); break; case "MAI": valorIngresso = tickets.Max(p => p.Price); break; } var ticketADescontar = tickets.Where(t => t.Price == valorIngresso).FirstOrDefault(); ticketADescontar.Price = AplicarDescontoNoPreco(ticketADescontar.Price, promocaoViewModel.ValorDesconto); carrinho.TotalPrice = carrinho.Sessions.Tickets.Sum(t => t.Price); return(carrinho); }
public PromocaoViewModel GetPromocaoViewModelByPromocodeMOCK() { var promocaoViewModel = new PromocaoViewModel { Id = 1, DescricaoAplicarPromocao = "Desconto sobre maior ingresso", SiglaAplicarPromocao = "MAI", Nome = "Final de semana é dia de cinema!", Promocodes = new List <string>(), Restricoes = new List <Restricao>(), ValorDesconto = 12.50 }; promocaoViewModel.Promocodes.Add("YsnPvmhm"); promocaoViewModel.Promocodes.Add("AdPRtqzw"); promocaoViewModel.Promocodes.Add("MxNxhm3q"); var restricao = new Restricao() { Id = 1, Nome = "Apenas para as sessões de sábado e domingo", Sigla = "FDS", }; promocaoViewModel.Restricoes.Add(restricao); return(promocaoViewModel); }
private PromocaoViewModel ConverterPromocaoParaViewModel(Promocao promocao) { var promocaoViewModel = new PromocaoViewModel { Id = promocao.Id, DescricaoAplicarPromocao = promocao.DescricaoAplicarPromocao, SiglaAplicarPromocao = promocao.SiglaAplicarPromocao, Nome = promocao.Nome, Promocodes = promocao.Promocodes.Split(',').Select(p => p.Trim()).ToList(), Restricoes = RecuperaRestricoes(promocao.Restricoes), ValorDesconto = promocao.ValorDesconto }; return(promocaoViewModel); }
public CarrinhoViewModel AtualizarCarrinhoComPromocao(PromocaoViewModel promocaoViewModel, CarrinhoViewModel carrinho) { carrinho.TotalPrice = carrinho.Sessions.Tickets.Sum(t => t.Price); bool promocaoValida = AplicarRestricoesPromocao(carrinho, promocaoViewModel.Restricoes); if (promocaoValida) { switch (promocaoViewModel.SiglaAplicarPromocao) { case "MEN": return(AplicarDescontoIngresso(promocaoViewModel, carrinho, promocaoViewModel.SiglaAplicarPromocao)); case "MAI": return(AplicarDescontoIngresso(promocaoViewModel, carrinho, promocaoViewModel.SiglaAplicarPromocao)); case "TOT": carrinho.TotalPrice = AplicarDescontoNoPreco(carrinho.Sessions.Tickets.Sum(t => t.Price), promocaoViewModel.ValorDesconto); break; } } return(carrinho); }