/// <summary> /// Muestra el listado de todos los Companions incluidos en la Lista de Companions que hayan sido fabricados. /// Utiliza Generics. /// </summary> /// <typeparam name="T">Tipo de Companion. Puede ser Cook, Housekeeper, Manager o Companion (todos).</typeparam> /// <returns>Lista de Companions del tipo T.</returns> public static string MostrarListado <T>() { if (Factory.estado == true) { StringBuilder sb = new StringBuilder(); foreach (Companion comp in Factory.listaCompanions) { if (comp is T && comp.SelloFabricacion == true) { if (comp is Cook) { Cook aux = (Cook)comp; sb.AppendLine(aux.MostrarDatos()); } else if (comp is Housekeeper) { Housekeeper aux = (Housekeeper)comp; sb.AppendLine(aux.MostrarDatos()); } else { Manager aux = (Manager)comp; sb.AppendLine(aux.MostrarDatos()); } } } return(sb.ToString()); } return("Fábrica apagada."); }
/// <summary> /// Exporta a la base de datos los companions siempre y cuando ya hayan sido fabricados. /// </summary> /// <param name="listaComps">Lista de Companions a exportar.</param> /// <returns>Cantidad de Companions agregados a la base de datos.</returns> public static int ExportToDB(List <Companion> listaComps) { int filasAgregadas = 0; DBManagement.comando.Connection = DBManagement.conexion; DBManagement.comando.CommandType = CommandType.Text; DBManagement.comando.CommandText = "INSERT INTO Companions VALUES(@Nombre,@Tipo,@Tareas,@Utensilios,@NivelAcceso,@Fecha)"; foreach (Companion comp in listaComps) { DBManagement.comando.Parameters.Clear(); DBManagement.comando.Parameters.Add(new SqlParameter("@Nombre", comp.Nombre)); DBManagement.comando.Parameters.Add(new SqlParameter("@Tareas", comp.ListaTareas)); DBManagement.comando.Parameters.Add(new SqlParameter("@Fecha", DateTime.Now.ToString())); if (comp.SelloFabricacion) { if (comp is Cook) { Cook aux = (Cook)comp; DBManagement.comando.Parameters.Add(new SqlParameter("@Tipo", "Cook")); DBManagement.comando.Parameters.Add(new SqlParameter("@Utensilios", aux.ListaUtensilios)); DBManagement.comando.Parameters.Add(new SqlParameter("@NivelAcceso", "")); } else if (comp is Housekeeper) { Housekeeper aux = (Housekeeper)comp; DBManagement.comando.Parameters.Add(new SqlParameter("@Tipo", "Housekeeper")); DBManagement.comando.Parameters.Add(new SqlParameter("@Utensilios", "")); DBManagement.comando.Parameters.Add(new SqlParameter("@NivelAcceso", "")); } else { Manager aux = (Manager)comp; DBManagement.comando.Parameters.Add(new SqlParameter("@Tipo", "Manager")); DBManagement.comando.Parameters.Add(new SqlParameter("@NivelAcceso", aux.NivelDeAcceso)); DBManagement.comando.Parameters.Add(new SqlParameter("@Utensilios", "")); } DBManagement.conexion.Open(); filasAgregadas += DBManagement.comando.ExecuteNonQuery(); DBManagement.conexion.Close(); } } return(filasAgregadas); }