Пример #1
0
        public bool SavePlayerData(Middle.Player player)
        {
            string account_tp = player.Account;

            Middle.PlayerData playerData_tp = player.Data;

            IFormatter   formatter = new BinaryFormatter();
            MemoryStream stream    = new MemoryStream();

            try
            {
                formatter.Serialize(stream, playerData_tp);
                using (var db = new UserContext())
                {
                    var queryResult = db.PlayerDatas.Where(p => p.Account == account_tp).Select(p => p);
                    if (queryResult == null)
                    {
                        return(false);
                    }
                    (queryResult as Player).Data = stream.ToArray();

                    db.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                Console.WriteLine("[Error]Create Player Method is error.[Line:144]");
                Console.WriteLine(ex.Message);
                throw new ArgumentNullException($"PlayerData is null.[Line:144]");
            }
        }
Пример #2
0
        public Middle.PlayerData GetPlayerData(string account)
        {
            Middle.PlayerData playerDataRet = null;
            IFormatter        formatter     = new BinaryFormatter();
            Stream            stream        = new MemoryStream();

            try
            {
                using (var db = new UserContext())
                {
                    var queryResult = db.PlayerDatas.Where(p => p.Account == account).Select(p => p);
                    if (queryResult == null)
                    {
                        throw new ArgumentNullException($"PlayerData is null.[Line:128]");
                    }
                    stream.Write((queryResult as Player).Data, 0, (queryResult as Player).Data.Length);
                    if (stream == null)
                    {
                        throw new ArgumentNullException($"PlayerData is null.[Line:128]");
                    }
                    playerDataRet = formatter.Deserialize(stream) as Middle.PlayerData;
                }
                return(playerDataRet);
            }
            catch (Exception ex)
            {
                Console.WriteLine("[Error]Create Player Method is error.[Line:137]");
                Console.WriteLine(ex.Message);
                throw new ArgumentNullException($"PlayerData is null.[Line:128]");
            }
        }
Пример #3
0
        public bool CreatePlayer(string account)
        {
            if (!IsSafeString(account))
            {
                //非法字符
                return(false);
            }

            IFormatter   formatter = new BinaryFormatter();
            MemoryStream stream    = new MemoryStream();

            Middle.PlayerData playerData = new Middle.PlayerData();

            try
            {
                formatter.Serialize(stream, playerData);
            }
            catch (IOException ex)
            {
                Console.WriteLine("[Error]Create Player Method is error.[Line:75]");
                Console.WriteLine(ex.Message);
                return(false);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(false);
            }

            byte[] byteData = stream.ToArray();
            Player player   = new Player(account, byteData);

            using (var db = new UserContext())
            {
                db.PlayerDatas.Add(player);

                db.SaveChanges();
            }
            return(true);
        }