コード例 #1
0
        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();
        }
コード例 #2
0
        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);
        }