Example #1
0
        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);
        }
Example #2
0
        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;
                    }
                }
            }
        }
Example #3
0
        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;
                    }
                }
            }
        }
Example #4
0
        /// <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);
                }
            }
        }
Example #5
0
        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);
        }