コード例 #1
0
        public Membership Register(RegisterWxUserContext context)
        {
            using (var database = this.databaseFactory.GenerateDatabase(isWriteOnly: true)) {
                var queryString = @"[dbo].[spRegisterWeChatUser]";
                var parameters  = new IDbDataParameter[] {
                    new SqlParameter()
                    {
                        SqlDbType     = SqlDbType.Structured,
                        TypeName      = "[dbo].[RegisterWeChatUserStructure]",
                        Value         = new SqlDataRecord[] { Unity.Convert(context) },
                        ParameterName = "@wxuser"
                    }
                };
                database.Execute(queryString, parameters, System.Data.CommandType.StoredProcedure);
                queryString =
                    @"SELECT [src].*, [app].[MerchantId] FROM (
	SELECT [user].[Id],[identity].[AppId],[user].[UnionId],[identity].[OpenId],[Mobile],
	(SELECT SUM([RewardMoney])  FROM [dbo].[RewardLogging]  [reward] WHERE [reward].[WxUserId]= [user].[Id] ) AS [RewardMoney]
	FROM [dbo].[WxUser]  [user]
	LEFT JOIN  [dbo].[WxUserIdentity] [identity]
		ON [identity].[WxUserId] =[user].[Id]
	WHERE [identity].[AppId] = @appid and [identity].[OpenId]  = @openid
) [src]
LEFT JOIN  [dbo].[MWeChatApp] [app]
	ON [src].[AppId]= [app].[AppId]"    ;
                return(database.SqlQuerySingleOrDefault <Membership>(queryString,
                                                                     new {
                    @appid = context.WxApp.AppId,
                    @openid = context.Info.OpenId
                }));
            }
        }
コード例 #2
0
ファイル: Unity.cs プロジェクト: manny2016/Sharing
        public static SqlDataRecord Convert(RegisterWxUserContext model)
        {
            if (model == null)
            {
                return(null);
            }
            var record = new SqlDataRecord(DAOConstants.RegisterWeChatUserStructure);

            for (var i = 0; i < DAOConstants.RegisterWeChatUserStructure.Length; i++)
            {
                switch (DAOConstants.RegisterWeChatUserStructure[i].Name)
                {
                case "UnionId":
                    record.SetString(i, model.Info.UnionId);
                    break;

                case "AppId":
                    record.SetString(i, model.WxApp.AppId);
                    break;

                case "OpenId":
                    record.SetString(i, model.Info.OpenId);
                    break;

                case "RegistrySource":
                    record.SetInt32(i, (int)model.WxApp.AppType);
                    break;

                case "NickName":
                    if (string.IsNullOrEmpty(model.Info.NickName))
                    {
                        record.SetDBNull(i);
                    }
                    else
                    {
                        record.SetString(i, model.Info.NickName);
                    }
                    break;

                case "Country":
                    if (string.IsNullOrEmpty(model.Info.Country))
                    {
                        record.SetDBNull(i);
                    }
                    else
                    {
                        record.SetString(i, model.Info.Country);
                    }
                    break;

                case "Province":
                    if (string.IsNullOrEmpty(model.Info.Province))
                    {
                        record.SetDBNull(i);
                    }
                    else
                    {
                        record.SetString(i, model.Info.Province);
                    }
                    break;

                case "City":
                    if (string.IsNullOrEmpty(model.Info.City))
                    {
                        record.SetDBNull(i);
                    }
                    else
                    {
                        record.SetString(i, model.Info.City);
                    }
                    break;

                case "AvatarUrl":
                    if (string.IsNullOrEmpty(model.Info.AvatarUrl))
                    {
                        record.SetDBNull(i);
                    }
                    else
                    {
                        record.SetString(i, model.Info.AvatarUrl);
                    }
                    break;

                case "LastUpdatedBy":
                    if (string.IsNullOrEmpty(model.LastUpdateBy))
                    {
                        record.SetDBNull(i);
                    }
                    else
                    {
                        record.SetString(i, model.LastUpdateBy);
                    }
                    break;

                case "ScenarioId":
                    if (model.ScenarioId == null)
                    {
                        record.SetDBNull(i);
                    }
                    else
                    {
                        record.SetGuid(i, model.ScenarioId.Value);
                    }
                    break;

                case "SharedBy":
                    if (string.IsNullOrEmpty(model.SharedBy))
                    {
                        record.SetDBNull(i);
                    }
                    else
                    {
                        record.SetString(i, model.SharedBy);
                    }
                    break;
                }
            }
            return(record);
        }