private static async Task AddCommentsAsync() { Console.Clear(); Console.WriteLine("InstaPhoto" + "\nSubir Foto"); await ViewPhotos(); Console.WriteLine("\nIngrese ID de foto"); var photoId = ClientUtils.ReadUntilIsNotEmpty(Console.ReadLine()); Console.WriteLine("\nIngrese comentario"); var message = ClientUtils.ReadUntilIsNotEmpty(Console.ReadLine()); var comment = new Comment { Photo = new Photo() { Id = long.Parse(photoId) }, Message = message, }; var response = await ServerHandler.HandleCommentCreation(_client, comment); if (response.responseCommands == ProtocolConstants.ResponseCommands.Ok) { Console.WriteLine("\nComentario Agregado Correctamente"); } else { Console.WriteLine("\nDatos invalidos, revise y pruebe de nuevo"); } ConsoleValidations.ContinueHandler(); }
private static async Task MainMenu() { var options = new string[] { "Cargar Foto", "Listado de Usuarios", "Ver Comentarios", "Ver Fotos", "Agregar Comentarios", "Salir" }; while (_client.IsLoggedIn) { Console.Clear(); ConsoleValidations.ListOperations($"{"InstaPhoto"}\n\nMENÚ PRINCIPAL:", options, true); var option = ConsoleValidations.ReadUntilValid(prompt: "\nIngrese opción", pattern: $"^[1-{options.Length}]$", errorMsg: $"Ingrese un número entre 1 y {options.Length}"); await ExecuteItemMainMenu(option); } ConsoleValidations.ContinueHandler(); }
private static async Task LoginUser() { Console.Clear(); Console.WriteLine("InstaPhoto" + "\nLogin"); Console.WriteLine("\nIngrese email (<<q>> para cancelar) >>"); var email = ClientUtils.ReadUntilIsNotEmpty(Console.ReadLine()); Console.WriteLine("\nIngrese contrasenia (<<q>> para cancelar) >>"); var password = ClientUtils.ReadUntilIsNotEmpty(Console.ReadLine()); var user = new User { Email = email, Password = password }; var response = await ServerHandler.HandleLogin(_client, user); if (response.responseCommands == ProtocolConstants.ResponseCommands.Ok) { Console.WriteLine("\nBienvenido!"); _client.IsLoggedIn = true; await MainMenu(); } else { Console.WriteLine("\nDatos invalidos, revise y pruebe de nuevo"); ConsoleValidations.ContinueHandler(); } }
public static async Task Main(string[] args) { Console.Clear(); Console.Title = "InstaPhoto"; Console.WriteLine("InstaPhoto\n\nPresione una tecla para continuar...\n"); Console.ReadLine(); var clientIp = ConsoleValidations.PromptIPsAvailablesOnPC("InstaPhoto"); var ipEndPoint = new IPEndPoint(IPAddress.Parse(clientIp), 0); var client = new TcpClient(ipEndPoint); Console.WriteLine("\nIndique ip del serivdor:\n"); var serverIp = Console.ReadLine(); Console.WriteLine("\nIndique puerto del serivdor:\n"); var port = Console.ReadLine(); var serverIpEndPoint = new IPEndPoint(IPAddress.Parse(serverIp), int.Parse(port)); client.Connect(serverIpEndPoint); var stream = client.GetStream(); _client = new Client() { StreamCommunication = new StreamCommunication(stream) }; await EntryMenu(); }
public static async Task DeleteUser(Server server) { var clients = (await server.Service.GetUsersAsync()).ToList().Select(c => new User() { Name = c.Name, Email = c.Email, //LastConnection = c.LastConnection }); if (!clients.Any()) { Console.WriteLine("\nNo hay usuarios en el sistema"); return; } var options = clients.Select(g => g.ToString()).ToArray(); ConsoleValidations.ListOperations("\nClientes disponibles:", options, false);; var option = ConsoleValidations.ReadUntilValid(prompt: "\nIngrese número de cliente", pattern: $"^[1-9]|10$", errorMsg: $"Ingrese un número entre 1 y {options.Length}"); var clientToDelete = clients.ElementAt(int.Parse(option) - 1); var clientDto = new UserDto { Email = clientToDelete.Email }; await server.Service.RemoveUserAsync(clientDto); }
private static async Task ViewPhotos() { var response = await ServerHandler.HandleViewPhotos(_client); foreach (var photo in response) { Console.WriteLine(photo.ToString()); } ConsoleValidations.ContinueHandler(); }
private static async Task ListSelectedOption(FileServer.Server server, string title, string[] list) { ConsoleValidations.ListOperations($"{"ADMINISTRACIÓN DEL SERVIDOR"}\n\n{title}:", list, true); string option = ConsoleValidations.ReadUntilValid(prompt: "\nPresione <<q>> para volver al menú principal", pattern: $"^[q|Q]$", errorMsg: $"Opción no válida"); if (option.ToLower() == "q") { await Menu(server); } }
private static async Task EntryMenu() { while (true) { var options = new string[] { "Registrase", "Login", "Desconectarse" }; ConsoleValidations.ListOperations($"{"InstaPhoto"}\n\nMENÚ PRINCIPAL:", options, true); var option = ConsoleValidations.ReadUntilValid(prompt: "\nIngrese opción", pattern: $"^[1-{options.Length}]$", errorMsg: $"Ingrese un número entre 1 y {options.Length}"); await ExecuteItemEntryMenu(option); } }
private static async Task ViewUsers() { var response = await ServerHandler.HandleViewUsers(_client); if (response.Count == 0) { Console.WriteLine("No hay usuarios en el sistema"); } else { foreach (var user in response) { Console.WriteLine(user.ToString()); } } ConsoleValidations.ContinueHandler(); }
private static async Task ViewComments() { Console.WriteLine("\nIngrese ID de foto"); var photoId = ClientUtils.ReadUntilIsNotEmpty(Console.ReadLine()); var photo = new Photo() { Id = long.Parse(photoId) }; var response = await ServerHandler.HandleViewComments(_client, photo); foreach (var comment in response) { Console.WriteLine(comment.ToString()); } ConsoleValidations.ContinueHandler(); }
public static async Task ModifyUser(Server server) { var clients = (await server.Service.GetUsersAsync()).ToList().Select(c => new User() { Name = c.Name, Email = c.Email, //LastConnection = c.LastConnection }); if (!clients.Any()) { Console.WriteLine("\nNo hay usuarios en el sistema"); return; } string[] options = clients.Select(g => g.ToString()).ToArray(); ConsoleValidations.ListOperations("\nClientes disponibles:", options, false);; string option = ConsoleValidations.ReadUntilValid(prompt: "\nIngrese número de cliente", pattern: $"^[1-9]|10$", errorMsg: $"Ingrese un número entre 1 y {options.Length}"); var userToUpdate = clients.ElementAt(int.Parse(option) - 1); Console.WriteLine("\nIngrese el nuevo nombre del cliente (<<q>> para cancelar) >>"); string name = ServerUtils.ReadUntilIsNotEmpty(Console.ReadLine()); Console.WriteLine("\nIngrese el nuevo contraseia del cliente (<<q>> para cancelar) >>"); string password = ServerUtils.ReadUntilIsNotEmpty(Console.ReadLine()); userToUpdate.Name = name; userToUpdate.Password = password; var dto = new UserDto() { Name = userToUpdate.Name, Password = userToUpdate.Password, Email = userToUpdate.Email }; await server.Service.ModifyUserAsync(dto); }
private static async Task Menu(FileServer.Server server) { while (true) { string[] options = new string[] { "LISTAR CLIENTES CONECTADOS", "ADMINISTRAR CLIENTES", "APAGAR SERVIDOR" }; ConsoleValidations.ListOperations($"{"ADMINISTRACIÓN DEL SERVIDOR"}\n\nMENÚ PRINCIPAL:", options, true); var option = ConsoleValidations.ReadUntilValid(prompt: "\nIngrese opción", pattern: $"^[1-{options.Length}]$", errorMsg: $"Ingrese un número entre 1 y {options.Length}"); await ExecuteItemMenu(option, server); ConsoleValidations.ContinueHandler(); } }
private static async Task CrudClient(FileServer.Server server) { var menu_options = new [] { "Crear un cliente", "Borrar un cliente", "Modificar un cliente existente", "Volver" }; ConsoleValidations.ListOperations("\nMENU CLIENTE:", menu_options, false); string option = ConsoleValidations.ReadUntilValid(prompt: "\nIngrese opción", pattern: $"^[1-{menu_options.Length}]$", errorMsg: $"Ingrese un número entre 1 y {menu_options.Length}"); switch (option) { case "1": await AdminHandler.CreateUser(server); break; case "2": await AdminHandler.DeleteUser(server); break; case "3": await AdminHandler.ModifyUser(server); break; case "4": await Menu(server); break; default: throw new Exception($"Option: {option} is not a valid option."); } }
private static async Task UploadPhotoAsync() { Console.Clear(); Console.WriteLine("InstaPhoto" + "\nSubir Foto"); Console.WriteLine("\nIngrese ruta de la foto"); var filePath = ClientUtils.ReadUntilIsNotEmpty(Console.ReadLine()); var response = await ServerHandler.HandleImageUpload(_client, filePath); if (response.responseCommands == ProtocolConstants.ResponseCommands.Ok) { Console.WriteLine("\nImagen Agregada Correctamente"); } else { Console.WriteLine("\nDatos invalidos, revise y pruebe de nuevo"); } ConsoleValidations.ContinueHandler(); }