public void TestUpdateRequest()
        {
            DataBaseUpdateRequest uReq = new DataBaseUpdateRequest("DataBaseItem", "Title = 'Cat'", "Id = '3'");
            var result = DatabaseService.PerformRequest <DataBaseItem> (uReq);

            Assert.NotNull(result);
        }
Пример #2
0
        /// <summary>
        /// use this method just for generating a new UID.
        /// </summary>
        /// <param name="_username_"></param>
        /// <param name="_socket_"></param>
        /// <returns></returns>
        public static async Task <UID> GenerateUID(StrongString _username_, IPlayerSocket _socket_)
        {
            int          myIndex = Randomic.GetRandom(MIN_SERVER_INDEX, MAX_SERVER_INDEX);
            var          _s      = ThereIsServer.ServersInfo.ServerManager.Get_UID_Generation_Server(myIndex);
            StrongString _target = ServerManager.Generation_Location_Name;
            UID          uid;
            ulong        _value;

            for (var i = 0; ; i++)
            {
                var existing = await ThereIsServer.Actions.GetAllContentsByRef(_s, _target);

                if (existing.IsDeadCallBack || ThereIsServer.ServerSettings.HasConnectionClosed)
                {
                    NoInternetConnectionSandBox.PrepareConnectionClosedSandBox();
                    return(null);
                }
                _value = existing.Decode().ToUInt64();
                _value++;
                var _req = new DataBaseUpdateRequest(UID_MESSAGE, _value.ToString(UID_FORMAT),
                                                     existing.Sha.GetStrong());
                var _result = await ThereIsServer.Actions.UpdateDataOnce(_s, _target, _req);

                if (_result.IsDeadCallBack)
                {
                    continue;
                }
                if (ThereIsServer.ServerSettings.HasConnectionClosed || i >= MAX_TRY)
                {
                    return(null);
                }
                break;
            }
            //----------------------
            uid     = new UID(myIndex, _value, _socket_, _username_);
            _s      = ThereIsServer.ServersInfo.ServerManager.Get_UID_Server(uid);
            _target = uid.GetValue() + UID_Lcation_Name;
            var _creation = new DataBaseCreation(UID_MESSAGE, QString.Parse(uid.GetForServer()));
            await ThereIsServer.Actions.CreateData(_s, _target, _creation);

            //----------------------
            _s        = ThereIsServer.ServersInfo.ServerManager.Get_UID_Server(_username_);
            _target   = _username_ + USERNAME_TO_UID;
            _creation = new DataBaseCreation(UID_MESSAGE, QString.Parse(uid.GetValue()));
            await ThereIsServer.Actions.CreateData(_s, _target, _creation);

            //----------------------


            return(uid);
        }
Пример #3
0
        private async Task <DataBaseDataChangedInfo> UpdateChatMessages()
        {
            //---------------------------------------------
            var _s        = ThereIsServer.ServersInfo.ServerManager.Get_Channel_Server(Channel);
            var _existing = await ThereIsServer.Actions.GetAllContentsByRef(_s, ChatDataBaseLocation);

            //---------------------------------------------
            if (_existing.IsDeadCallBack || ThereIsServer.ServerSettings.HasConnectionClosed)
            {
                NoInternetConnectionSandBox.PrepareConnectionClosedSandBox();
                return(null); // don't set ServerSettings.IsWaitingForServerChecking = false;
            }
            //---------------------------------------------
            var _req = new DataBaseUpdateRequest(MESSAGE, QString.Parse(GetForServer()), _existing[0].Sha);

            return(await ThereIsServer.Actions.UpdateData(_s, ChatDataBaseLocation, _req));

            //---------------------------------------------
        }
Пример #4
0
        public async Task <DataBaseDataChangedInfo> UpdatePlayer()
        {
            //---------------------------------------------
            var _s       = ThereIsServer.ServersInfo.ServerManager.Get_Player_Server(Socket);
            var _target  = UID.GetValue() + EndFileName_Player;
            var existing = await ThereIsServer.Actions.GetAllContentsByRef(_s, _target);

            //---------------------------------------------
            if (existing.IsDeadCallBack || ThereIsServer.ServerSettings.HasConnectionClosed)
            {
                NoInternetConnectionSandBox.PrepareConnectionClosedSandBox();
                return(null);
            }
            //---------------------------------------------
            var _req = new DataBaseUpdateRequest(PLAYER_MESSAGE, PlayerGetForServer(), existing.Sha.GetStrong());

            return(await ThereIsServer.Actions.UpdateData(_s, _target, _req));

            //---------------------------------------------
        }
Пример #5
0
        //-------------------------------------------------
        #region online Method's Region
        public async Task <DataBaseDataChangedInfo> UpdateLevelRankings()
        {
            //---------------------------------------------
            var _s       = ThereIsServer.ServersInfo.ServerManager.Get_Kingdom_Server(Provider);
            var _target  = LevelRankings_LOC;
            var existing = await ThereIsServer.Actions.GetAllContentsByRef(_s, _target);

            //---------------------------------------------
            if (existing.IsDeadCallBack || ThereIsServer.ServerSettings.HasConnectionClosed)
            {
                NoInternetConnectionSandBox.PrepareConnectionClosedSandBox();
                return(null); // don't set ServerSettings.IsWaitingForServerChecking = false;
            }
            //---------------------------------------------
            var _req = new DataBaseUpdateRequest(MESSAGE, QString.Parse(GetForServer()), existing.Sha);

            return(await ThereIsServer.Actions.UpdateData(_s, _target, _req));

            //---------------------------------------------
        }
Пример #6
0
 public async Task <DataBaseDataChangedInfo> UpdatePlayerInfo(DataBaseContent existing)
 {
     try
     {
         //-----------------------------------------
         var _target = UID.GetValue() + PI_Server_LOC;
         var _s      = ThereIsServer.ServersInfo.ServerManager.Get_PlayerInfo_Server(Socket);
         //-----------------------------------------
         if (existing.IsDeadCallBack || ThereIsServer.ServerSettings.HasConnectionClosed)
         {
             NoInternetConnectionSandBox.PrepareConnectionClosedSandBox();
             return(null);
         }
         var _req = new DataBaseUpdateRequest(MESSAGE, QString.Parse(PlayerInfoGetForServer()), existing.Sha);
         return(await ThereIsServer.Actions.UpdateData(_s, _target, _req));
     }
     catch
     {
         return(null);
     }
 }
Пример #7
0
        public static async Task <DataBaseDataChangedInfo> SavePlayerTroops(Troop[] troops, Player _p)
        {
            StrongString myString = GetForServer(troops);
            //---------------------------------------------
            var _s       = ThereIsServer.ServersInfo.ServerManager.Get_Troops_Server(_p.Socket);
            var _target  = _p.UID.GetValue() + EndFileName;
            var existing = await ThereIsServer.Actions.GetAllContentsByRef(_s, _target);

            //---------------------------------------------
            if (existing.IsDeadCallBack || ThereIsServer.ServerSettings.HasConnectionClosed)
            {
                NoInternetConnectionSandBox.PrepareConnectionClosedSandBox();
                return(null);
            }
            //---------------------------------------------
            var _req = new DataBaseUpdateRequest(TROOP_MESSAGE, QString.Parse(myString), existing.Sha);

            return(await ThereIsServer.Actions.UpdateData(_s, _target, _req));

            //---------------------------------------------
        }
Пример #8
0
        /// <summary>
        /// Save Player's troops(Update them to the server.)
        /// </summary>
        /// <param name="troops"></param>
        public static async void SavePlayerTroops(MagicalTroop troops)
        {
            StrongString myString = GetForServer(troops);
            //---------------------------------------------
            var _p       = ThereIsServer.GameObjects.MyProfile;
            var _s       = ThereIsServer.ServersInfo.ServerManager.Get_MagicalTroops_Server(_p.Socket);
            var _target  = _p.UID.GetValue() + MT_Server_LOC;
            var existing = await ThereIsServer.Actions.GetAllContentsByRef(_s, _target);

            //---------------------------------------------
            if (existing.IsDeadCallBack || ThereIsServer.ServerSettings.HasConnectionClosed)
            {
                NoInternetConnectionSandBox.PrepareConnectionClosedSandBox();
                return;
            }
            //---------------------------------------------
            var _req = new DataBaseUpdateRequest(MTROOPS_MESSAGE, QString.Parse(myString), existing.Sha);
            await ThereIsServer.Actions.UpdateData(_s, _target, _req);

            //---------------------------------------------
        }
Пример #9
0
        /// <summary>
        /// Save Player's Resources(Update them to the server.)
        /// </summary>
        /// <param name="troops"></param>
        public static async Task <DataBaseDataChangedInfo> SavePlayerResources(PlayerResources _r, Player _p)
        {
            StrongString myString = _r.GetForServer();
            //---------------------------------------------
            var _s        = ThereIsServer.ServersInfo.ServerManager.Get_Resources_Server(_p.Socket);
            var _target   = _p.UID.GetValue() + EndFileName;
            var _existing = await ThereIsServer.Actions.GetAllContentsByRef(_s, _target);

            //---------------------------------------------
            if (_existing == null || ThereIsServer.ServerSettings.HasConnectionClosed)
            {
                NoInternetConnectionSandBox.PrepareConnectionClosedSandBox();
                return(null); // don't set ServerSettings.IsWaitingForServerChecking = false;
            }
            //---------------------------------------------
            var _req = new DataBaseUpdateRequest(RES_MESSAGE, QString.Parse(myString), _existing.Sha);

            return(await ThereIsServer.Actions.UpdateData(_s, _target, _req));

            //---------------------------------------------
        }
Пример #10
0
        //-------------------------------------------------
        #region Online Method's Region
        /// <summary>
        /// Update the hero's info.
        /// even if you did not change any information,
        /// this method will do it's work.
        /// so don't use it if you did not change any information.
        /// </summary>
        /// <returns></returns>
        public async Task <DataBaseDataChangedInfo> UpdateHero()
        {
            StrongString myString = GetForServer();
            //---------------------------------------------
            var _p        = ThereIsServer.GameObjects.MyProfile;
            var _target   = _p.UID.GetValue() + LOC_SEPARATOR + HeroID + SERVER_LOC;
            var _s        = ThereIsServer.ServersInfo.ServerManager.Get_HeroInfo_Server(this);
            var _existing = await ThereIsServer.Actions.GetAllContentsByRef(_s, _target);

            //---------------------------------------------
            if (_existing.IsDeadCallBack || ThereIsServer.ServerSettings.HasConnectionClosed)
            {
                NoInternetConnectionSandBox.PrepareConnectionClosedSandBox();
                return(null); // don't set ServerSettings.IsWaitingForServerChecking = false;
            }
            //---------------------------------------------
            var _req = new DataBaseUpdateRequest(HERO_MESSAGE, QString.Parse(myString), _existing.Sha);

            return(await ThereIsServer.Actions.UpdateData(_s, _target, _req));

            //---------------------------------------------
        }