Beispiel #1
0
        public static bool DeleteMovie(SQLDBConnection myDB, Client clientForRemoveMovie, int ID_Movie)
        {
            Console.WriteLine($"\nPROCESANDO DEVOLUCIÓN DE PELICULA\n");
            HpVarious.ShowProgressBar(10, 100);
            //var table = new ConsoleTable("ID", "Title", "Synopsis");

            if (CanMovieBeRemove(myDB, ID_Movie)) //Si existe la peli y si No esta disponible, es que esta alquilada y puede ser removida
            {
                if (RUDI.Delete(myDB, "Rented", $"ID_Movie = {ID_Movie}") == 1)
                { //UPDATE campo State of This Movie
                    if (RUDI.Update(myDB, "Movies", "State=1", $"ID_Movie={ID_Movie}") == 1)
                    {
                        DataTable dTable = RUDI.Read(myDB, "Rented", "ID_Rented", $"ID_Movie={ID_Movie} AND ID_Client={clientForRemoveMovie.ID_Client}");
                        Console.WriteLine($"\nLa pelicula bajo el ID: {ID_Movie} ha sido removida con exito, ahora se encuentra disponible", Color.Blue);
                        Menu.WriteContinue();
                        return(true);
                    }
                }
                return(false);
            }
            else
            {
                Console.WriteLine("Error. No existe la pelicula o no ha sido alquilada bajo su usuario", Color.Red);
            }
            Menu.WriteContinue();
            return(false);
        }
Beispiel #2
0
        public static int PrintMainMenu(string strLogInOut, Client myActiveClient)
        {
            ColorAlternatorFactory alternatorFactory = new ColorAlternatorFactory();
            ColorAlternator        alternator        = alternatorFactory.GetAlternator(1, Color.Aqua, Color.Aquamarine);
            string strOp;

            Console.Clear();
            Console.ResetColor();
            HpVarious.WriteArt(APP_NAME);
            if (myActiveClient.Name != null)
            {
                Console.WriteLine($"{myActiveClient.Name} {myActiveClient.LastName} ({(DateTime.Today.Year - myActiveClient.Birthdate.Year).ToString()} años), Bienvenido...\n", Color.AliceBlue);
            }
            Console.WriteLineAlternating("\t(1) MOSTRAR CATALOGO", alternator);
            Console.WriteLineAlternating("\t(2) ALQUILAR/DEVOLVER PELICULA", alternator);
            Console.WriteLineAlternating("\t(3) MIS ALQUILERES", alternator);
            Console.WriteLineAlternating($"\t(4) {strLogInOut}", alternator);
            Console.WriteLineAlternating("\t(5) SALIR", alternator);
            do
            {
                Console.Write("\nOpcion: ", Color.CadetBlue);
                Console.ResetColor();
                strOp = HpVarious.ReadNumber("12345", 1);
            } while (strOp == "");

            Console.ResetColor();
            return(Convert.ToInt32(strOp));//return Convert.ToInt32(Console.ReadLine());
        }
Beispiel #3
0
        public static bool RentMovie(SQLDBConnection myDB, Client cWillRent, int ID_Movie, DateTime c_In, DateTime c_Out)
        {
            Console.WriteLine($"\nPROCESANDO ALQUILER DE PELICULA DISPONIBLE\n");
            HpVarious.ShowProgressBar(10, 100);
            //var table = new ConsoleTable("ID", "Title", "Synopsis");

            if (CanCLientRentTheMovie(myDB, ID_Movie, cWillRent))                                                                                                                                  //Si existe la peli y si esta disponible
            {
                if (RUDI.Insert(myDB, "Rented", "ID_Client, ID_Movie, C_In, C_Out", $"{cWillRent.ID_Client}, {ID_Movie}, '{c_In.ToString("MM/dd/yyyy")}', '{c_Out.ToString("MM/dd/yyyy")}'") == 1) //Es porque actualizó
                {                                                                                                                                                                                  //UPDATE campo State of This Movie
                    if (RUDI.Update(myDB, "Movies", "State=0", $"ID_Movie={ID_Movie}") == 1)
                    {
                        DataTable dTable = RUDI.Read(myDB, "Rented", "ID_Rented", $"ID_Movie={ID_Movie} AND ID_Client={cWillRent.ID_Client}");
                        Console.WriteLine($"\nEl alquiler se ha procesado con éxito, bajo el ID: {dTable.Rows[0].Field<int>(0)}", Color.Blue);
                        Menu.WriteContinue();
                        return(true);
                    }
                }
                return(false);
            }
            else
            {
                Console.WriteLine("Error. Pelicula no Disponible o No tiene la edad suficiente para alquilar la pelicula", Color.DarkRed);
                Console.ResetColor();
            }
            Menu.WriteContinue();
            return(false);
        }
Beispiel #4
0
        public static int GetOpNumberFromUser(string strText, string strAllowedNumbers, int qtDigitsAllowed)
        {
            string strOp;

            do
            {
                Console.Write($"\n{strText}: ");
                strOp = HpVarious.ReadNumber(strAllowedNumbers, qtDigitsAllowed);
            } while (strOp == "" || Convert.ToInt32(strOp) <= 0);

            return(Convert.ToInt32(strOp));
        }
Beispiel #5
0
        //Si includeStatus = 1 se construye la query con el status = 1, las pelis disponibles
        //includeStatus = 0 se construye la query con el status = 0, las pelis NO disponibles
        //includeStatus = 2 se construye la query sin considerar status, las pelis disponibles y No disponibles
        public static void ShowMoviesInTableRentedByClient(SQLDBConnection myDB, Client cToCompare)
        {
            DataTable dTable;

            Console.ResetColor();
            Console.WriteLine($"\nMOSTRANDO TUS PELICULAS ALQUILADAS\n");
            HpVarious.ShowProgressBar(10, 100);

            var table = new ConsoleTable("ID", "Title", "Fecha Alquilada", "Fecha Devolucion", "Tiempo de Entrega");

            // SELECT M.Title FROM Clients C, Rented R, Movies M WHERE C.ID_Client = 1 AND R.ID_Client = 1 AND M.ID_Movie = R.ID_Movie
            dTable = RUDI.Read(myDB, "Clients C, Rented R, Movies M", $"R.ID_Movie, M.Title, R.C_In, R.C_Out", $"C.ID_Client = {cToCompare.ID_Client} AND R.ID_Client = {cToCompare.ID_Client} AND M.ID_Movie = R.ID_Movie");
            dTable.Columns.Add("Caducado", typeof(String));
            if (dTable != null && dTable.Rows.Count > 0)
            {
                foreach (DataRow dataRow in dTable.Rows)
                {
                    string[] strInfoToPrint = new string[5];
                    int      i = 0;
                    foreach (var item in dataRow.ItemArray)
                    {
                        if (i < 2)
                        {
                            strInfoToPrint[i++] = item.ToString();
                        }
                        else if (i == 4)
                        {
                            if (Convert.ToDateTime(strInfoToPrint[3]) < DateTime.Today)
                            {
                                strInfoToPrint[i++] = "Caducado";
                            }
                            else
                            {
                                strInfoToPrint[i++] = "En Plazo";
                            }
                        }
                        else
                        {
                            strInfoToPrint[i++] = item.ToString().Substring(0, 10);;
                        }
                    }
                    table.AddRow(strInfoToPrint);
                }
            }
            Console.ResetColor();
            table.Write();
        }
Beispiel #6
0
        public static string[] PrintLogInMenu(SQLDBConnection myDB)
        {
            ColorAlternatorFactory alternatorFactory = new ColorAlternatorFactory();
            ColorAlternator        alternator        = alternatorFactory.GetAlternator(1, Color.Aqua, Color.Aquamarine);

            string[] userAndPass = new string[3];
            bool     exist;

            Console.Clear();
            //Console.WriteLine("SISTEMA RESERVA DE HOTEL BBKBOOTCAMP 2020 (6ta Edición)\n");
            HpVarious.WriteArt(APP_NAME);
            Console.WriteAlternating("Bienvenido, deberá contar con un usuario válido para acceder a las opciones del aplicativo\n\n", alternator);
            do
            {
                Console.WriteAlternating("Nombre Usuario (DNI): ", alternator);
                userAndPass[0] = Console.ReadLine();
                exist          = HpClients.ClientExist(myDB, userAndPass[0]);
                if (!exist)
                {
                    Console.WriteLine("ERROR. Usuario no existe. Indique un usuario válido!!!\n", Color.Red);
                }
            } while (!exist);

            do
            {
                Console.WriteAlternating("Contraseña: ", alternator);
                userAndPass[1] = HpVarious.ReadPassWord();
                exist          = HpClients.ClientPasswordExist(myDB, userAndPass);
                if (!exist)
                {
                    Console.WriteLine("\t\tERROR. Password Incorrecto. Introduzca nuevamente la contraseña", Color.Red);
                }
                else
                {
                    userAndPass[2] = "true";
                }
            } while (!exist);

            return(userAndPass);
        }
Beispiel #7
0
        //Si includeStatus = 1 se construye la query con el status = 1, las pelis disponibles
        //includeStatus = 0 se construye la query con el status = 0, las pelis NO disponibles
        //includeStatus = 2 se construye la query sin considerar status, las pelis disponibles y No disponibles
        public static void ShowMoviesInTableAccordingAge(SQLDBConnection myDB, Client cToCompare, int includeStatus = 2)
        {
            DataTable dTable;

            Console.WriteLine($"\nMOSTRANDO CATALOGO DISPONIBLE\n");
            HpVarious.ShowProgressBar(5, 100);

            var table = new ConsoleTable("ID", "Title", "Synopsis");

            if (includeStatus == 2)
            {
                dTable = RUDI.Read(myDB, "Movies", $"ID_Movie, Title, Synopsis", $"RecommendedAge <= {HpVarious.GetAges(cToCompare.Birthdate)}");
            }

            else if (includeStatus == 1)
            {
                dTable = RUDI.Read(myDB, "Movies", $"ID_Movie, Title, Synopsis", $"State = 1 AND RecommendedAge <= {HpVarious.GetAges(cToCompare.Birthdate)}");
            }
            else
            {
                dTable = RUDI.Read(myDB, "Movies", $"ID_Movie, Title, Synopsis", $"State = 0 AND RecommendedAge <= {HpVarious.GetAges(cToCompare.Birthdate)}");
            }

            if (dTable != null && dTable.Rows.Count > 0)
            {
                foreach (DataRow dataRow in dTable.Rows)
                {
                    string[] strInfoToPrint = new string[3];
                    int      i = 0;
                    foreach (var item in dataRow.ItemArray)
                    {
                        strInfoToPrint[i++] = item.ToString();
                    }
                    table.AddRow(strInfoToPrint);
                }
            }
            Console.ResetColor();
            table.Write();
        }
Beispiel #8
0
        public static int PrintMenuOp2()
        {
            ColorAlternatorFactory alternatorFactory = new ColorAlternatorFactory();
            ColorAlternator        alternator        = alternatorFactory.GetAlternator(1, Color.Aqua, Color.Aquamarine);
            string strOp;

            Console.Clear();
            Console.ResetColor();
            HpVarious.WriteArt(APP_NAME);
            WriteArea("AREA ALQUILAR\n");
            Console.WriteLineAlternating("\t(1) MOSTRAR PELICULAS DISPONIBLES PERMITIDAS", alternator);
            Console.WriteLineAlternating("\t(2) ALQUILAR PELICULA", alternator);
            Console.WriteLineAlternating("\t(3) DEVOLUCION PELICULA", alternator);
            Console.WriteLineAlternating("\t(4) VOLVER", alternator);
            do
            {
                Console.Write("\nOpcion: ", Color.CadetBlue);
                Console.ResetColor();
                strOp = HpVarious.ReadNumber("1234", 1);
            } while (strOp == "");
            Console.ResetColor();
            return(Convert.ToInt32(strOp));
        }
Beispiel #9
0
        // Si la pelicula existe, esta disponible y el cliente tiene la edad suficiente devolverá true
        public static bool CanCLientRentTheMovie(SQLDBConnection myDB, int ID_Movie, Client cWillRent)
        {
            DataTable dTable;

            if (MovieExist(myDB, ID_Movie))
            {
                dTable = RUDI.Read(myDB, "Movies", "ID_Movie", $"ID_Movie = {ID_Movie} AND State = 1 AND RecommendedAge <= {HpVarious.GetAges(cWillRent.Birthdate)}");  //SELECT ClientID FROM Clients WHERE DNI = strDNI
                if (dTable != null && dTable.Rows.Count > 0)
                {
                    return(true);
                }
            }
            return(false);
        }
Beispiel #10
0
        public static Client LoadClient(SQLDBConnection myDB, string strDNI)
        {
            DataTable dTable = RUDI.Read(myDB, "Clients", "*", $"DNI LIKE '{strDNI}'");

            return(HpVarious.ConvertDataTableToClient(dTable));
        }