//protected void Timer1_Tick(object sender, EventArgs e)
        //{
        //    litStatus.Text = "Panel refreshed at: " + DateTime.Now.ToLongTimeString();
        //    if (dataSyncJob != null)
        //    {
        //        if (dataSyncJob.logBuilder != null)
        //        {
        //            var processedItems = dataSyncJob.logBuilder.ProcessedItems;
        //            litStatus.Text += processedItems + "";
        //        }
        //    }
        //}

        //public delegate void LongTimeTask_Delegate(string str);

        //public void LongTimeTask(string str)
        //{
        //    Item dataSyncItem = currentDB.Items[ddlImport.SelectedValue];
        //    if (dataSyncItem != null)
        //    {
        //        Logging logBuilder = new Logging();
        //        DataSyncManager.RunDataSyncJob(dataSyncItem, ref logBuilder);

        //        if (logBuilder != null)
        //        {
        //            txtMessage.Text = logBuilder.LogBuilder.Length < 1 ? "The import completed successfully. \r\nStatus: \r\n" + logBuilder.GetItemStatusText() : logBuilder.LogBuilder + "\r\nStatus: \r\n" + logBuilder.GetItemStatusText();
        //        }
        //        else
        //        {
        //            txtMessage.Text = "The log object was null.";
        //        }
        //    }
        //}

        //public void TaskCompleted(IAsyncResult r)
        //{
        //    litStatus.Text = "Job done: " + DateTime.Now.ToLongTimeString();
        //    this.updatePanelStatus.Update();
        //}

        //protected void btnImport_Click(object sender, EventArgs e)
        //{
        //    //LongTimeTask_Delegate d = new LongTimeTask_Delegate(LongTimeTask);
        //    //IAsyncResult r = d.BeginInvoke("String", new AsyncCallback(TaskCompleted), null);
        //    //d.EndInvoke(r);

        //}

        protected void btnImport_Click(object sender, EventArgs e)
        {
            Item dataSyncItem = currentDB.Items[ddlImport.SelectedValue];

            if (dataSyncItem != null)
            {
                LevelLogger logger          = Manager.CreateLogger(dataSyncItem);
                var         dataSyncManager = new DataSyncManager();
                dataSyncManager.RunDataSyncJob(dataSyncItem, ref logger);

                if (logger != null)
                {
                    var exporter = Manager.CreateOutputHandler(dataSyncItem, logger);
                    if (exporter != null)
                    {
                        txtMessage.Text = exporter.Export();
                    }
                    else
                    {
                        txtMessage.Text = "The Exporter class was null. Therefor the log was not written out.";
                    }
                }
                else
                {
                    txtMessage.Text = "The log object was null.";
                }
            }
        }
Пример #2
0
        public ActionResult ContactPermissionCallback()
        {
            GooglePlusAccessToken objToken = new GooglePlusAccessToken();
            objResponse           Response = new objResponse();
            DataSyncManager       objData  = new DataSyncManager();

            session = new SessionHelper();
            try
            {
                if (Request.QueryString["code"] != null)
                {
                    objToken = GetAccessToken(Request.QueryString["code"].ToString());
                    Response = objData.SetGContactSeting(objToken.access_token, objToken.token_type, objToken.expires_in, objToken.refresh_token, "contact", Convert.ToInt64(session.UserSession.PIN), session.UserSession.UserId);

                    if (Response.ErrorCode == 0)
                    {
                        return(RedirectToRoute("UserSetings"));
                    }
                    else
                    {
                        return(RedirectToRoute("UserSetings"));
                    }
                }
                else
                {
                    return(RedirectToRoute("UserSetings"));
                }
            }
            catch (Exception ex)
            {
                BAL.Common.LogManager.LogError("ContactPermissionCallback Post Method", 1, Convert.ToString(ex.Source), Convert.ToString(ex.Message), Convert.ToString(ex.StackTrace));
                return(RedirectToRoute("UserSetings"));
            }
        }
Пример #3
0
 private static void AppendLog(int teamId, TeamCombatProcess logTeam)
 {
     if (_combatProcessList != null)
     {
         if (!_combatProcessList.ContainsKey(teamId))
         {
             _combatProcessList.Add(teamId, new TeamCombatResult());
         }
         lock (ThisLock)
         {
             TeamCombatResult tempList = _combatProcessList[teamId];
             tempList.ProcessList.Add(logTeam);
         }
         UserCombatLog log = new UserCombatLog
         {
             CombatLogID   = Guid.NewGuid().ToString(),
             CombatType    = CombatType.MultiPlot,
             UserID        = logTeam.UserId,
             PlotID        = logTeam.PlotID,
             NpcID         = logTeam.PlotNpcID,
             HostileUser   = logTeam.TeamID.ToString(),
             IsWin         = logTeam.IsWin,
             CombatProcess = JsonUtils.Serialize(logTeam.ProcessContainer),
             CreateDate    = DateTime.Now
         };
         var sender = DataSyncManager.GetDataSender();
         sender.Send(log);
     }
 }
Пример #4
0
 public void Save(MemoryData data)
 {
     if (AddOrUpdate(data.Id.ToString(), data))
     {
         //DataSyncQueueManager.SendToDb(GetPropertyValue, null, data);
         DataSyncManager.SendSql(new MemoryData[] { data }, true, GetPropertyValue);
     }
 }
Пример #5
0
        private void DoUpdateChangeKey(RedisClient client, string setId, object keyByte, byte[] values, bool isHash, byte[] buffer)
        {
            string key = isHash
                ? Encoding.UTF8.GetString((byte[])keyByte)
                : keyByte.ToString();
            dynamic entity = null;

            try
            {
                entity = CovertEntityObject(key, values);
                CacheType cacheType = CacheType.None;
                if (entity != null)
                {
                    SchemaTable schema;
                    Type        entityType = entity.GetType();
                    if (!EntitySchemaSet.TryGet(entityType, out schema))
                    {
                        EntitySchemaSet.InitSchema(entityType);
                    }
                    if (schema != null || EntitySchemaSet.TryGet(entityType, out schema))
                    {
                        cacheType = schema.CacheType;
                    }
                    if (cacheType != CacheType.None)
                    {
                        string redisKey = cacheType == CacheType.Dictionary
                            ? key.Split('|')[0]
                            : key.Split('_')[0];

                        using (IDataSender sender = DataSyncManager.GetRedisSender(redisKey))
                        {
                            sender.Send(entity);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                TraceLog.WriteError("ChangeKey:{0} error:{1}", key, ex);
            }
            if (isHash)
            {
                client.HDel(setId, (byte[])keyByte);
            }
            else
            {
                client.ZRem(setId, buffer);
            }
            if (entity != null)
            {
                Type   type      = entity.GetType();
                string entityKey = string.Format("{0},{1}", key, type.Assembly.GetName().Name);
                client.HSet("__GLOBAL_SQL_CHANGE_KEYS_NEW", Encoding.UTF8.GetBytes(entityKey), new byte[] { 1 });
            }
        }
Пример #6
0
        public override void Process(JsonParameter[] paramList)
        {
            JsonParameterList parameters = JsonParameter.Convert(paramList);
            string            op         = parameters["op"];
            string            userID     = parameters["UserID"];
            GameUser          gameUser   = new PersonalCacheStruct <GameUser>().FindKey(userID);

            OAOperationLog oAOperationLog = new OAOperationLog();

            oAOperationLog.ID         = Guid.NewGuid().ToString();
            oAOperationLog.UserID     = userID;
            oAOperationLog.OpUserID   = Convert.ToInt32(parameters["OpUserID"]);
            oAOperationLog.CreateDate = DateTime.Now;
            if (parameters["EndDate"].Length > 0)
            {
                oAOperationLog.EndDate = Convert.ToDateTime(parameters["EndDate"]);
            }

            oAOperationLog.Reason = parameters["Reason"];
            if (gameUser == null)
            {
                return;
            }
            if (op == "disableId")
            {
                gameUser.UserStatus   = UserStatus.FengJin;
                oAOperationLog.OpType = 1;
            }
            else if (op == "enableId")
            {
                gameUser.UserStatus   = UserStatus.Normal;
                oAOperationLog.OpType = 2;
            }
            else if (op == "disableMsg")
            {
                gameUser.MsgState     = false;
                oAOperationLog.OpType = 3;
            }
            else if (op == "enableMsg")
            {
                gameUser.MsgState     = true;
                oAOperationLog.OpType = 4;
            }
            else
            {
                return;
            }
            //gameUser.Update();
            var sender = DataSyncManager.GetDataSender();

            sender.Send(oAOperationLog);
        }
Пример #7
0
 private void OnSyncSql(object state)
 {
     try
     {
         if (Monitor.TryEnter(syncSqlObject, 1000))
         {
             try
             {
                 TraceLog.ReleaseWrite("Sql waiting to be written to the Redis");
                 while (true)
                 {
                     var list = CacheChangeManager.Current.PopSql(100);
                     if (list.Count == 0)
                     {
                         break;
                     }
                     foreach (var key in list)
                     {
                         string redisKey = key;
                         try
                         {
                             dynamic     entity      = CacheFactory.GetEntityFromRedis(redisKey, true);
                             SchemaTable schemaTable = entity.GetSchema();
                             if (entity != null && schemaTable != null)
                             {
                                 DbBaseProvider dbProvider = DbConnectionProvider.CreateDbProvider(schemaTable);
                                 if (dbProvider != null)
                                 {
                                     DataSyncManager.GetDataSender().Send(entity, false);
                                 }
                             }
                         }
                         catch (Exception e)
                         {
                             TraceLog.WriteError("Sync to db {0} error:{1}", redisKey, e);
                         }
                     }
                 }
             }
             finally
             {
                 Monitor.Exit(syncSqlObject);
             }
         }
     }
     catch (Exception ex)
     {
         TraceLog.WriteError("Sql sync error:{0}", ex);
     }
 }
Пример #8
0
        /// <summary>
        /// 灵件操作日志
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="sparePartID"></param>
        /// <param name="userSparepartID"></param>
        /// <param name="userItemID"></param>
        /// <param name="position"></param>
        /// <param name="partStatus"></param>
        public static void AppendSparePartLog(string userId, UserSparePart sparePart, short partStatus)
        {
            UserSparePartLog partLog = new UserSparePartLog()
            {
                UserID      = userId,
                SparePartID = sparePart.SparePartId,
                SparePart   = sparePart,
                PartStatus  = partStatus,
                CreateDate  = DateTime.Now
            };
            var sender = DataSyncManager.GetDataSender();

            sender.Send(partLog);
        }
Пример #9
0
        /// <summary>
        /// 从Redis内存移除,并保存到数据库,
        /// </summary>
        /// <param name="match">实体类型, 实体Key列表</param>
        public static void RemoveToDatabase(params KeyValuePair <Type, IList <string> >[] match)
        {
            var removeEntityKeys = new List <KeyValuePair <string, byte[][]> >();
            var entityList       = new List <EntityHistory>();

            RedisConnectionPool.ProcessReadOnly(client =>
            {
                foreach (var express in match)
                {
                    try
                    {
                        string hashtId    = RedisConnectionPool.GetRedisEntityKeyName(express.Key);
                        byte[][] keyBytes = express.Value.Select(t => RedisConnectionPool.ToByteKey(t)).ToArray();
                        if (keyBytes.Length == 0)
                        {
                            continue;
                        }
                        removeEntityKeys.Add(new KeyValuePair <string, byte[][]>(hashtId, keyBytes));
                        //转存到DB使用protobuf
                        byte[][] valueBytes = client.HMGet(hashtId, keyBytes);
                        for (int i = 0; i < keyBytes.Length; i++)
                        {
                            entityList.Add(new EntityHistory()
                            {
                                Key   = string.Format("{0}_{1}", hashtId, RedisConnectionPool.ToStringKey(keyBytes[i])),
                                Value = valueBytes[i]
                            });
                        }
                    }
                    catch (Exception ex)
                    {
                        TraceLog.WriteError("Redis cache remove key:{0} to Database error:{1}", express, ex);
                    }
                }
            });

            if (entityList.Count > 0)
            {
                DataSyncManager.SendSql <EntityHistory>(entityList, false, true);
                RedisConnectionPool.ProcessReadOnly(client =>
                {
                    foreach (var pair in removeEntityKeys)
                    {
                        client.HDel(pair.Key, pair.Value);
                    }
                });
            }
        }
Пример #10
0
        public override bool TakeAction()
        {
            try
            {
                DESAlgorithmNew des = new DESAlgorithmNew();
                password = des.DecodePwd(password, GameEnvironment.Setting.ClientDesDeKey);
                if (password.Length > 12 || password.Length < 4)
                {
                    this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                    this.ErrorInfo = LanguageManager.GetLang().St1006_PasswordTooLong;
                    return(false);
                }
                Regex re = new Regex(@"^[\u4e00-\u9fa5\w]+$");
                if (!re.IsMatch(password))
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = LanguageManager.GetLang().St1006_PasswordExceptional;
                    return(false);
                }
                password = CryptoHelper.DES_Encrypt(password, GameEnvironment.Setting.ProductDesEnKey);
                if (SnsManager.ChangePass(Uid, password) <= 0)
                {
                    this.ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo      = LanguageManager.GetLang().St1006_ChangePasswordError;
                    return(false);
                }
                else
                {
                    UserOperationLog userOperationLog = new UserOperationLog();
                    userOperationLog.UserID     = ContextUser.UserID;
                    userOperationLog.ActionID   = ActionIDDefine.Cst_Action1006;
                    userOperationLog.FunctionID = "更新密码";
                    userOperationLog.CreateDate = DateTime.Now;
                    userOperationLog.Num        = 0;

                    var sender = DataSyncManager.GetDataSender();
                    sender.Send(userOperationLog);
                }
            }
            catch (Exception ex)
            {
                this.SaveLog(ex.ToString());
                ErrorCode = LanguageManager.GetLang().ErrorCode;
                ErrorInfo = LanguageManager.GetLang().St1006_PasswordError;
                return(false);
            }
            return(true);
        }
Пример #11
0
        /// <summary>
        /// -1:掉落,1增加,2使用,3出售,4出售删除 5合成,6购回
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="itemID"></param>
        /// <param name="num"></param>
        /// <param name="itemLv"></param>
        /// <param name="itemStatus"></param>
        public static void AddItemLog(string userID, int itemID, int num, short itemLv, int itemStatus, string useritemID)
        {
            var itemLog = new UserItemLog();

            itemLog.LogID      = Guid.NewGuid().ToString();
            itemLog.ItemID     = itemID;
            itemLog.UserID     = userID;
            itemLog.ItemStatus = (short)itemStatus;
            itemLog.ItemLv     = itemLv;
            itemLog.Num        = num;
            itemLog.CreateDate = DateTime.Now;
            itemLog.UserItemID = useritemID;
            var sender = DataSyncManager.GetDataSender();

            sender.Send(itemLog);
        }
Пример #12
0
        /// <summary>
        /// 玩家修炼操作日志表log
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="opType"></param>
        /// <param name="sumNum"></param>
        /// <param name="opNum"></param>
        /// <param name="useGold"></param>
        /// <param name="surplusGold"></param>
        /// <param name="totalGold"></param>
        public static void AppenPracticeLog(string userID, DateTime startDate, DateTime endDate, int continuedTime, int gainExperience)
        {
            UserPracticeLog log = new UserPracticeLog()
            {
                ID             = Guid.NewGuid().ToString(),
                UserID         = userID,
                StartDate      = startDate,
                EndDate        = endDate,
                ContinuedTime  = continuedTime,
                GainExperience = gainExperience,
                CreateDate     = DateTime.Now
            };
            var sender = DataSyncManager.GetDataSender();

            sender.Send(log);
        }
Пример #13
0
        /// <summary>
        /// 从Redis内存移除,并保存到数据库
        /// </summary>
        /// <param name="keys"></param>
        public static void RemoveToDatabase(params string[] keys)
        {
            var entityKeys = new List <string>();
            var entityList = new List <EntityHistory>();

            RedisConnectionPool.ProcessReadOnly(client =>
            {
                foreach (var k in keys)
                {
                    try
                    {
                        string key   = k;
                        string setId = key + "_remove";
                        if (key.EndsWith("_remove"))
                        {
                            setId = key;
                            key   = key.Replace("_remove", "");
                        }
                        else
                        {
                            if (client.ContainsKey(key))
                            {
                                client.Rename(key, setId);
                            }
                        }
                        entityKeys.Add(setId);
                        //转存到DB使用protobuf
                        byte[] keyValues = ProtoBufUtils.Serialize(client.HGetAll(setId));
                        var history      = new EntityHistory()
                        {
                            Key = key, Value = keyValues
                        };
                        entityList.Add(history);
                    }
                    catch (Exception ex)
                    {
                        TraceLog.WriteError("Redis cache remove key:{0} to Database error:{1}", k, ex);
                    }
                }
            });

            if (entityList.Count > 0)
            {
                DataSyncManager.GetDataSender().Send <EntityHistory>(entityList.ToArray());
                RedisConnectionPool.ProcessReadOnly(client => client.RemoveAll(entityKeys));
            }
        }
Пример #14
0
        /// <summary>
        /// 新增玩家使用晶石购买log
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="opType"></param>
        /// <param name="sumNum"></param>
        /// <param name="opNum"></param>
        /// <param name="useGold"></param>
        /// <param name="surplusGold"></param>
        /// <param name="totalGold"></param>
        public static void AppenUseGoldLog(string userID, short opType, int sumNum, int opNum, int useGold, int surplusGold, int totalGold)
        {
            UserUseGoldLog log = new UserUseGoldLog
            {
                ID          = Guid.NewGuid().ToString(),
                UserID      = userID,
                OpType      = opType,
                SumNum      = sumNum,
                OpNum       = opNum,
                UseGold     = useGold,
                SurplusGold = surplusGold,
                TotalGold   = totalGold,
                CreateDate  = DateTime.Now
            };
            var sender = DataSyncManager.GetDataSender();

            sender.Send(log);
        }
Пример #15
0
        protected override bool InitCache(bool isReplace)
        {
            var schema = EntitySchemaSet.Get <MemoryData>();
            List <MemoryData> list;

            if (DataSyncManager.TryReceiveSql(schema, new DbDataFilter(100), OnSetProperty, out list))
            {
                foreach (var data in list)
                {
                    AddOrUpdate(data.Id.ToString(), data);
                }
                return(true);
            }
            ;
            return(false);
            //List<MemoryData> list;
            //RedisConnectionPool.TryGetEntity(ContainerKey, null, out list);
        }
Пример #16
0
        /// <summary>
        /// 3.3.18 玩家庄园log
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="opType"></param>
        /// <param name="sumNum"></param>
        /// <param name="opNum"></param>
        /// <param name="useGold"></param>
        /// <param name="surplusGold"></param>
        /// <param name="totalGold"></param>
        public static void AppenLandLog(string userID, short opType, int generalID, int postion, int useGold, short plantQuality, int gainNum, int buyNum)
        {
            UserLandLog log = new UserLandLog
            {
                ID           = Guid.NewGuid().ToString(),
                UserID       = userID,
                OpType       = opType,
                GeneralID    = generalID,
                Postion      = postion,
                PlantQuality = plantQuality,
                GainNum      = gainNum,
                BuyNum       = buyNum,
                CreateDate   = DateTime.Now
            };
            var sender = DataSyncManager.GetDataSender();

            sender.Send(log);
        }
Пример #17
0
        /// <summary>
        /// 玩家强化(装备,魔术)log
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="opType"></param>
        /// <param name="sumNum"></param>
        /// <param name="opNum"></param>
        /// <param name="useGold"></param>
        /// <param name="surplusGold"></param>
        /// <param name="totalGold"></param>
        public static void AppenStrongLog(string userID, short opType, string userItemID, int itemID, short useType, short strongLv, int useGold, int generalID)
        {
            UserStrongLog log = new UserStrongLog
            {
                ID         = Guid.NewGuid().ToString(),
                UserID     = userID,
                OpType     = opType,
                UserItemID = userItemID,
                ItemID     = itemID,
                UseType    = useType,
                StrongLv   = strongLv,
                UseGold    = useGold,
                GeneralID  = generalID,
                CreateDate = DateTime.Now
            };
            var sender = DataSyncManager.GetDataSender();

            sender.Send(log);
        }
Пример #18
0
        public static void InitDataFast(ClientUser user)
        {
            var config      = new SysConfig();
            var syncManager = new DataSyncManager();

            syncManager.ClearUserTables(user.GetProfile().Postfix);

            InitData(user);
            System.Threading.Thread.Sleep(120000);
            var date = DateTime.UtcNow;

            if (SysConfig.UseStaticDate)
            {
                date = new CompetitorDataGenerator(config, user).GetMaxDate();
            }

            BuildReports(config, user.GetProfile(), date);
            GenerateWordCloud(user.GetProfile());
        }
Пример #19
0
        /// <summary>
        /// 玩家附魔符log
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="opType"></param>
        /// <param name="enchantID"></param>
        /// <param name="synthesisInfo"></param>
        /// <param name="enchantLv"></param>
        /// <param name="mature"></param>
        /// <param name="exp"></param>
        /// <param name="userEnchantID"></param>
        public static void AppenEnchantLog(string userID, short opType, UserEnchantInfo enchantInfo, CacheList <SynthesisInfo> synthesisInfo)
        {
            UserEnchantLog log = new UserEnchantLog();

            log.ID               = Guid.NewGuid().ToString();
            log.UserID           = userID;
            log.OpType           = opType;
            log.UserEnchantID    = enchantInfo.UserEnchantID;
            log.EnchantID        = enchantInfo.EnchantID;
            log.EnchantLv        = enchantInfo.EnchantLv;
            log.MaxMature        = enchantInfo.MaxMature;
            log.Experience       = enchantInfo.CurrExprience;
            log.SynthesisEnchant = synthesisInfo;
            log.CreateDate       = DateTime.Now;

            var sender = DataSyncManager.GetDataSender();

            sender.Send(log);
        }
Пример #20
0
        /// <summary>
        /// 玩家扫荡操作日志表log
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="opType"></param>
        /// <param name="sumNum"></param>
        /// <param name="opNum"></param>
        /// <param name="useGold"></param>
        /// <param name="surplusGold"></param>
        /// <param name="totalGold"></param>
        public static void AppenRaidsLog(string userID, short opType, DateTime startDate, DateTime endDate, short energy, int useGold)
        {
            int          continuedTime = (int)(endDate - startDate).TotalSeconds;
            UserRaidsLog log           = new UserRaidsLog()
            {
                ID            = Guid.NewGuid().ToString(),
                UserID        = userID,
                OpType        = opType,
                StartDate     = startDate,
                EndDate       = endDate,
                ContinuedTime = continuedTime,
                UseEnergy     = energy,
                UseGold       = useGold,
                CreateDate    = DateTime.Now
            };
            var sender = DataSyncManager.GetDataSender();

            sender.Send(log);
        }
Пример #21
0
        protected override bool CreateUserRole(out IUser user)
        {
            user = null;
            GameUser gameUser = new GameDataCacheSet <GameUser>().FindKey(UserId.ToString());

            if (gameUser == null)
            {
                var    roleFunc = new RoleFunc();
                string msg;

                if (roleFunc.VerifyRange(UserName, out msg) ||
                    roleFunc.VerifyKeyword(UserName, out msg) ||
                    roleFunc.IsExistNickName(UserName, out msg))
                {
                    ErrorCode = Language.Instance.ErrorCode;
                    ErrorInfo = msg;
                    return(false);
                }
                gameUser = CreateRole();
                roleFunc.OnCreateAfter(gameUser);
            }
            user = new SessionUser(gameUser);
            UserLoginLog userLoginLog = new UserLoginLog();

            userLoginLog.UserId     = UserId.ToString();
            userLoginLog.SessionID  = Sid;
            userLoginLog.MobileType = (short)MobileType;
            userLoginLog.ScreenX    = ScreenX;
            userLoginLog.ScreenY    = ScreenY;
            userLoginLog.RetailId   = RetailID;
            userLoginLog.AddTime    = DateTime.Now;
            userLoginLog.State      = (short)LoginStatus.Logined;
            userLoginLog.DeviceID   = DeviceID;
            userLoginLog.Ip         = GetRealIP();
            userLoginLog.Pid        = gameUser.Pid;
            userLoginLog.UserLv     = gameUser.UserLv;
            var sender = DataSyncManager.GetDataSender();

            sender.Send(new[] { userLoginLog });

            return(true);
        }
Пример #22
0
        public static void SaveLog <T>(string property, string userID, object oldValue, object value)
        {
            string v1 = oldValue.ToString();
            string v2 = value.ToString();

            if (!Equals(v1, v2))
            {
                UserDataChangeLog changeLog = new UserDataChangeLog
                {
                    UserID     = userID,
                    EntityName = typeof(T).Name,
                    Name       = property,
                    PreValue   = v1,
                    Value      = v2,
                    ModifyDate = DateTime.Now
                };
                var sender = DataSyncManager.GetDataSender();
                sender.Send(changeLog);
            }
        }
Пример #23
0
        /// <summary>
        /// 新增装备合成log
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="opType"></param>
        /// <param name="itemID"></param>
        /// <param name="num"></param>
        /// <param name="synthesisInfo1"></param>
        /// <param name="synthesisInfo2"></param>
        /// <param name="useGold"></param>
        /// <param name="beforeLv"></param>
        /// <param name="afterLv"></param>
        public static void AppenItemSynthesisLog(string userID, short opType, int itemID, int num, CacheList <SynthesisInfo> synthesisInfo1, SynthesisInfo synthesisInfo2, int useGold, short beforeLv, short afterLv)
        {
            UserItemSynthesisLog log = new UserItemSynthesisLog
            {
                ID              = Guid.NewGuid().ToString(),
                UserID          = userID,
                OpType          = opType,
                ItemID          = itemID,
                OpNum           = num,
                DemandMaterial  = synthesisInfo1,
                SurplusMaterial = synthesisInfo2,
                UseGold         = useGold,
                BeforeLv        = beforeLv,
                AfterLv         = afterLv,
                CreateDate      = DateTime.Now
            };
            var sender = DataSyncManager.GetDataSender();

            sender.Send(log);
        }
Пример #24
0
        /// <summary>
        /// 玩家命运水晶log
        /// </summary>
        /// <param name="userID"></param>
        /// <param name="opType"></param>
        /// <param name="sumNum"></param>
        /// <param name="opNum"></param>
        /// <param name="useGold"></param>
        /// <param name="surplusGold"></param>
        /// <param name="totalGold"></param>
        public static void AppenCtystalLog(string userID, short opType, int crystalID, int coinNum, int useGold, CacheList <SynthesisInfo> synthesisInfo, short crystalLv, int exp)
        {
            UserCrystalLog log = new UserCrystalLog()
            {
                ID               = Guid.NewGuid().ToString(),
                UserID           = userID,
                OpType           = opType,
                CrystalID        = crystalID,
                CoinNum          = coinNum,
                UseGold          = useGold,
                SynthesisCrystal = synthesisInfo,
                CrystalLv        = crystalLv,
                Experience       = exp,
                CreateDate       = DateTime.Now
            };

            var sender = DataSyncManager.GetDataSender();

            sender.Send(log);
        }
        protected void StartImport()
        {
            var dataSyncItem = GetDataSyncItem();

            var               dataSyncManager = new DataSyncManager();
            LevelLogger       logger          = Manager.CreateLogger(dataSyncItem);
            OutputHandlerBase exporter        = Manager.CreateOutputHandler(dataSyncItem, logger);

            logger.AddKey(Utility.Constants.DataSyncItemId, dataSyncItem.ID.ToString());
            logger.AddData(Utility.Constants.DataSyncItem, dataSyncItem);
            var map = dataSyncManager.InstantiateDataMap(dataSyncItem, ref logger);

            if (map != null)
            {
                if (!String.IsNullOrEmpty(DataValue))
                {
                    map.Data = DataValue;
                }
                var options = new JobOptions("FromFileDataSyncWizard", "Job category name", Context.Site.Name, new FromFileDataSyncWizard(), "Run", new object[] { map, map.Logger, exporter });
                var job     = JobManager.Start(options);
                job.Options.CustomData = map.Logger;
                JobHandle = job.Handle.ToString();
                SheerResponse.Timer("CheckStatus", 5);
            }
            else
            {
                Active = "LastPage";
                BackButton.Disabled = true;
                if (logger.HasErrorsOrInfos())
                {
                    if (exporter != null)
                    {
                        ResultText.Value = exporter.Export();
                    }
                    else
                    {
                        ResultText.Value = "The Exporter class was null. Therefor the log was not written out.";
                    }
                }
            }
        }
Пример #26
0
        public override bool TakeAction()
        {
            GameUser user = new GameDataCacheSet <GameUser>().FindKey(Uid);

            if (user == null)
            {
                var    roleFunc = new RoleFunc();
                string msg;

                if (roleFunc.VerifyRange(UserName, out msg) ||
                    roleFunc.VerifyKeyword(UserName, out msg) ||
                    roleFunc.IsExistNickName(UserName, out msg))
                {
                    ErrorCode = LanguageManager.GetLang().ErrorCode;
                    ErrorInfo = msg;
                    return(false);
                }
                user = CreateRole();
                roleFunc.OnCreateAfter(user);
            }
            Current.User = user;
            UserLoginLog userLoginLog = new UserLoginLog();

            userLoginLog.UserId     = Uid;
            userLoginLog.SessionID  = Sid;
            userLoginLog.MobileType = (short)MobileType;
            userLoginLog.ScreenX    = ScreenX;
            userLoginLog.ScreenY    = ScreenY;
            userLoginLog.RetailId   = RetailID;
            userLoginLog.AddTime    = DateTime.Now;
            userLoginLog.State      = (short)LoginStatus.Logined;
            userLoginLog.DeviceID   = DeviceID;
            userLoginLog.Ip         = GetRealIP();
            userLoginLog.Pid        = user.Pid;
            userLoginLog.UserLv     = user.UserLv;
            var sender = DataSyncManager.GetDataSender();

            sender.Send(userLoginLog);

            return(true);
        }
Пример #27
0
        protected override void WriteLog(ChatMessage message)
        {
            var chatData = message as ChatData;

            if (chatData == null)
            {
                return;
            }

            string guildID = string.Empty;

            if (chatData.ChatType == ChatType.Guild)
            {
                GameUser user = new GameDataCacheSet <GameUser>().FindKey(chatData.FromUserID.ToString());
                if (user == null)
                {
                    user = new GameDataCacheSet <GameUser>().FindKey(chatData.ToUserID.ToString());
                }
                if (user != null)
                {
                    guildID = user.MercenariesID;
                }
            }
            var chatLog = new UserChatLog
            {
                ChatID       = Guid.NewGuid().ToString(),
                FromUserID   = chatData.FromUserID.ToString(),
                FromUserName = chatData.FromUserName,
                ToUserID     = chatData.ToUserID.ToString(),
                ToUserName   = chatData.ToUserName,
                ChatType     = chatData.ChatType,
                Content      = chatData.Content,
                SendDate     = chatData.SendDate,
                GuildID      = guildID,
            };

            using (var sender = DataSyncManager.GetDataSender())
            {
                sender.Send(chatLog);
            }
        }
Пример #28
0
        /// <summary>
        /// Initializes the data.
        /// </summary>
        /// <param name="clientUser">The client user.</param>
        public static void InitData(ClientUser clientUser)
        {
            var distributedLock = new SqlDistributedLock("InitData_" + clientUser.Name, SysConfig.DefaultConnStr);

            using (distributedLock.Acquire())
            {
                try
                {
                    clientUser = ProfileHelper.GetClientUser(clientUser.Name);
                    var syncManager = new DataSyncManager();
                    syncManager.LoadUserData(
                        clientUser.GetProfile().Postfix,
                        clientUser.UserFilter,
                        clientUser.CompetitorFilter);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
        }
        public void Work()
        {
            Item dataSyncItem = currentDB.Items[dataSyncItemId];

            logger = Manager.CreateLogger(dataSyncItem);

            if (dataSyncItem != null)
            {
                var dataSyncManager = new DataSyncManager();
                dataSyncManager.RunDataSyncJob(dataSyncItem, ref logger);

                //if (logBuilder != null)
                //{
                //    txtMessage.Text = logBuilder.LogBuilder.Length < 1 ? "The import completed successfully. \r\nStatus: \r\n" + logBuilder.GetItemStatusText() : logBuilder.LogBuilder + "\r\nStatus: \r\n" + logBuilder.GetItemStatusText();
                //}
                //else
                //{
                //    txtMessage.Text = "The log object was null.";
                //}
            }
        }
Пример #30
0
        public override void Process(JsonParameter[] paramList)
        {
            JsonParameterList parameters = JsonParameter.Convert(paramList);
            string            op         = parameters["op"];
            ChatKeyWord       keyword    = new ChatKeyWord()
            {
                KeyID   = parameters["KeyID"].ToNotNullString(),
                KeyWord = parameters["KeyWord"].ToNotNullString()
            };
            var sender = DataSyncManager.GetDataSender();

            if (op == "add" || op == "save")
            {
                sender.Send(new[] { keyword });
            }
            else if (op == "delete")
            {
                keyword.OnDelete();
                sender.Send(new[] { keyword });
            }
        }