コード例 #1
0
 static FileModule GetFileModule(string fileName)
 {
     try
     {
         var module = new FileModule();
         module.FileName = fileName;
         if (fileName.StartsWith("ibas_4_modules_published_") && fileName.Contains("BizSys."))
         {
             module.IsShell    = false;
             module.ModuleName = fileName.Substring(fileName.LastIndexOf("BizSys.") + 7).Replace(".zip", "");
             var dateString = fileName.Substring(25, 15);
             module.FileDate = DateTime.ParseExact(dateString, "yyyyMMdd_HHmmss", null);
         }
         else if (fileName.StartsWith("ibas_4_shell_published_"))
         {
             module.IsShell    = true;
             module.ModuleName = "shell";
             var dateString = fileName.Substring(23, 15);
             module.FileDate = DateTime.ParseExact(dateString, "yyyyMMdd_HHmmss", null);
         }
         else
         {
             throw new Exception("命名不符合规范");
         }
         return(module);
     }
     catch (Exception)
     {
         return(null);
     }
 }
コード例 #2
0
        public void GetLocalInfo(string folderPath)
        {
            try
            {
                if (!Directory.Exists(folderPath))
                {
                    return;
                }
                var list = FileModule.GetFileModules(folderPath);
                if (list == null)
                {
                    return;
                }
                var modulesGroup = list.GroupBy(c => new { c.IsShell, c.ModuleName });
                if (modulesGroup == null)
                {
                    return;
                }
                foreach (var group in modulesGroup)
                {
                    var ibas_Moudule = this.FirstOrDefault(c => (c.ModuleName == group.Key.ModuleName && c.Type != emModuleType.shell && !group.Key.IsShell) ||
                                                           (c.Type == emModuleType.shell && group.Key.IsShell)
                                                           );
                    //当前集合没有该模块
                    if (ibas_Moudule == null)
                    {
                        ibas_Moudule                   = new ibasModule();
                        ibas_Moudule.Type              = group.Key.IsShell ? emModuleType.shell : emModuleType.other;
                        ibas_Moudule.ModuleName        = group.Key.ModuleName;
                        ibas_Moudule.ModuleDescription = group.Key.ModuleName;
                        this.Add(ibas_Moudule);
                    }
                    else
                    {
                        if (ibas_Moudule.Status == emInstallStatus.Installed)
                        {
                            ibas_Moudule.Status = emInstallStatus.canUpdate;
                        }
                    }

                    //添加模块包名列表
                    foreach (var item in group.OrderBy(c => c.FileDate))
                    {
                        ibas_Moudule.PackageFileList.Insert(0, item.FileName);
                    }
                    //模块默认选中第一个包名
                    if (ibas_Moudule.PackageFileList.Count > 0)
                    {
                        ibas_Moudule.Checked         = true;
                        ibas_Moudule.PackageFileName = ibas_Moudule.PackageFileList[0];
                    }
                }
            }
            catch (Exception)
            {
            }
        }