Example #1
0
        public JsonResult Delete(int id)
        {
            var bll     = new AppUpdateBll();
            var success = bll.DeleteSoftly(id);

            return(Json(success ? ErrorModel.OperateSuccess : ErrorModel.OperateFailed));
        }
Example #2
0
        public JsonResult Add(AppUpdate model, int level)
        {
            if (model != null)
            {
                model.Version = GenerateVersion(level);
                model.Token   = $"guoli.app.upgradedat:{model.AddTime.ToString("yyyyMMddHHmmss")}".GetMd5();

                var bll     = new AppUpdateBll();
                var success = bll.Insert(model).Id > 0;

                return(Json(success ? ErrorModel.OperateSuccess : ErrorModel.OperateFailed));
            }

            return(Json(ErrorModel.InputError));
        }
Example #3
0
        public JsonResult Upgrade(string version)
        {
            var latest = new AppUpdateBll().QueryAll().LastOrDefault();

            if (latest == null)
            {
                return(Json(ErrorModel.AppNotUpgraded));
            }

            if (string.IsNullOrEmpty(version))
            {
                // 版本号为空且数据库不为空,则返回最新版本信息
                return(Json(ErrorModel.AppUpgraded(latest)));
            }

            // 验证版本号格式
            if (!Regex.IsMatch(version, @"^\d+\.\d+\.\d+\.\d+$"))
            {
                return(Json(ErrorModel.InputError));
            }

            try
            {
                if (version != latest.Version)
                {
                    // 版本号与最新发布的版本号不一致
                    // 说明发布了最新版本
                    return(Json(ErrorModel.AppUpgraded(latest)));
                }

                return(Json(ErrorModel.AppNotUpgraded));
            }
            catch (Exception ex)
            {
                ExceptionLogBll.ExceptionPersistence(nameof(AppController), nameof(AppController), ex);
                return(Json(ErrorModel.InputError));
            }
        }
Example #4
0
        /// <summary>
        /// 根据app更新级别,在最近发布的app版本号的基础上生成新的版本号
        /// 若是第一次发布,则返回1.0.0.xxxx
        /// </summary>
        /// <param name="level">app更新级别(1.重大版本更新;2.模块局部更新;3.BUG修复;)</param>
        /// <returns>带有发布日期的版本号</returns>
        private string GenerateVersion(int level)
        {
            if (level < 1 || level > 3)
            {
                return("");
            }

            var bll     = new AppUpdateBll();
            var latest  = bll.QueryAll().LastOrDefault();
            var pubTime = DateTime.Now.ToString("yyyyMMddHHmmss");

            if (latest == null)
            {
                return("1.0.0." + pubTime);
            }

            var versionNums   = latest.Version.Split('.').Select(s => Convert.ToInt64(s)).ToList();
            var mainVersion   = versionNums[0];
            var subVersion    = versionNums[1];
            var reviseVersion = versionNums[2];

            if (level == 1)
            {
                // 重大版本更新,将主版本号+1
                return($"{mainVersion + 1}.0.0.{pubTime}");
            }
            else if (level == 2)
            {
                // 模块局部更新,将次版本号+1
                return($"{mainVersion}.{subVersion + 1}.0.{pubTime}");
            }
            else
            {
                // BUG修复,将修订版本号+1
                return($"{mainVersion}.{subVersion}.{reviseVersion + 1}.{pubTime}");
            }
        }