public List <dependencies> getAllDependencies(int configurationItemId) { configurationItem ci = databaseConnection.configurationItem.FirstOrDefault(citem => citem.configurationItemId == configurationItemId); if (ci != null) { return(ci.dependencies.ToList()); } return(null); }
public void addConfigurationItem(configurationItem configurationItem) { databaseConnection.configurationItem.Add(configurationItem); if (configurationItem.dependenciesList != null && configurationItem.dependenciesList.Any()) { foreach (var dependency in configurationItem.dependenciesList) { dependencies dependencies = new dependencies(); dependencies.dependeeId = configurationItem.configurationItemId; dependencies.dependsOnId = dependency; databaseConnection.dependencies.Add(dependencies); } } databaseConnection.SaveChanges(); }
private static void modifyConfigurationItem() { Console.Clear(); configurationItemDAO configurationItemDAO = new configurationItemDAO(); bool notDone = true; while (notDone) { listAllConfigurationItems(); Console.WriteLine("Favor introducir el ID del elemento de configuración a modificar"); Console.WriteLine("Para volver atrás introduzca q"); string configurationItemID = Console.ReadLine(); int ID; if (configurationItemID == "q") { notDone = false; continue; } if (!int.TryParse(configurationItemID, out ID)) { Console.WriteLine("Selección invalida. Favor seleccionar un número correspondiente al ID de un elemento de configuración previamente registrado"); } else { if (!configurationItemDAO.existsConfigurationItemWithID(ID)) { Console.WriteLine("Este ID no corresponde a un Elemento de configuración previamente registrado, favor intentar nuevamente"); } else { bool modified = false; configurationItem configurationItem = configurationItemDAO.getConfigurationItem(ID); while (!modified) { Console.Clear(); Console.WriteLine(String.Format("Elemento Seleccionado: {0}", configurationItem.nombre)); Console.WriteLine("1 - Actualizar"); Console.WriteLine("2 - Deprecar"); Console.WriteLine("Favor introducir a continuación el número de la opción deseada seguido de Enter"); Console.WriteLine("Para volver atrás introduzca q"); Console.WriteLine(); string selectedOption = Console.ReadLine(); if (selectedOption == "q") { modified = true; continue; } if (isValidOption(selectedOption, 2)) { switch (selectedOption) { case "1": bool actualised = false; while (!actualised) { Console.Clear(); Console.WriteLine("Introduzca la nueva versión:"); Console.WriteLine("Para volver atrás introduzca q"); string newVersion = Console.ReadLine(); if (newVersion == "q") { actualised = true; continue; } if (!configurationItemDAO.isValidVersion(newVersion)) { Console.WriteLine("Esta versión no cumple con el formato requerido: "); Console.WriteLine("x.x.x"); continue; } else { if (configurationItemDAO.isMajorVersionChange(configurationItem.version, newVersion)) { Console.WriteLine(string.Format("Elementro de configuración {0} no puede ser actualizado a versión {1} \ndebido a que es un cambio de versión mayor y los siguientes elementos de configuración dependen de el:", configurationItem.nombre, newVersion)); Console.WriteLine(); Console.WriteLine(); foreach (dependencies ci in configurationItem.dependees.ToList()) { Console.WriteLine(ci.dependee.toString()); } Console.WriteLine(); } else { configurationItem.version = newVersion; configurationItemDAO.save(); Console.WriteLine("Elemento de configuración actualizado exitosamente \n\n"); } actualised = true; modified = true; notDone = false; } } break; case "2": if (configurationItem.dependees.Any(ci => !(ci.dependee.deprecated ?? false))) { Console.WriteLine(string.Format("Elementro de configuración {0} no puede ser deprecado \ndebido a que los siguientes elementos de configuración dependen de el:", configurationItem.nombre)); Console.WriteLine(); Console.WriteLine(); foreach (dependencies ci in configurationItem.dependees.ToList()) { Console.WriteLine(ci.dependee.toString()); } Console.WriteLine(); } else { configurationItemDAO.deprecate(configurationItem.configurationItemId); Console.WriteLine("Elemento de configuración deprecado exitosamente.\n\n"); } modified = true; notDone = false; break; } } else { Console.WriteLine("Opción inválida. Intente de nuevo."); } } } } } }
static void addConfigurationItem() { configurationItemDAO configurationItemDAO = new configurationItemDAO(); string nombre = ""; string version = ""; string descripcion = ""; bool complete = false; bool validInput = false; while (!complete) { while (!validInput) { Console.Clear(); Console.WriteLine("Introduzca el nombre del elemento de configuración: "); Console.WriteLine("Para volver atrás introduzca q"); nombre = Console.ReadLine(); if (string.IsNullOrEmpty(nombre)) { Console.WriteLine("Debe introducir un nombre."); } else { if (nombre == "q") { complete = true; validInput = true; continue; } if (configurationItemDAO.existsConfigurationItemWithSameName(nombre)) { Console.WriteLine("Este nombre ya está registrado."); } else { validInput = true; } } } validInput = false; while (!validInput && !complete) { Console.WriteLine("Introduzca la versión: "); Console.WriteLine("Para volver atrás introduzca q"); version = Console.ReadLine(); if (string.IsNullOrEmpty(version)) { Console.WriteLine("Debe introducir una versión."); } else { if (version == "q") { complete = true; validInput = true; continue; } if (!configurationItemDAO.isValidVersion(version)) { Console.WriteLine("Esta versión no cumple con el formato requerido: "); Console.WriteLine("x.x.x"); } else { validInput = true; } } } validInput = false; while (!validInput && !complete) { Console.WriteLine("¿Desea agregar una descripción? y/n"); Console.WriteLine("Para volver atrás introduzca q"); string input = Console.ReadLine(); if (input == "q") { validInput = true; complete = true; continue; } if (input.ToLower() != "y" && input.ToLower() != "n") { Console.WriteLine("Favor introducir una opción válida : y/n"); } else { switch (input.ToLower()) { case "y": Console.WriteLine("Favor introducir una descripción"); descripcion = Console.ReadLine(); break; case "n": break; } validInput = true; } } configurationItem configurationItem = new configurationItem(); configurationItem.nombre = nombre; configurationItem.version = version; configurationItem.descripcion = descripcion; List <configurationItem> itemsActuales = configurationItemDAO.getConfigurationItems(); if (itemsActuales != null && itemsActuales.Count() > 0 && itemsActuales.Any(ci => !(ci.deprecated ?? false))) { validInput = false; while (!validInput && !complete) { Console.WriteLine("¿Desea agregar una dependencia? y/n"); Console.WriteLine("Para volver atrás introduzca q"); string input = Console.ReadLine(); if (input == "q") { validInput = true; complete = true; continue; } if (input.ToLower() != "y" && input.ToLower() != "n") { Console.WriteLine("Favor introducir una opción válida : y/n"); } else { switch (input.ToLower()) { case "y": List <int> dependenciesList = getDependencieslist(); configurationItem.dependenciesList = dependenciesList; break; case "n": break; } validInput = true; } } } if (!complete) { configurationItemDAO.addConfigurationItem(configurationItem); Console.WriteLine("Se ha creado un elemento de configuracion exitosamente. Presione Enter para continuar."); Console.ReadLine(); Console.Clear(); complete = true; } } }