/// <summary> /// Удалить приложение /// </summary> /// <param name="appToRemove"></param> /// <returns></returns> public static string RemoveApp(ControlledApp appToRemove) { try { for (int i = 0; i < Apps.Count; i++) { if (appToRemove == Apps[i]) { Apps.RemoveAt(i); break; } } switch (StorageType) { case StorageTypes.Database: RemoveDataFormDb(appToRemove); break; case StorageTypes.XML: SaveToXml(); break; } return("OK"); } catch (Exception ex) { return(ex.Message); } }
public static List <ControlledFile> GetFilesList(string root, ControlledApp parent) { try { List <ControlledFile> result = new List <ControlledFile>(); DirectoryInfo di = new DirectoryInfo(root); foreach (var f in di.EnumerateFiles().ToList()) { if (!StorageService.ForbiddenExt.Contains(f.Extension)) { result.Add(new ControlledFile() { Parent = parent, Path = f.FullName.Replace(parent.WorkingReleasePath + System.IO.Path.DirectorySeparatorChar, "") }); } } foreach (var d in di.EnumerateDirectories().ToList()) { var temp = GetFilesList(string.Format("{0}{1}{2}", root, System.IO.Path.DirectorySeparatorChar, d.Name), parent); if (temp != null) { result.AddRange(temp); } } return(result); } catch (Exception) { return(null); } }
/// <summary> /// Импортировать данные /// </summary> /// <param name="path"></param> /// <returns></returns> public static string ImportData(string path) { try { Apps.Clear(); if (File.Exists(path)) { XDocument xdoc = XDocument.Load(path); var counter = 0; foreach (XElement app in xdoc.Element("Applications").Elements("App")) { XElement name = app.Element("Name"); XElement workFolder = app.Element("WorkFolderPath"); XElement releaseFolder = app.Element("ReleaseFolderPath"); XElement reestrFolder = app.Element("ReestrFolderPath"); ControlledApp tApp = ControlledApp.AddApp( name.Value.ToString(), workFolder.Value == null ? "" : workFolder.Value.ToString(), releaseFolder == null ? "" : releaseFolder.Value.ToString(), reestrFolder == null ? "" : reestrFolder.Value.ToString(), counter ); counter++; Apps.Add(tApp); } } return("OK"); } catch (Exception ex) { return(ex.Message); } }
/// <summary> /// Удалить данные из таблицы /// </summary> /// <param name="app"></param> /// <returns></returns> static string RemoveDataFormDb(ControlledApp app) { try { switch (ConnectionType) { case ConnectionTypes.OleDb: OleDbConnection oleDbConnection = new OleDbConnection(); oleDbConnection.ConnectionString = string.Format("Provider={0}; Data Source={1};User ID={2};Password={3};Connection Timeout=3; ", Provider, Server, User, Password); oleDbConnection.Open(); OleDbCommand oleDbCommand = oleDbConnection.CreateCommand(); oleDbCommand.CommandText = string.Format("DELETE FROM {0} WHERE ID = {1}", Table, app.Id); oleDbCommand.ExecuteNonQuery(); oleDbConnection.Close(); break; case ConnectionTypes.OracleMySql: MySqlConnection mySqlConnection = new MySqlConnection(); mySqlConnection.ConnectionString = string.Format("host={0};port={1};User Id={2};database={3};password={4};character set=utf8", Server, Port, User, Database, Password); mySqlConnection.Open(); MySqlCommand mySqlCommand = mySqlConnection.CreateCommand(); mySqlCommand.CommandText = string.Format("DELETE FROM {0} WHERE ID = {1}", Table, app.Id); mySqlCommand.ExecuteNonQuery(); mySqlConnection.Close(); break; case ConnectionTypes.Sql: SqlConnection sqlConnection = new SqlConnection(); if (Password != "") { sqlConnection.ConnectionString = string.Format("Data Source={0};User ={1};Initial Catalog={2};Password={3}; Integrated Security = false;", Server, User, Database, Password); } else { sqlConnection.ConnectionString = string.Format("Data Source={0};Initial Catalog={1}; Integrated Security = True;", Server, Database); } sqlConnection.Open(); SqlCommand sqlCommand = sqlConnection.CreateCommand(); sqlCommand.CommandText = string.Format("DELETE FROM {0} WHERE ID = {1}", Table, app.Id); sqlCommand.ExecuteNonQuery(); sqlConnection.Close(); break; } return("OK"); } catch (Exception ex) { return(ex.Message); } }
/// <summary> /// Обновить запись в БД /// </summary> /// <param name="app"></param> /// <returns></returns> static string UpdateDataInDb(ControlledApp app) { try { switch (ConnectionType) { case ConnectionTypes.OleDb: OleDbConnection oleDbConnection = new OleDbConnection(); oleDbConnection.ConnectionString = string.Format("Provider={0}; Data Source={1};User ID={2};Password={3};Connection Timeout=3; ", Provider, Server, User, Password); oleDbConnection.Open(); OleDbCommand oleDbCommand = oleDbConnection.CreateCommand(); oleDbCommand.CommandText = string.Format("UPDATE {0} SET Name='{1}', WorkFolder='{2}', ReleaseFolder='{3}', ReestrFolder='{4}' WHERE ID = {5}", Table, app.Name, app.WorkingReleasePath, app.ReleasePath, app.ReleasePath, app.Id); oleDbCommand.ExecuteNonQuery(); oleDbConnection.Close(); break; case ConnectionTypes.OracleMySql: MySqlConnection mySqlConnection = new MySqlConnection(); mySqlConnection.ConnectionString = string.Format("host={0};port={1};User Id={2};database={3};password={4};character set=utf8", Server, Port, User, Database, Password); mySqlConnection.Open(); MySqlCommand mySqlCommand = mySqlConnection.CreateCommand(); mySqlCommand.CommandText = string.Format("UPDATE {0} SET Name='{1}', WorkFolder='{2}', ReleaseFolder='{3}', ReestrFolder='{4}' WHERE ID = {5}", Table, app.Name, app.WorkingReleasePath.Replace(Path.DirectorySeparatorChar, '+'), app.ReleasePath.Replace(Path.DirectorySeparatorChar, '+'), app.ReleasePath.Replace(Path.DirectorySeparatorChar, '+'), app.Id); mySqlCommand.ExecuteNonQuery(); mySqlConnection.Close(); break; case ConnectionTypes.Sql: SqlConnection sqlConnection = new SqlConnection(); if (Password != "") { sqlConnection.ConnectionString = string.Format("Data Source={0};User ={1};Initial Catalog={2};Password={3}; Integrated Security = false;", Server, User, Database, Password); } else { sqlConnection.ConnectionString = string.Format("Data Source={0};Initial Catalog={1}; Integrated Security = True;", Server, Database); } sqlConnection.Open(); SqlCommand sqlCommand = sqlConnection.CreateCommand(); sqlCommand.CommandText = string.Format("UPDATE {0} SET Name='{1}', WorkFolder='{2}', ReleaseFolder='{3}', ReestrFolder='{4}' WHERE ID = {5}", Table, app.Name, app.WorkingReleasePath, app.ReleasePath, app.ReleasePath, app.Id); sqlCommand.ExecuteNonQuery(); sqlConnection.Close(); break; } return("OK"); } catch (Exception ex) { return(ex.Message); } }
/// <summary> /// Добавлению подлежат все файлы в указанном каталоге и в директориях первого уровня вложенности /// </summary> /// <param name="name"></param> /// <param name="workFolderPath"></param> /// <param name="relFolderPath"></param> /// <returns></returns> public static ControlledApp AddApp(string name, string workFolderPath, string relFolderPath, string reestrPath, int id) { try { ControlledApp result = new ControlledApp(); result.Name = name; result.ReleasePath = relFolderPath; result.WorkingReleasePath = workFolderPath; result.ReestrPath = reestrPath; result.Id = id; var dir = new DirectoryInfo(workFolderPath); result.Files = new ObservableCollection <ControlledFile>(ControlledFile.GetFilesList(workFolderPath, result)); return(result); } catch (Exception ex) { return(null); } }
/// <summary> /// Получить данные из базы данных /// </summary> /// <returns></returns> static string GetDataFromDb() { try { Apps.Clear(); switch (ConnectionType) { case ConnectionTypes.OleDb: OleDbConnection oleDbConnection = new OleDbConnection(); oleDbConnection.ConnectionString = string.Format("Provider={0}; Data Source={1};User ID={2};Password={3};Connection Timeout=3; ", Provider, Server, User, Password); oleDbConnection.Open(); OleDbCommand oleDbCommand = oleDbConnection.CreateCommand(); oleDbCommand.CommandText = string.Format("SELECT Name, WorkFolder, ReleaseFolder, ReestrFolder, ID From {0}", Table); OleDbDataReader oleDbDataReader = oleDbCommand.ExecuteReader(); while (oleDbDataReader.Read()) { Apps.Add(ControlledApp.AddApp(oleDbDataReader["Name"].ToString(), oleDbDataReader["WorkFolder"].ToString(), oleDbDataReader["ReleaseFolder"].ToString(), oleDbDataReader["ReestrFolder"].ToString(), Convert.ToInt32(oleDbDataReader["ID"].ToString()))); } oleDbConnection.Close(); break; case ConnectionTypes.OracleMySql: MySqlConnection mySqlConnection = new MySqlConnection(); mySqlConnection.ConnectionString = string.Format("host={0};port={1};User Id={2};database={3};password={4};character set=utf8", Server, Port, User, Database, Password); mySqlConnection.Open(); MySqlCommand mySqlCommand = mySqlConnection.CreateCommand(); mySqlCommand.CommandText = string.Format("SELECT Name, WorkFolder, ReleaseFolder, ReestrFolder, ID From {0}", Table); MySqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader(); while (mySqlDataReader.Read()) { Apps.Add(ControlledApp.AddApp(mySqlDataReader["Name"].ToString(), mySqlDataReader["WorkFolder"].ToString().Replace('+', Path.DirectorySeparatorChar), mySqlDataReader["ReleaseFolder"].ToString().Replace('+', Path.DirectorySeparatorChar), mySqlDataReader["ReestrFolder"].ToString().Replace('+', Path.DirectorySeparatorChar), Convert.ToInt32(mySqlDataReader["ID"].ToString()))); } mySqlConnection.Close(); break; case ConnectionTypes.Sql: SqlConnection sqlConnection = new SqlConnection(); if (Password != "") { sqlConnection.ConnectionString = string.Format("Data Source={0};User ={1};Initial Catalog={2};Password={3}; Integrated Security = false;", Server, User, Database, Password); } else { sqlConnection.ConnectionString = string.Format("Data Source={0};Initial Catalog={1}; Integrated Security = True;", Server, Database); } sqlConnection.Open(); SqlCommand sqlCommand = sqlConnection.CreateCommand(); sqlCommand.CommandText = string.Format("SELECT Name, WorkFolder, ReleaseFolder, ReestrFolder, ID From {0}", Table); SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); while (sqlDataReader.Read()) { Apps.Add(ControlledApp.AddApp(sqlDataReader["Name"].ToString(), sqlDataReader["WorkFolder"].ToString(), sqlDataReader["ReleaseFolder"].ToString(), sqlDataReader["ReestrFolder"].ToString(), Convert.ToInt32(sqlDataReader["ID"].ToString()))); } sqlConnection.Close(); break; } foreach (var app in Apps) { app.ExistInDb = true; } return("OK"); } catch (Exception ex) { return(ex.Message); } }