Exemplo n.º 1
0
        /// <summary>
        /// 根据Code获取二维码登录
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        public static QrCodeLoginInfo GetByCode(string code)
        {
            var info = new QrCodeLoginInfo {
                Code = code
            };

            info = AppConnectEntityProcedure.GetEntityInstanceFromCacheByExtendedId(info);

            if (info == null || info.IsEmpty)
            {
                var db = Database.GetDatabase(DatabaseName.AppConnect);
                info = SafeProcedure.ExecuteAndGetInstance <QrCodeLoginInfo>(db, "dbo.QrCodeLogin_GetByCode", parameterMapper =>
                {
                    parameterMapper.AddWithValue("@Code", new Guid(code));
                },
                                                                             BuildInfo);

                if (info != null)
                {
                    info.IsEmpty = false;
                    AppConnectEntityProcedure.SaveEntityInstanceToCache(info);
                }
            }
            return(info);
        }
        /// <summary>
        /// 增加二维码登录
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public void Add(QrCodeLoginInfo info)
        {
            ArgumentHelper.AssertIsTrue(info != null, "QrCodeLoginInfo is null");
            ArgumentHelper.AssertNotNullOrEmpty(info.Code, "QrCodeLoginInfo.Code is null or empty");
            ArgumentHelper.AssertIsTrue(info.TitaAppId > 0, "info.TitaAppId is less than 0");

            QrCodeLoginDao.Insert(info);
        }
Exemplo n.º 3
0
        public void TestAdd()
        {
            var info = new QrCodeLoginInfo();

            info.Code  = Guid.NewGuid().ToString();
            info.State = QrCodeLoginState.UnLogin;
            ProviderGateway.QrCodeLoginProvider.Add(info);
        }
Exemplo n.º 4
0
 /// <summary>
 /// 数据映射
 /// </summary>
 /// <param name="record">记录</param>
 /// <param name="info">实体</param>
 private static void BuildInfo(IRecord record, QrCodeLoginInfo info)
 {
     info.Id        = record.Get <int>("Id");
     info.Code      = record.Get <Guid>("Code").ToString();
     info.TitaAppId = record.Get <int>("TitaAppId");
     info.TenantId  = record.Get <int>("TenantId");
     info.UserId    = record.Get <int>("UserId");
     info.State     = (QrCodeLoginState)record.Get <short>("State");
 }
Exemplo n.º 5
0
        /// <summary>
        /// 更新二维码登录状态
        /// </summary>
        /// <param name="info"></param>
        public static void UpdateState(QrCodeLoginInfo info)
        {
            var db = Database.GetDatabase(DatabaseName.AppConnect);

            SafeProcedure.ExecuteNonQuery(db, "dbo.QrCodeLogin_UpdateState", parameterMapper =>
            {
                parameterMapper.AddWithValue("@Code", new Guid(info.Code));
                parameterMapper.AddWithValue("@State", (short)info.State);
            });
            AppConnectEntityProcedure.SaveEntityInstanceToCache(info);
        }
        /// <summary>
        /// 生成二维码登录
        /// </summary>
        /// <returns></returns>
        public string GenerateQrCode(int titaAppId)
        {
            var checkResult = ProviderGateway.AuthorizeProvider.CheckApp(titaAppId, "");

            if (!checkResult)
            {
                AppConnectLogHelper.Error("GenerateQrCode--检查app失败");
                return(null);
            }

            var qrCodeLoginInfo = new QrCodeLoginInfo
            {
                Code      = Guid.NewGuid().ToString(),
                TitaAppId = titaAppId
            };

            Add(qrCodeLoginInfo);

            return(qrCodeLoginInfo.Code);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 增加二维码登录
        /// </summary>
        /// <param name="qrCodeLoginInfo"></param>
        public static int Insert(QrCodeLoginInfo qrCodeLoginInfo)
        {
            var db = Database.GetDatabase(DatabaseName.AppConnect);
            int id = 0;

            SafeProcedure.ExecuteNonQuery(db, "dbo.QrCodeLogin_Insert", parameterMapper =>
            {
                parameterMapper.AddWithValue("@Code", new Guid(qrCodeLoginInfo.Code));
                parameterMapper.AddWithValue("@TitaAppId", qrCodeLoginInfo.TitaAppId);
                parameterMapper.AddWithValue("@TenantId", qrCodeLoginInfo.TenantId);
                parameterMapper.AddWithValue("@UserId", qrCodeLoginInfo.UserId);
                parameterMapper.AddWithValue("@State", (short)qrCodeLoginInfo.State);
                parameterMapper.AddTypedDbNull("@Id", ParameterDirectionWrap.Output, DbType.Int32);
            }, o =>
            {
                id = (int)o.GetValue("@Id");
            });

            AppConnectEntityProcedure.SaveEntityInstanceToCache(qrCodeLoginInfo);
            AppConnectLogHelper.DebugFormat("增加二维码数据,返回值:{0}", id);
            return(id);
        }