Exemplo n.º 1
0
        /// <summary>
        /// Despliega un formulario para ingresar un nuevo cliente a la cotizacion (y al sistema).
        /// Retorna un nuevo cliente. Si ocurre algun error al ingresar los datos, retorna nulo.
        /// </summary>
        /// <param name="sistema"></param>
        /// <returns></returns>
        private static Cliente FormularioNuevoCliente(ISistema sistema)
        {
            TipoCliente tipoCliente = TipoCliente.Otro;

            Console.WriteLine("\n>Anadir Cliente");

            Console.WriteLine("Ingrese el rut del cliente:");
            string rut = Console.ReadLine();

            //Comprobacion con la base de datos. Si existe el cliente con tal rut, usarlo.
            try
            {
                Cliente cliente = sistema.BuscarCliente(rut);
                Console.WriteLine("Utilizando Cliente preregistrado.");
                return(cliente);
            }
            catch (ModelException)
            {
                //No se encontro un cliente; Seguir.
            }

            Console.WriteLine("Ingrese el nombre del cliente:");
            string nombre = Console.ReadLine();

            Console.WriteLine("Ingrese el apellido paterno del cliente:");
            string apellidoP = Console.ReadLine();

            Console.WriteLine("Ingrese el apellido materno del cliente (Opcional):");
            string apellidoM = Console.ReadLine();

            Console.WriteLine("Ingrese el correo del cliente:");
            string correo = Console.ReadLine();

            Console.WriteLine("Pertenece el cliente a la unidad interna? [s/n]:");
            string interno = Console.ReadLine();

            if (interno != null && interno.ToLower().Equals("s"))
            {
                tipoCliente = TipoCliente.UnidadInterna;
            }

            Persona nuevaPersona = new Persona()
            {
                Rut     = rut,
                Nombre  = nombre,
                Paterno = apellidoP,
                Materno = apellidoM,
                Email   = correo
            };

            try
            {
                sistema.Anadir(nuevaPersona, tipoCliente);
                Console.WriteLine("Se ha anadido un nuevo Cliente.");

                return(sistema.BuscarCliente(nuevaPersona.Rut));
            }
            catch (ModelException e)
            {
                Console.WriteLine(e.Message);    //Solo mostrara el primer error que ocurra.
            }

            return(null);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Punto de entrada de la aplicacion.
        /// </summary>
        /// <param name="args"></param>
        /// <exception cref="ModelException"></exception>
        private static void Main(string[] args)
        {
            Console.WriteLine("Iniciando la aplicacion...");
            ISistema sistema = Startup.BuildSistema();

            //NOTA: Use estos usuarios de prueba:

            Usuario usuarioDirector = new Usuario()
            {
                Persona = new Persona()
                {
                    Rut     = "194460880",
                    Nombre  = "German",
                    Paterno = "Rojo",
                    Materno = "Arce",
                    Email   = "*****@*****.**"
                },
                Password = "******",
                Tipo     = TipoUsuario.Director
            };

            Usuario usuarioProductor = new Usuario()
            {
                Persona = new Persona()
                {
                    Rut     = "19691840K",
                    Nombre  = "Christian",
                    Paterno = "Farias",
                    Materno = "Aguila",
                    Email   = "*****@*****.**"
                },
                Password = "******",
                Tipo     = TipoUsuario.Productor
            };

            Usuario usuarioSupervisor = new Usuario()
            {
                Persona = new Persona()
                {
                    Rut     = "130144918",
                    Nombre  = "Diego",
                    Paterno = "Urrutia",
                    Materno = "Astorga",
                    Email   = "*****@*****.**"
                },
                Password = "******",
                Tipo     = TipoUsuario.Supervisor
            };


            try
            {
                sistema.Anadir(usuarioDirector);
                sistema.Anadir(usuarioProductor);
                sistema.Anadir(usuarioSupervisor);
            }
            catch (ModelException e)
            {
                Console.WriteLine(e.Message);
                return;
            }

            int intentos = 3;

            //Login: Si falla 3 veces en ingresar, el programa termina.
            while (intentos > 0)
            {
                Console.WriteLine("\n(Intentos: {0})", intentos);
                Console.WriteLine("Ingrese su rut o email: ");
                string rutEmail = Console.ReadLine();
                Console.WriteLine("Ingrese su contrasena: ");
                string password = Console.ReadLine();

                Usuario usuario = null;

                try
                {
                    usuario = sistema.Login(rutEmail, password);
                }
                catch (ModelException e)
                {
                    Console.WriteLine(e.Message);
                    intentos--;
                    continue;    //Vuelve al while.
                }

                intentos = 3;

                //Mostrar menu segun usuario:
                Console.WriteLine("\n--------------------------");
                Console.WriteLine("    P r e s U P A");
                Console.WriteLine("--------------------------");

                //Es necesario pasar al usuario por parametro.
                switch (usuario.Tipo)
                {
                case TipoUsuario.Director:
                    Consola.MenuDirector(sistema, usuario);
                    break;

                case TipoUsuario.Productor:
                    Consola.MenuProductor(sistema, usuario);
                    break;

                case TipoUsuario.Supervisor:
                    Consola.MenuSupervisor(sistema, usuario);
                    break;
                }
            }

            Console.WriteLine("\nPrograma terminado.");
        }
Exemplo n.º 3
0
        /// <summary>
        /// Despliega un formulario para ingresar una nueva cotizacion al sistema.
        /// </summary>
        /// <param name="sistema"></param>
        private static void FormularioNuevaCotizacion(ISistema sistema)
        {
            Console.WriteLine("\n>Anadir Cotizacion");

            Console.WriteLine("Ingrese el titulo de la cotizacion:");
            string titulo = Console.ReadLine();

            Console.WriteLine("Ingrese la descripcion de la cotizacion:");
            string descripcion = Console.ReadLine();

            //Obtener un nuevo cliente y anadirlo a la cotizacion.
            Cliente cliente = FormularioNuevoCliente(sistema);

            while (cliente == null)
            {
                Console.WriteLine("Hubo un error al ingresar el Cliente...");
                Console.WriteLine("[1] Intentar otra vez");
                Console.WriteLine("[Otro] Cancelar cotizacion");

                string input = Console.ReadLine();

                switch (input)
                {
                case "1":
                    cliente = FormularioNuevoCliente(sistema);
                    break;

                default:
                    return;        //Volver al menu anterior.
                }
            }

            //Crea la cotizacion con los datos obtenidos.
            Cotizacion nuevaCotizacion = new Cotizacion()
            {
                Titulo      = titulo,
                Descripcion = descripcion,
                Cliente     = cliente
            };

            Console.WriteLine(">>Anadir Servicios");

            //Obtener los servicios y anadirlos a la cotizacion.
            while (true)
            {
                string input = "...";

                Servicio nuevoServicio = FormularioNuevoServicio();

                //Intentar anadir el servicio a la cotizacion.
                try
                {
                    sistema.Anadir(nuevoServicio, nuevaCotizacion);

                    Console.WriteLine("Servicio anadido:\n");
                    Console.WriteLine(nuevoServicio.ToString());

                    Console.WriteLine("\n[1] Anadir nuevo servicio");
                    Console.WriteLine("[Otro] Terminar de anadir servicios");

                    input = Console.ReadLine();

                    if (input != null && input.Equals("1"))
                    {
                        //Repite el ciclo.
                        continue;
                    }
                    //Sale del while.
                    break;
                }
                catch (ModelException e)
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine("Hubo un error al ingresar el servicio...");
                    Console.WriteLine("[1] Intentar otra vez");
                    Console.WriteLine("[Otro] Cancelar cotizacion");

                    input = Console.ReadLine();

                    switch (input)
                    {
                    case "1":
                        continue;        //Repite el ciclo.

                    default:
                        return;        //Volver al menu anterior.
                    }
                }
            }



            //Crear cotizacion:
            try
            {
                sistema.Anadir(nuevaCotizacion); //Almacena la cotizacion creada en el formulario.
                Console.WriteLine("Se ha anadido una nueva cotizacion.");
            }
            catch (ModelException e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine("Cancelando cotizacion...");
            }
        }