public override void Parse()
        {
            base.Parse();
            if (!KeyValues.ContainsKey("sesskey"))
            {
                throw new GSException("sesskey is missing.");
            }
            int sessKey;

            if (!int.TryParse(KeyValues["sesskey"], out sessKey))
            {
                throw new GSException("sesskey is not a valid int.");
            }
            SessionKey = sessKey;
            if (!KeyValues.ContainsKey("connid"))
            {
                throw new GSException("connid is missing.");
            }
            int connectionID;

            if (!int.TryParse(KeyValues["connid"], out connectionID))
            {
                throw new GSException("connid format is incorrect.");
            }
            ConnectionID = connectionID;

            if (KeyValues.ContainsKey("challenge"))
            {
                IsClientLocalStorageAvailable = true;
                Challenge = KeyValues["challenge"];
            }
        }
Ejemplo n.º 2
0
        public override void Parse()
        {
            base.Parse();

            if (KeyValues.ContainsKey("pid") && KeyValues.ContainsKey("resp"))
            {
                //we parse profileid here
                int profileID;
                if (!int.TryParse(KeyValues["pid"], out profileID))
                {
                    throw new GSException("pid format is incorrect.");
                }
                ProfileId   = profileID;
                RequestType = AuthMethod.ProfileIDAuth;
            }
            else if (KeyValues.ContainsKey("authtoken") && KeyValues.ContainsKey("response"))
            {
                AuthToken   = KeyValues["authtoken"];
                Response    = KeyValues["response"];
                RequestType = AuthMethod.PartnerIDAuth;
            }
            else if (KeyValues.ContainsKey("keyhash") && KeyValues.ContainsKey("nick"))
            {
                RequestType = AuthMethod.CDkeyAuth;
                KeyHash     = KeyValues["keyhash"];
                Nick        = KeyValues["nick"];
            }
            else
            {
                throw new GSException("Unknown authp request method.");
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取场景进入条件码
        /// </summary>
        /// <param name="scene"></param>
        /// <returns></returns>
        public int GetSceneEntranceCondition(string scene)
        {
            scene = scene.Split('&')[0]; //处理一些特殊格式的

            var gamemap = ConfigTable.Get <GameMap>(scene);

            if (gamemap != null)
            {
                //大地图
                if (gamemap.Tags == "WORLDMAP")
                {
                    return(0);
                }

                //已经有地图打开的纪录
                string key = "SceneEntraceCondition_" + gamemap.Jyx2MapId;
                if (KeyValues.ContainsKey(key))
                {
                    return(int.Parse(GetKeyValues(key)));
                }

                //否则取配置表初始值
                var map = ConfigTable.Get <Jyx2Map>(gamemap.Jyx2MapId);
                if (map != null)
                {
                    return(map.EnterCondition);
                }
            }

            return(-1);
        }
        public override void Parse()
        {
            base.Parse();
            if (!KeyValues.ContainsKey("gamename"))
            {
                throw new GSException("gamename is missing.");
            }

            if (!KeyValues.ContainsKey("response"))
            {
                throw new GSException("response is missing.");
            }

            if (KeyValues.ContainsKey("port"))
            {
                int port;
                if (!int.TryParse(KeyValues["port"], out port))
                {
                    throw new GSException("port format is incorrect.");
                }
                Port = port;
            }

            GameName = KeyValues["gamename"];
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Asserts the validation.
        /// </summary>
        /// <param name="keys">The keys.</param>
        public void AssertValidation(params string[] keys)
        {
            var sb = new StringBuilder();

            foreach (var item in keys)
            {
                if (!KeyValues.ContainsKey(item))
                {
                    sb.AppendFormat("{0}, ", item);
                }
                else
                {
                    if (string.IsNullOrEmpty(KeyValues[item]))
                    {
                        sb.AppendFormat("No value for '{0}', which is required. ", item);
                    }
                }
                var result = sb.ToString();
                if (result.Length > 0)
                {
                    throw new InvalidDataException("Can't submit to Gateway - missing these input fields: " +
                                                   result.Trim().TrimEnd(','));
                }
            }
        }
        public override void Parse()
        {
            base.Parse();


            if (KeyValues.ContainsKey("pid"))
            {
                int profileID;
                if (!int.TryParse(KeyValues["pid"], out profileID))
                {
                    throw new GSException("pid format is incorrect.");
                }
                ProfileId = profileID;
            }

            if (KeyValues.ContainsKey("ptype"))
            {
                PersistStorageType storageType;
                if (!Enum.TryParse(KeyValues["ptype"], out storageType))
                {
                    throw new GSException("ptype format is incorrect.");
                }
                StorageType = storageType;
            }


            if (KeyValues.ContainsKey("dindex"))
            {
                int dataIndex;
                if (!int.TryParse(KeyValues["dindex"], out dataIndex))
                {
                    throw new GSException("dindex format is incorrect.");
                }
                DataIndex = dataIndex;
            }

            if (!KeyValues.ContainsKey("keys"))
            {
                throw new GSException("keys is missing.");
            }

            string keys = KeyValues["keys"];

            if (keys == "")
            {
                GetAllDataFlag = true;
            }
            else
            {
                string[] keyArray = keys.Split('\x1');
                foreach (var key in keyArray)
                {
                    Keys.Add(key);
                }
                GetAllDataFlag = false;
            }
        }
Ejemplo n.º 7
0
        public string GetModifiedEvent(int scene, int eventId)
        {
            string key = "evt_" + scene + "_" + eventId;

            if (KeyValues.ContainsKey(key))
            {
                return(KeyValues[key]);
            }
            return(null);
        }
Ejemplo n.º 8
0
        //JYX2场景相关记录
        public Dictionary <string, string> GetSceneInfo(string scene)
        {
            string key = "scene_" + scene;

            if (KeyValues.ContainsKey(key))
            {
                string str = KeyValues[key];
                return(str.ToStrDict());
            }

            return(null);
        }
        public override void Parse()
        {
            base.Parse();

            if (KeyValues.ContainsKey("dl"))
            {
                IsClientLocalStorageAvailable = true;
            }

            if (!KeyValues.ContainsKey("done"))
            {
                throw new GSException("done is missing.");
            }


            if (KeyValues["done"] == "1")
            {
                IsDone = true;
            }
            else if (KeyValues["done"] == "0")
            {
                IsDone = false;
            }
            else
            {
                throw new GSException("done format is incorrect.");
            }


            int sessKey;

            if (!int.TryParse(KeyValues["sesskey"], out sessKey))
            {
                throw new GSException("sesskey is not a valid int.");
            }
            SessionKey = sessKey;

            if (!KeyValues.ContainsKey("gamedata"))
            {
                throw new GSException("gamedata is missing.");
            }
            GameData = KeyValues["gamedata"];
            if (KeyValues.ContainsKey("connid"))
            {
                int connID;
                if (!int.TryParse(KeyValues["connid"], out connID))
                {
                    throw new GSException("connid is not a valid int.");
                }
                ConnectionID = connID;
            }
        }
        public override void Parse()
        {
            base.Parse();

            if (!KeyValues.ContainsKey("nick") || !KeyValues.ContainsKey("keyhash"))
            {
                throw new GSException("nick or keyhash is missing.");
            }

            if (KeyValues.ContainsKey("nick"))
            {
                Nick = KeyValues["nick"];
            }

            if (KeyValues.ContainsKey("keyhash"))
            {
                KeyHash = KeyValues["keyhash"];
            }
        }
        async Task LoadUserOrderWithStatus(string value)
        {
            LoadingManager.OnLoading();
            Status _statusvalue = (Status)Enum.Parse(typeof(Status), value);

            var orderData = await orderDataStore.GetOrdersOfUserWithSpecificStatus(App.LogUser.UserId, _statusvalue, App.TokenDto.Token);

            if (!KeyValues.ContainsKey("orderAdded"))
            {
                KeyValues.Add("orderAdded", orderData);
            }


            switch (_statusvalue)
            {
            case Status.Completed:
            {
                List <Order> tempData = new List <Order>();

                var data = await orderDataStore.GetOrdersOfUserWithSpecificStatusDifferent(KeyValues["orderAdded"], _statusvalue, App.LogUser.UserId);

                if (data != null)
                {
                    foreach (var item in KeyValues["orderAdded"])
                    {
                        if (!tempData.Any(o => o.OrderId == item.OrderId))
                        {
                            tempData.Add(item);
                        }
                    }

                    foreach (var item in data)
                    {
                        if (!tempData.Any(s => s.StoreId == item.StoreId))
                        {
                            tempData.Add(item);
                        }
                    }

                    KeyValues.Clear();
                    KeyValues.Add("orderAdded", tempData);


                    foreach (var item in KeyValues["orderAdded"])
                    {
                        if (!UserOrders.Any(s => s.OrderId == item.OrderId))
                        {
                            //Task.Run(async() =>
                            //{
                            //    item.StoreOrder = await StoreDataStore.GetItemAsync(item.StoreId.ToString());

                            //}).Wait();

                            item.StoreOrder = await StoreDataStore.GetItemAsync(item.StoreId.ToString());

                            var presenter = new OrderPresenter(item);

                            UserOrders.Add(presenter);
                        }
                    }
                }



                break;
            }

            case Status.NotSubmited:
            {
                List <Order> tempData = new List <Order>();

                var data = await orderDataStore.GetOrdersOfUserWithSpecificStatusDifferent(KeyValues["orderAdded"], _statusvalue, App.LogUser.UserId);

                if (data != null)
                {
                    foreach (var item in KeyValues["orderAdded"])
                    {
                        if (!tempData.Any(o => o.OrderId == item.OrderId))
                        {
                            tempData.Add(item);
                        }
                    }

                    foreach (var item in data)
                    {
                        if (!tempData.Any(s => s.StoreId == item.StoreId))
                        {
                            tempData.Add(item);
                        }
                    }

                    KeyValues.Clear();
                    KeyValues.Add("orderAdded", tempData);


                    foreach (var item in KeyValues["orderAdded"])
                    {
                        if (!UserOrders.Any(s => s.OrderId == item.OrderId))
                        {
                            item.StoreOrder = await StoreDataStore.GetItemAsync(item.StoreId.ToString());

                            var presenter = new OrderPresenter(item);

                            UserOrders.Add(presenter);
                        }
                    }
                }

                break;

                //UserOrders.Clear();

                //foreach (var item in orderData)
                //{

                //    item.StoreOrder = await StoreDataStore.GetItemAsync(item.StoreId.ToString());
                //    var presenter = new OrderPresenter(item);

                //    UserOrders.Add(presenter);
                //}
            }

            case Status.Submited:
            {
                List <Order> tempData = new List <Order>();

                var data = await orderDataStore.GetOrdersOfUserWithSpecificStatusDifferent(KeyValues["orderAdded"], _statusvalue, App.LogUser.UserId);

                if (data != null)
                {
                    foreach (var item in KeyValues["orderAdded"])
                    {
                        if (!tempData.Any(o => o.OrderId == item.OrderId))
                        {
                            tempData.Add(item);
                        }
                    }

                    foreach (var item in data)
                    {
                        if (!tempData.Any(s => s.StoreId == item.StoreId))
                        {
                            tempData.Add(item);
                        }
                    }

                    KeyValues.Clear();
                    KeyValues.Add("orderAdded", tempData);


                    foreach (var item in KeyValues["orderAdded"])
                    {
                        if (!UserOrders.Any(s => s.OrderId == item.OrderId))
                        {
                            item.StoreOrder = await StoreDataStore.GetItemAsync(item.StoreId.ToString());

                            var presenter = new OrderPresenter(item);

                            UserOrders.Add(presenter);
                        }
                    }
                }


                //UserOrders.Clear();

                //foreach (var item in orderData)
                //{

                //    item.StoreOrder = await StoreDataStore.GetItemAsync(item.StoreId.ToString());
                //    var presenter = new OrderPresenter(item);

                //    UserOrders.Add(presenter);
                //}

                break;
            }

            default:
                break;
            }

            LoadingManager.OffLoading();
        }
        public override void Parse()
        {
            base.Parse();


            if (!KeyValues.ContainsKey("pid"))
            {
                throw new GSException("length is missing.");
            }

            if (!KeyValues.ContainsKey("ptype"))
            {
                throw new GSException("length is missing.");
            }

            if (!KeyValues.ContainsKey("dindex"))
            {
                throw new GSException("length is missing.");
            }

            if (!KeyValues.ContainsKey("length"))
            {
                throw new GSException("length is missing.");
            }


            int profileID;

            if (!int.TryParse(KeyValues["pid"], out profileID))
            {
                throw new GSException("pid format is incorrect.");
            }
            ProfileId = profileID;

            int storageType;

            if (!int.TryParse(KeyValues["ptype"], out storageType))
            {
                throw new GSException("ptype is missing.");
            }

            if (!Enum.IsDefined(typeof(PersistStorageType), storageType))
            {
                throw new GSException("storage type is incorrect.");
            }

            StorageType = (PersistStorageType)storageType;

            int dindex;

            if (!int.TryParse(KeyValues["dindex"], out dindex))
            {
                throw new GSException("dindex format is incorrect.");
            }
            DataIndex = dindex;

            int length;

            if (!int.TryParse(KeyValues["length"], out length))
            {
                throw new GSException("length format is incorrect.");
            }
            Length = length;

            //we extract the key value data
            foreach (var d in KeyValues.Skip(5))
            {
                if (d.Key == "lid")
                {
                    break;
                }
                KeyValueString += @"\" + d.Key + @"\" + d.Value;
            }
        }