private void RefreshPrograms(Models.Core.Module package = null) { var session = Common.Session.DatabaseConnection; installedPrograms = session.CreateCriteria(typeof(Models.Core.Program)) .Add(Expression.Eq("Type", "F")) .Add(Expression.Eq("Package", package)) .List <Models.Core.Program>(); program.DataSource = null; program.DataSource = installedPrograms; program.DisplayMember = "Description"; program.ValueMember = "Form"; session.Close(); }
private static void InstallProgramDefinition() { BusinessLayer.General.Logging.Log("Updating program table in database", BusinessLayer.General.Logging.LogLevel.Info); string data; Models.Core.Module packObj = null; Stream pgmFile = Assembly.GetExecutingAssembly().GetManifestResourceStream("FamiHub.UI.Programs.txt"); using (StreamReader reader = new StreamReader(pgmFile)) { while (reader.Peek() >= 0) { data = reader.ReadLine(); if (!string.IsNullOrEmpty(data)) { BusinessLayer.General.Logging.Log(". Processing line: " + data.ToString(), BusinessLayer.General.Logging.LogLevel.Debug); if (data.ToString().Substring(0, 2) != "''") { if (data.ToString().Substring(0, 1) == "*" && data.ToString().Substring(data.ToString().Length - 1, 1) == "*") { string[] packArray = data.Split(new char[] { '\\' }); string package = packArray[0].Trim('*'); BusinessLayer.General.Logging.Log(".. Processing line for module: '" + package + "'", BusinessLayer.General.Logging.LogLevel.Debug); if (!string.IsNullOrEmpty(package?.Trim())) { string packageDescr = ""; try { packageDescr = packArray[1].Trim('*'); } catch { BusinessLayer.General.Logging.Log("... Cannot determine module description for '" + package + "'", BusinessLayer.General.Logging.LogLevel.Warning); } if (packageDescr.Trim() == "") { packageDescr = package; } Models.Core.Module pack = Crud.GetById <Models.Core.Module, string>(package); if (pack == null) { BusinessLayer.General.Logging.Log("... Module doesn't exist, creating new module '" + package + "'", BusinessLayer.General.Logging.LogLevel.Debug); pack = new Models.Core.Module(); pack.Package = package; } BusinessLayer.General.Logging.Log("... Saving module '" + package + "'", BusinessLayer.General.Logging.LogLevel.Info); pack.Description = packageDescr; Crud.Put(pack); packObj = pack; } else { BusinessLayer.General.Logging.Log(".. Found corrupt module definition, line skipped", BusinessLayer.General.Logging.LogLevel.Warning); package = null; packObj = null; } } else { BusinessLayer.General.Logging.Log(".. Processing line for program: " + data.ToString(), BusinessLayer.General.Logging.LogLevel.Debug); string[] array = data.Split(new char[] { '\\' }); string desc = array[0]; string type = array[1]; string code = array[2]; string form = array[3]; Models.Core.Program prog = Crud.GetById <Models.Core.Program, string>(form); if (prog != null) { BusinessLayer.General.Logging.Log("... Saving program '" + form + "'", BusinessLayer.General.Logging.LogLevel.Debug); prog.Code = code; prog.Description = desc; prog.Form = form; prog.Type = type; prog.Package = packObj; } else { BusinessLayer.General.Logging.Log("... Program doesn't exist, creating new program '" + form + "'", BusinessLayer.General.Logging.LogLevel.Debug); prog = new Models.Core.Program() { Code = code, Description = desc, Form = form, Type = type, Package = packObj }; } Crud.Put(prog); } } else { BusinessLayer.General.Logging.Log(".. Skipping line because this is a comment", BusinessLayer.General.Logging.LogLevel.Debug); } } } } BusinessLayer.General.Logging.Log("Updated program table in database", BusinessLayer.General.Logging.LogLevel.Info); }