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); }
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()); }
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); }
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)); }
//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(); }
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); }
//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(); }
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)); }
// 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); }
public static Client LoadClient(SQLDBConnection myDB, string strDNI) { DataTable dTable = RUDI.Read(myDB, "Clients", "*", $"DNI LIKE '{strDNI}'"); return(HpVarious.ConvertDataTableToClient(dTable)); }