Exemplo n.º 1
0
        /// <summary>
        /// 执行用户及账号逻辑
        /// </summary>
        /// <param name="context"></param>
        /// <param name="message"></param>
        private void ExecuteForUserAndAccount(IRepositoryContext <Transfer> context, Message message)
        {
            // execute for user
            var userId = context.ExecuteInsert(message.TargetTable, ObjectToString(message.Data)).ToLong();
            // execute for account
            var ItemDatas = message.Data;
            Func <string, object> getMessageData = name =>
            {
                object res;
                if (message.Data.ContainsKey(name))
                {
                    res = message.Data[name];
                }
                else if (message.ExtendData.ContainsKey(name))
                {
                    res = message.ExtendData[name];
                }
                else
                {
                    res = null;
                }
                return(res);
            };

            foreach (var type in types)
            {
                IDictionary <string, object> row = new Dictionary <string, object>();
                if (type.Name.IsNullOrEmpty())
                {
                    row["Amount"] = 0;
                }
                else
                {
                    if (type.Name.Equals("UE_cp"))
                    {
                        row["Amount"] = getMessageData(type.Name).ToDecimal() * 850;
                    }
                    else
                    {
                        row["Amount"] = getMessageData(type.Name);
                    }
                }
                row["Currency"]      = type.Currency;
                row["CreateTime"]    = DateTime.Now;
                row["ExtraDate"]     = "";
                row["FreezeAmount"]  = 0;
                row["HistoryAmount"] = 0;
                row["ModifiedTime"]  = "0001-01-01 00:00:00.0000000";
                row["MoneyTypeId"]   = type.MoneyType;
                row["Remark"]        = "from qefgj database.";
                row["SortOrder"]     = 1000;
                row["Status"]        = getMessageData("Status");
                row["UserId"]        = userId;
                row["SrcId"]         = getMessageData("SrcId");
                context.Execute("Finance_Account", ObjectToString(row));
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 执行用户及账号逻辑
        /// </summary>
        /// <param name="context"></param>
        /// <param name="message"></param>
        private void ExecuteForUserAndAccount(IRepositoryContext <Transfer> context, Message message)
        {
            long userId = 0;

            TimeOutTryAgain(() =>
            {
                // execute for user
                userId = context.ExecuteInsert(message.TargetTable, message.Data).ToLong();
            });

            // execute for account
            var ItemDatas = message.Data;

            foreach (var type in types)
            {
                IDictionary <string, object> row = new Dictionary <string, object>();
                if (type.Name.IsNullOrEmpty())
                {
                    row["Amount"] = 0;
                }
                else
                {
                    if (type.Name.Equals("UE_cp"))
                    {
                        row["Amount"] = GetMessageData(type.Name, message).ToDecimal() * 850;
                    }
                    else
                    {
                        row["Amount"] = GetMessageData(type.Name, message);
                    }
                }
                row["Currency"]      = type.Currency;
                row["CreateTime"]    = DateTime.Now;
                row["ExtraDate"]     = "";
                row["FreezeAmount"]  = 0;
                row["HistoryAmount"] = 0;
                row["ModifiedTime"]  = "0001-01-01 00:00:00.0000000";
                row["MoneyTypeId"]   = type.MoneyType;
                row["Remark"]        = "from qefgj database.";
                row["SortOrder"]     = 1000;
                row["Status"]        = GetMessageData("Status", message);
                row["UserId"]        = userId;
                row["SrcId"]         = GetMessageData("SrcId", message);
                context.Execute("Finance_Account", row);
            }

            TimeOutTryAgain(() =>
            {
                ExecuteForUserTypeIndex(context, message, userId);
            });
        }