Пример #1
0
        private static void BeginInteractive(Server server)
        {
            new Thread(() =>
            {
                Thread.Sleep(300);
                while (true)
                {
                    Console.Clear();
                    Router.ListPossibleOperations();

                    var option = ConsolePrompts.ReadUntilValid(
                        prompt: "Codigo de operacion",
                        pattern: "^[0-9]+|(exit)$",
                        errorMsg: "Favor de ingresar un numero o exit");

                    if (option == "exit")
                    {
                        Process.GetCurrentProcess().Kill();
                    }

                    Router.RouteOperation(option, new object[] { server });
                    Console.WriteLine("Presiona enter para continuar");
                    Console.ReadKey();
                }
            }).Start();
        }
Пример #2
0
        static void Main(string[] args)
        {
            Console.Clear();
            Console.WriteLine("Bienvenido a Gestion 3.0\nPresiona enter para conectarte...");
            Console.ReadKey();

            var client = new Client(GetValueFromConfig <string>("ip"), GetValueFromConfig <int>("port"));

            client.Connect(() =>
            {
                try
                {
                    AuthenticateAgainstServer(client);
                    var subscription = client.ListenToNotifications(Console.WriteLine);

                    while (true)
                    {
                        Console.Clear();
                        Router.ListPossibleOperations();

                        var option = ConsolePrompts.ReadUntilValid(
                            prompt: "Codigo de operacion",
                            pattern: "^[0-9]+|(exit)$",
                            errorMsg: "Favor de ingresar un numero o exit");

                        if (option == "exit")
                        {
                            break;
                        }

                        try
                        {
                            Router.RouteOperation(option, new object[] { client });
                        }
                        catch (OperationFailedException)
                        {
                            Console.WriteLine("Ha ocurrido un error, la operacion se ha cancelado");
                        }

                        Console.WriteLine("Presiona enter para continuar");
                        Console.ReadKey();
                    }

                    subscription.Unsubscribe();
                }
                catch (InvalidAuthException)
                {
                    Console.WriteLine("No pareces estar registrado, contacta a un admin!");
                    Console.WriteLine("Adios!");
                    Thread.Sleep(2000);
                }
                finally
                {
                    client.Dispose();
                }
            });
        }
Пример #3
0
        public void RegisterSubject()
        {
            Console.Clear();
            Console.WriteLine("Registro de curso");
            Console.WriteLine("-----------------");
            Console.WriteLine("");

            var name = ConsolePrompts.ReadUntilValid(
                prompt: "Nombre",
                pattern: "^[a-zA-Z0-9 ]+$",
                errorMsg: "El nombre de la materia puede tener letras de la A a la Z, no importan mayusculas, numeros o espacios. No se aceptan otros caracteres");

            var subject = new Subject()
            {
                Name = name
            };

            SubjectSrv.RegisterSubject(subject);
            Console.WriteLine("");
        }
Пример #4
0
        private static void AuthenticateAgainstServer(Client c)
        {
            try
            {
                var userId = ConsolePrompts.ReadUntilValid(
                    prompt: "Numero de estudiante",
                    pattern: "^[0-9]{6}$",
                    errorMsg: "Por favor, ingrese un numero de seis cifras. Complete con ceros a la izquierda de ser necesario.");

                c.Send("01", userId);
                var firstName = c.Receive();

                Console.WriteLine($"Hola {firstName}!");
                Thread.Sleep(1000);

                c.Authenticate(userId);
            }
            catch (OperationFailedException)
            {
                throw new InvalidAuthException();
            }
        }
Пример #5
0
        public void SignupStudent()
        {
            Console.Clear();
            Console.WriteLine("Registro de estudiante");
            Console.WriteLine("----------------------");
            Console.WriteLine("");

            var id = ConsolePrompts.ReadUntilValid(
                prompt: "Numero de estudiante",
                pattern: "^[0-9]{6}$",
                errorMsg: "Un numero de estudiante tiene solo seis numeros");
            var firstName = ConsolePrompts.ReadUntilValid(
                prompt: "Primer nombre",
                pattern: "^[a-zA-Z]+$",
                errorMsg: "Un nombre son letras de la A a la Z, no importan mayusculas. No se aceptan espacios ni ningun otro caracter");
            var lastName = ConsolePrompts.ReadUntilValid(
                prompt: "Primer apellido",
                pattern: "^[a-zA-Z]+$",
                errorMsg: "Un apellido son letras de la A a la Z, no importan mayusculas. No se aceptan espacios ni ningun otro caracter");

            var student = new Student()
            {
                Id        = id,
                FirstName = firstName,
                LastName  = lastName
            };

            Console.WriteLine("");

            try
            {
                StudentSrv.SignupStudent(student);
            }
            catch (DuplicateEntityException)
            {
                Console.WriteLine("Un estudiante con ese numero ya existe, cancelando la operacion...");
            }
        }