public static void AlugarShow(UtilizadorComum utilizador, Movie4ALL movie4ALL) { MenuGeral.MostrarShows(utilizador.Id, movie4ALL.Shows); var show = MenuGeral.ConsultaShow(movie4ALL.Shows); if (show == null) { Console.WriteLine("Show inexistente"); return; } Aluguer aluguer = new Aluguer { ShowAlugado = show }; aluguer.Valor = ConsultaPrecario(movie4ALL.Precos, aluguer).PeriodoDias *ConsultaPrecario(movie4ALL.Precos, aluguer).Preco; aluguer.DataFim = DateTime.Now.AddDays(ConsultaPrecario(movie4ALL.Precos, aluguer).PeriodoDias); if (show.TipoShow == "serie") { //O valor do Aluguer é referente ao valor * período * num episodios aluguer.DataFim = DateTime.Now.AddDays(MenuGeral.NumEpisodios(show)); aluguer.Valor = aluguer.Valor * MenuGeral.NumEpisodios(show); } utilizador.Alugueres.Add(aluguer); Console.WriteLine($"O Alguer de {aluguer.ShowAlugado.Titulo} expira em {aluguer.DataFim}"); Console.WriteLine($"Tem um valor de {aluguer.Valor}"); aluguer.IdAluguer = utilizador.Alugueres.LastIndexOf(aluguer); //Id que é incrementado com o valor do indíce da Lista onde se encontra }
public static void MostraAlugueres(UtilizadorComum utilizador) { MenuGeral.ColorUser(utilizador.Id); Console.WriteLine("Histórico de Alugueres"); foreach (var a in utilizador.Alugueres) { Console.WriteLine($"ID: {a.IdAluguer} |Titulo: {a.ShowAlugado.Titulo} | Metodo de Pagamento: {a.MetodoPagamento} | Valor: {a.Valor} | Data de Aluguer: {a.Data} | Data de Fim: {a.DataFim} |"); } }
public static void HistoricoAvaliacao(UtilizadorComum utilizador) { MenuGeral.ColorUser(utilizador.Id); Console.WriteLine("Histórico de Avaliações"); foreach (var a in utilizador.ListadeAvaliacao) { Console.WriteLine($"NºEstrelas: {a.Stars} |Titulo: {a.ShowAvaliado.Titulo} | Data da 1ª Avaliacão: {a.DataCriacao} | Data da ultima Avaliação: {a.DataUpdate} | Descrição: {a.Descricao} |"); } }
public static void MenuUtiliz(UtilizadorComum utilizador, Movie4ALL movie4ALL) { MenuGeral.ColorUser(utilizador.Id); Console.WriteLine("Escolha uma opção:"); Console.WriteLine("1. Alugar Show"); Console.WriteLine("2. Avaliar Show"); Console.WriteLine("3. Gerir Informação de Cartão"); Console.WriteLine("4. Verificar Histórico de Alugueres"); Console.WriteLine("5. Verificar Histórico de Avaliações"); Console.WriteLine("6. Mostrar Shows"); Console.WriteLine("7. Sair"); Console.WriteLine(); string opcaoUtiliz = Console.ReadLine(); switch (opcaoUtiliz) { case "1": AlugarShow(utilizador, movie4ALL); break; case "2": Avaliar(utilizador, movie4ALL); break; case "3": GerirCartao(utilizador); break; case "4": MostraAlugueres(utilizador); break; case "5": HistoricoAvaliacao(utilizador); break; case "6": MenuGeral.MostrarShows(utilizador.Id, movie4ALL.Shows); break; case "7": return; } }
public static void GerirCartao(UtilizadorComum utilizador) { if (utilizador.CartaoCredito != null) { Console.WriteLine("Já existe cartão associado"); Console.WriteLine($"Nome: {utilizador.CartaoCredito.Nome}"); Console.WriteLine($"Número: {utilizador.CartaoCredito.Numero}"); return; } utilizador.CartaoCredito = new Cartao(); Console.WriteLine("Digite os dados do cartão seguidos de Enter: Nome, Número, Mês(num), Ano, CVC"); utilizador.CartaoCredito.Nome = Console.ReadLine(); utilizador.CartaoCredito.Numero = long.Parse(Console.ReadLine()); utilizador.CartaoCredito.Mes = MenuGeral.CheckNum(); utilizador.CartaoCredito.Ano = MenuGeral.CheckNum(); utilizador.CartaoCredito.CVC = MenuGeral.CheckNum(); Console.WriteLine("Cartão gravado"); }
private static void OpcaoUtiliz(string opcao, Movie4ALL movie4ALL) { Console.Clear(); Console.BackgroundColor = ConsoleColor.Red; Console.WriteLine("Bem Vindo ao Movie4All!"); Console.ResetColor(); Console.WriteLine(); switch (opcao) { case "1": string[] word; string user, user1; Console.WriteLine("Escolha um username"); do { user = Console.ReadLine(); Console.WriteLine("......"); Thread.Sleep(1500); if (movie4ALL.UtilizadorComums.Exists(u => u.Id.Contains(user.ToLower()))) { Console.WriteLine("Utilizador já existente, utilize outro username"); } } while (movie4ALL.UtilizadorComums.Exists(u => u.Id.Contains(user.ToLower()))); do { Console.WriteLine("Escreva agora nome, email, NIF e telemovel separados por vírgulas"); user1 = Console.ReadLine(); word = user1.Split(','); } while (word.Length != 4); var utilizador = new UtilizadorComum { Id = user, Nome = word[0], Email = word[1], NumFiscal = CheckNumString(word[2]), Telemovel = CheckNumString(word[3]) }; CriaUtilizador(utilizador, movie4ALL.UtilizadorComums); OpcaoUtiliz("2", movie4ALL); break; case "2": Console.WriteLine("Escreve o seu username"); string utilizadorId = Console.ReadLine(); string sair; if (movie4ALL.UtilizadorComums.Exists(u => u.Id.Contains(utilizadorId.ToLower()))) { do { var utilizadorProv = movie4ALL.UtilizadorComums.FirstOrDefault(e => e.Id == utilizadorId); MenuUtilizador.MenuUtiliz(utilizadorProv, movie4ALL); Console.WriteLine("Deseja Sair? Sim/Nao"); sair = Console.ReadLine(); Console.Clear(); } while (sair.ToLower() != "sim"); } else if (utilizadorId == "admin") { do { Menu.MenuAdmin.MenuAdministrador(movie4ALL); Console.WriteLine("Deseja Sair? Sim/Nao"); sair = Console.ReadLine(); Console.Clear(); } while (sair.ToLower() != "sim"); } else { Console.Clear(); Console.WriteLine("Utilizador Não existente"); IncializaMenu(movie4ALL); } break; default: Console.WriteLine("Opção Inválida, Adeus"); IncializaMenu(movie4ALL); break; } }
public static void CriaUtilizador(UtilizadorComum utilizador, List <UtilizadorComum> utilizadores) { utilizadores.Add(utilizador); }
// De acordo com o DER o utilizador pode avaliar qualquer show, independentemente de o ter alugado ou não. // Por falta de tempo e devido a ser um detalhe que não está claramente definido, assim ficou. public static void Avaliar(UtilizadorComum utilizador, Movie4ALL movie4ALL) { MenuGeral.MostrarShows(utilizador.Id, movie4ALL.Shows); var show = MenuGeral.ConsultaShow(movie4ALL.Shows); if (show == null) { Console.WriteLine("Show inexistente"); return; } var avaliacao = new Avaliacao { ShowAvaliado = show }; bool avalia1 = true; if (UpdateAvaliacao(show, utilizador.ListadeAvaliacao) != null) { avaliacao = utilizador.ListadeAvaliacao.FirstOrDefault(e => e.ShowAvaliado == show); Console.WriteLine("Já existe uma avaliação a este filme, vamos alterá-la? Sim/nao"); string novaAvaliacao = Console.ReadLine(); if (novaAvaliacao.ToLower() == "nao") { return; } if (novaAvaliacao.ToLower() == "sim") { do { Console.WriteLine($"Em quantas estrelas (0 a 5) avalia {show.Titulo}? "); avaliacao.Stars = MenuGeral.CheckNum(); if (avaliacao.Stars > 5 || avaliacao.Stars < 0) { Console.WriteLine("Avaliação fora dos parâmetros"); avalia1 = false; } } while (!avalia1); avaliacao.DataUpdate = DateTime.Now; Console.WriteLine($"Insira uma pequena descrição."); avaliacao.Descricao = Console.ReadLine(); return; } else { Console.WriteLine("Não percebi a sua opção, presumo que não queira alterar, vamos voltar ao Menu"); return; } } do { Console.WriteLine($"Em quantas estrelas (0 a 5) avalia {show.Titulo}? "); avaliacao.Stars = MenuGeral.CheckNum(); if (avaliacao.Stars > 5 || avaliacao.Stars < 0) { Console.WriteLine("Avaliação fora dos parâmetros"); avalia1 = false; } } while (!avalia1); avaliacao.DataCriacao = DateTime.Now; Console.WriteLine($"Insira uma pequena descrição."); avaliacao.Descricao = Console.ReadLine(); utilizador.ListadeAvaliacao.Add(avaliacao); }