protected Package4AI CopyPackageExt2Package4AI(SMC_PackageExt ext, Package4AI package4AI) { package4AI.BuildVer = int.Parse(ext.pe_BuildVer); package4AI.ClientType = ext.pe_ClientType; package4AI.CreateTime = ext.pe_CreatedTime; package4AI.CreateUid = ext.pe_CreateUid; package4AI.Description = ext.pe_Description; package4AI.DisplayName = ext.pe_DisplayName; package4AI.DownloadUri = ext.pe_DownloadUri; if (String.IsNullOrEmpty(package4AI.Type)) { package4AI.Type = ext.pe_Type; } package4AI.UpdateTime = ext.pe_UpdateTime; package4AI.UpdateUid = ext.pe_UpdateUid; package4AI.Version = ext.pe_Version; package4AI.UpdateTime = DateTime.Now; if (package4AI.Type == null) { package4AI.Type = "plugin"; } return(package4AI); }
private void _AddAction4Android(Package4AI package, SMC_PackageExt ext) { if (!String.IsNullOrEmpty(ext.pe_ApplicationCode)) { string[] apps = ext.pe_ApplicationCode.Split(",".ToCharArray()); if (apps != null && apps.Length > 0) { ApplicationDao appDao = new ApplicationDao(AppConfig.mainDbKey); App4AIDao app4AIDao = new App4AIDao(AppConfig.mainDbKey); string TEMPPATH = Path.Combine(AppConfig.PackUploadFolder, "Temp"); int idx = 1; Action4AndroidDao action4AndroidDao = new Action4AndroidDao(AppConfig.mainDbKey); foreach (string appCode in apps) { if (String.IsNullOrEmpty(appCode)) { continue; } List <KeyValuePair <string, object> > pars = new List <KeyValuePair <string, object> >(); pars.Add(new KeyValuePair <string, object>("[NAME]", appCode)); Application application = appDao.Get(pars); //for (int activtyIndex = 0; activtyIndex < Convert.ToInt32(form["activityCount_" + appIndex.ToString()]); activtyIndex++) //{ Action4Android action4Android = new Action4Android(); action4Android.Seq = idx; //Convert.ToInt32(form["ActivitySeq_" + appIndex.ToString() + "_" + activtyIndex.ToString()]); action4Android.DisplayName = ""; //form["ActivityDisplayName_" + appIndex.ToString() + "_" + activtyIndex.ToString()]; action4Android.IsLaunch = true; //Convert.ToBoolean(form["ActivityLaunch_" + appIndex.ToString() + "_" + activtyIndex.ToString()]); action4Android.IconUri = ""; //GetAndroidApplicationIcoUri(Path.Combine(TEMPPATH, package.DownloadUri), form["ActivityIco_" + appIndex.ToString() + "_" + activtyIndex.ToString()]); action4Android.ShortName = ""; //form["ActivityShortName_" + appIndex.ToString() + "_" + activtyIndex.ToString()]; action4Android.Name = ""; //form["ActivityName_" + appIndex.ToString() + "_" + activtyIndex.ToString()]; action4Android.CreateTime = DateTime.Now; action4Android.UpdateTime = DateTime.Now; action4Android.CreateUid = ""; //CurrentUser.UserUId; action4Android.UpdateUid = ""; //CurrentUser.UserUId; action4AndroidDao.Insert(action4Android); //} ++idx; } } } }
private void _AddApp4AI(Package4AI package, SMC_PackageExt ext) { if (!String.IsNullOrEmpty(ext.pe_ApplicationCode)) { string[] apps = ext.pe_ApplicationCode.Split(",".ToCharArray()); if (apps != null && apps.Length > 0) { ApplicationDao appDao = new ApplicationDao(AppConfig.mainDbKey); App4AIDao app4AIDao = new App4AIDao(AppConfig.mainDbKey); string TEMPPATH = Path.Combine(AppConfig.PackUploadFolder, "Temp"); int idx = 1; Hashtable extendInfo = null; JObject extObj = null; if (!String.IsNullOrEmpty(ext.pe_ExtentInfo)) { extendInfo = Newtonsoft.Json.JsonConvert.DeserializeObject <Hashtable>(ext.pe_ExtentInfo); extObj = JObject.Parse(ext.pe_ExtentInfo); } Newtonsoft.Json.Linq.JArray appsHash = (Newtonsoft.Json.Linq.JArray)extendInfo["Applications"]; JArray appsJobj = (JArray)extObj["Applications"]; foreach (string appCode in apps) { if (String.IsNullOrEmpty(appCode)) { continue; } if (extendInfo.Count > 0) { } //appsHash.Select(e => { e.}); List <KeyValuePair <string, object> > pars = new List <KeyValuePair <string, object> >(); pars.Add(new KeyValuePair <string, object>("[NAME]", appCode)); Application application = appDao.Get(pars); App4AI app4AI = new App4AI(); app4AI.AppID = application.ID; //Newtonsoft.Json.Linq.JToken.EqualityComparer = new Newtonsoft.Json.Linq.JTokenEqualityComparer(); //ec. string AppIconUri = ""; foreach (var j in appsJobj) { var i = (JObject)j; string ApplicationID = (string)i["ApplicationID"]; if (ApplicationID == application.ID.ToString()) { var oIcon = (JObject)i["ApplicationIcon"]; AppIconUri = (string)oIcon["AppIconUri"]; break; } } //Hashtable appHash = appsHash.Find(e => e["ApplicationID"] == application.ID.ToString()); //Hashtable appIconHash = (Hashtable)appHash["ApplicationIcon"]; //string AppIconUri = (string)appIconHash["AppIconUri"]; app4AI.Package4AIID = package.ID; //app4AI.PackageName = package.Name; app4AI.AppCode = appCode; app4AI.ClientType = package.ClientType; //form["AppCheckClentType_" + appIndex.ToString()]; //string appIco = "";//form["AppIco_" + appIndex.ToString()] app4AI.IconUri = AppIconUri; // GetAndroidApplicationIcoUri(Path.Combine(TEMPPATH, package.DownloadUri), appIco); app4AI.Seq = idx; app4AI.CreateTime = DateTime.Now; app4AI.UpdateTime = DateTime.Now; app4AI.CreateUid = ""; app4AI.UpdateUid = ""; IList <KeyValuePair <string, object> > _pars = new List <KeyValuePair <string, object> >(); _pars.Add(new KeyValuePair <string, object>("Package4AIID", app4AI.Package4AIID)); _pars.Add(new KeyValuePair <string, object>("AppCode", app4AI.AppCode)); _pars.Add(new KeyValuePair <string, object>("ClientType", app4AI.ClientType)); App4AI _app4ai = app4AIDao.Get(_pars); if (_app4ai == null) { //package.App4AIList.Add(app4AI); app4AIDao.Insert(app4AI); } else { app4AIDao.Update(app4AI); } ++idx; } } } }
/// <summary> /// 复制安装包到更新文件目录 /// </summary> /// <param name="ext"></param> private void _CopyExtFileToUpdateFilesFolder(SMC_PackageExt ext) { string pathSource = HttpContext.Current.Server.MapPath(ext.pe_FileUrl); //string[] files = Directory.GetFiles(pathSource); Dao.Package4AIDao daoPackage4AI = new Package4AIDao(AppConfig.mainDbKey); IList <KeyValuePair <string, object> > pars = new List <KeyValuePair <string, object> >(); pars.Add(new KeyValuePair <string, object>("id", ext.TableID)); Package4AI package4AI = daoPackage4AI.Get(pars); //string sourceFileName = Path.GetFileName(ext.pe_FileUrl); //foreach (string file in files) { string sFileName = Path.GetFileName(pathSource); if (sFileName.EndsWith(".ipa") || sFileName.EndsWith(".apk")) { string destFileName = Path.GetFileName(ext.pe_DownloadUri); string destFolder = AppConfig.PackUploadFolder; if (destFolder.EndsWith(@"\") == false) { destFolder += @"\"; } destFolder += destFileName; try { File.Copy(pathSource, destFolder, true); } catch (Exception ex) { Log4NetHelper.Error(ex); } } string savefilePath = AppConfig.PublishConfig.GetValue(ext.pe_ClientType).Path; //saveFileName = savefilePath; string saveFilePathOut = ""; if (savefilePath.IndexOf("$") != -1) { string[] savefilePaths = savefilePath.Split("$".ToCharArray()); savefilePath = savefilePaths[0]; saveFilePathOut = savefilePaths[1]; } //内网本地存储固定名称的主程序 try { System.IO.File.Copy(pathSource, savefilePath, true); } catch (Exception ex) { Log4NetHelper.Error(ex); } Service.ApplicationCenterWS.WebService acws = new Service.ApplicationCenterWS.WebService(); //StreamReader sr = new StreamReader(); FileStream fs = new FileStream(pathSource, FileMode.Open); byte[] content = new byte[fs.Length]; fs.Read(content, 0, (int)fs.Length - 1); fs.Close(); fs.Dispose(); //发布到外网存储固定名称的主程序 if (package4AI != null && package4AI.Type.ToLower() == "main") { acws.RemotePublish(content, saveFilePathOut); } } }
private void _SMC_PackageExtInternalRelease(SMC_PackageExt ext) { if (ext == null) { return; } string tableName = ext.TableName.ToLower(); int tableId = ext.TableID; List <KeyValuePair <string, object> > pars = new List <KeyValuePair <string, object> >(); switch (tableName) { case "webapplication": pars.Add(new KeyValuePair <string, object>("id", tableId)); WebApplication webApplication = daoWebApplication.Get(pars); if (webApplication == null) { webApplication = new WebApplication(); CopyPackageExt2WebApplication(ext, webApplication); daoWebApplication.Insert(webApplication); ext.TableID = webApplication.ID; } else { CopyPackageExt2WebApplication(ext, webApplication); daoWebApplication.Update(webApplication); } break; case "package4ai": pars.Add(new KeyValuePair <string, object>("id", tableId)); Package4AI package4AI = daoPackage4AI.Get(pars); if (package4AI == null) { package4AI = new Package4AI(); CopyPackageExt2Package4AI(ext, package4AI); daoPackage4AI.Insert(package4AI); ext.TableID = package4AI.ID; } else { CopyPackageExt2Package4AI(ext, package4AI); daoPackage4AI.Update(package4AI); } try { _AddApp4AI(package4AI, ext); } catch (Exception ex) { Log4NetHelper.Error(ex); } try { _AddAction4Android(package4AI, ext); } catch (Exception ex) { Log4NetHelper.Error(ex); } break; case "smc_package4out": pars.Add(new KeyValuePair <string, object>("po_ID", tableId)); SMC_Package4Out package4Out = daoSMC_Package4Out.Get(pars); if (package4Out == null) { package4Out = new SMC_Package4Out(); CopyPackageExt2SMC_Package4Out(ext, package4Out); daoSMC_Package4Out.Insert(package4Out); ext.TableID = package4Out.po_ID; } else { CopyPackageExt2SMC_Package4Out(ext, package4Out); daoSMC_Package4Out.Update(package4Out); } break; } daoSMC_PackageExt.Update(ext); _CopyExtFileToUpdateFilesFolder(ext); }