public static void ProcessConfigResponse(ResponseEvent response)
 {
     if(response.data != null){
         GameConfigData = response.data.Print(false);
         SpilUnityImplementationBase.fireConfigUpdatedEvent();
     }
 }
 public static void ProcessGameStateResponse(ResponseEvent response)
 {
     if (response.action != null) {
         if (response.action.ToLower ().Trim ().Equals ("update")) {
             ProcessMyGameStateResponse (response.data);
         } else if (response.action.ToLower ().Trim ().Equals ("otherusers")) {
             ProcessOtherUsersGameStateResponse (response.data);
         }
     }
 }
Exemplo n.º 3
0
        public PersonaClient(string assertion, string audience, ResponseEvent onResponse, ExceptionEvent onException = null)
        {
            Assertion = assertion;
            Audience = audience;

            OnResponse = onResponse;
            OnException = onException;

            Request = null;
            PostBytes = null;
        }
Exemplo n.º 4
0
        public static void ProcessRewardResponse(ResponseEvent response)
        {
            string reason = "";

            if (RewardManager.rewardFeatureType.ToString().ToLower().Trim().Equals(RewardManager.DeepLink))
            {
                reason = PlayerDataUpdateReasons.Deeplink;
            }
            else if (RewardManager.rewardFeatureType.ToString().ToLower().Trim().Equals(RewardManager.PushNotification))
            {
                reason = PlayerDataUpdateReasons.PushNotification;
            }

            if (RewardManager.rewardType == Spil.TokenRewardTypeEnum.EXTERNAL)
            {
                JSONObject rewards = new JSONObject(JSONObject.Type.ARRAY);

                JSONObject reward = new JSONObject();
                reward.AddField("externalId", Spil.TokenExternalRewardId);
                reward.AddField("amount", Spil.TokenRewardAmount);
                reward.AddField("type", RewardManager.rewardType.ToString());

                rewards.Add(reward);

                JSONObject json = new JSONObject();
                json.AddField("reward", rewards);
                json.AddField("rewardType", RewardManager.rewardFeatureType.ToString());

                SpilUnityImplementationBase.fireRewardTokenClaimed(json.Print());
            }
            else
            {
                int id     = Spil.TokenRewardId;
                int amount = Spil.TokenRewardAmount;

                if (id == 0 || amount == 0)
                {
                    SpilLogging.Error("Token Rewards not configured for Editor!");
                }

                if (RewardManager.rewardType == Spil.TokenRewardTypeEnum.CURRENCY)
                {
                    SpilUnityEditorImplementation.pData.WalletOperation("add", id, amount, reason, null, "DeepLink", null);
                }
                else if (RewardManager.rewardType == Spil.TokenRewardTypeEnum.ITEM)
                {
                    SpilUnityEditorImplementation.pData.InventoryOperation("add", id, amount, reason, null, "DeepLink", null);
                }
            }
        }
Exemplo n.º 5
0
        private static void CheckLoginResponse(bool send, DecodeRspResult res, Action <ResponseEvent> callback)
        {
            CheckLoginStatus.SetStatus(CheckLoginStatus.StatusType.Offline);
            var rspWrap1 = res.RspWrap1;
            var eve      = new ResponseEvent(rspWrap1.ErrCode, rspWrap1.ErrMsg, rspWrap1.Seq, res.Body);

            Debugger.Log("CheckLoginResponse {0}", eve);
            if (eve.Code == ErrCode.EcOk)
            {
                CheckLoginStatus.SetStatus(CheckLoginStatus.StatusType.Checked);
            }
            callback?.Invoke(eve);
            return;
        }
Exemplo n.º 6
0
 public void onTradeResponse(object sender, ResponseEvent e)
 {
     if (__cTrades != null)
     {
         if (e.ResponseType == Orders.ResponseType.Deal)
         {
             bool bSuccess = __cTrades.AddTrades(e.OpenTrades, e.CloseTrades);
             if (bSuccess)
             {
                 this.Refresh();
             }
         }
     }
 }
        public static void ProcessPackagesResponse(ResponseEvent response)
        {
            if (response.data == null)
            {
                SpilUnityImplementationBase.firePackagesNotAvailable();
                return;
            }

            if (response.data.HasField("packages"))
            {
                JSONObject json = new JSONObject();
                json.AddField("data", response.data.GetField("packages").Print(false));
                PackagesManager.GamePackagesData = JsonHelper.getObjectFromJson <List <PackageData> >(json.GetField("data").str);
            }
        }
Exemplo n.º 8
0
        /**
         * 匹配超时广播
         */
        public void OnMatchTimeout(BroadcastEvent eve)
        {
            var bst = (MatchTimeoutBst)eve.Data;

            if (bst.MatchType == MatchType.PlayerComplex)
            {
            }
            else
            {
                return;
            }
            var matchErrCode = bst.ErrCode != 0 ? bst.ErrCode : (int)QAppProtoErrCode.EcMatchTimeout;
            var errCode      = SdkUtil.ErrCodeConvert(matchErrCode);
            var errMsg       = SdkUtil.ErrCodeConvert(errCode, "");
            var e            = new ResponseEvent(errCode, errMsg, "", new object());
        }
Exemplo n.º 9
0
        /// <summary>
        /// Returns a list of ResponseEvents instances to the specified question for the specified course & user
        /// </summary>
        /// <param name="courseId"></param>
        /// <param name="questionId"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public static ResponseEvent GetResponseByCourseQuestionAndUser(Guid courseId, Guid questionId, Guid userId)
        {
            using (var db = new CmsModelContainer())
            {
                var enrollment = db.Enrollments.FirstOrDefault(e => e.Course.Id == courseId &&
                                                               e.Students.Id == userId);
                var response = new ResponseEvent();
                if (enrollment != null)
                {
                    response = enrollment.ResponseEvents.FirstOrDefault(e =>
                                                                        e.ResponseOption.QuestionId == questionId);
                }

                return(response);
            }
        }
Exemplo n.º 10
0
 public void SaveRoomInfo(ResponseEvent eve)
 {
     if (eve.Code != ErrCode.EcOk)
     {
         return;
     }
     if (eve.Data != null)
     {
         var roomInfo = new RoomInfo();
         roomInfo.MergeFrom((ByteString)eve.Data);
         this.SetRoomInfo(roomInfo);
     }
     else
     {
         this.SetRoomInfo(null);
     }
 }
Exemplo n.º 11
0
    private IEnumerator ProcessRequest(string endpoint, RequestArguments args, ResponseEvent onSuccess)
    {
        using (UnityWebRequest www = UnityWebRequest.Get(baseUri + endpoint + baseArgs + args)) {
            yield return(www.Send());

            circle.SetActive(false);
            //if(www.isNetworkError || www.isHttpError) {
            if (www.isError)
            {
                onError.Invoke(www.error);
            }
            else
            {
                onSuccess.Invoke(www.downloadHandler.text);
            }
        }
    }
        public static void ProcessPackagesResponse(ResponseEvent response)
        {
            if(response.data != null){
                if(response.data.HasField("packages")){
                    JSONObject json = new JSONObject();
                    json.AddField("data", response.data.GetField("packages").Print(false));
                    GamePackagesData = JsonHelper.getObjectFromJson<List<PackageData>>(json.GetField("data").str);
                }

                if(response.data.HasField("promotions")){
                    JSONObject json = new JSONObject();
                    json.AddField("data", response.data.GetField("promotions").Print(false));
                    GamePromotionData = JsonHelper.getObjectFromJson<List<PromotionData>>(json.GetField("data").str);
                }

            }
        }
Exemplo n.º 13
0
    void OnListenerInit(ResponseEvent eve)
    {
        if (eve.Code == ErrCode.EcOk)
        {
            Global.Room = new Room(null);
            Debug.Log("初始化成功");
            Listener.Add(Global.Room);
            // TODO: more

            if (waitStartInfo != null)
            {
                AutoJoinRoom();
            }
        }

        InitBroadcast();
    }
Exemplo n.º 14
0
        /// <summary>
        /// Execute a SQL query on the configured database
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="sqlEvent"></param>
        private void ExecuteSqlQuery(object sender, SqlQueryEvent sqlEvent)
        {
            // SQL connection string set from the configuration
            SqlConnection connection = new SqlConnection(m_botSettings.SqlConnectString);

            try
            {
                // Create the response to send back to the requester
                ResponseEvent response = new ResponseEvent();

                // Set the command connection
                sqlEvent.Command.Connection = connection;

                // open the connection
                connection.Open();

                // Execute the select command
                SqlDataReader dataReader = sqlEvent.Command.ExecuteReader(CommandBehavior.CloseConnection);

                // Set the number of records affected
                sqlEvent.RecordsAffected = dataReader.RecordsAffected;

                // Set the sql event data
                sqlEvent.QueryData.Load(dataReader);

                // Close the data reader
                dataReader.Close();

                // Set the response data
                response.e           = sqlEvent;
                response.destination = sender;
                m_eventQueue.Add(response);
            }
            catch (SqlException ex)
            {
                // Send an arena message with the error
                ChatEvent errorMsg = new ChatEvent();
                errorMsg.ChatType  = ChatTypes.Arena;
                errorMsg.SoundCode = SoundCodes.Fart;
                errorMsg.Message   = ex.Message;

                // Set the response data
                SendGameEvent(errorMsg);
            }
        }
Exemplo n.º 15
0
        protected override void MessageRecieved(object sender, byte[] recievedMessage)
        {
            string responseStr = Encoding.ASCII.GetString(recievedMessage);

            responseStr = responseStr.Replace(" ", "");
            responseStr = responseStr.Replace("\r", "");
            responseStr = responseStr.Replace("\n", "");
            Log.Debug("Mes 回复:" + responseStr);
            if (responseStr == "0")
            {
                mesResult = true;
                ResponseEvent.Set();
            }
            else if (responseStr == "1")
            {
                mesResult = false;
                ResponseEvent.Set();
            }
        }
Exemplo n.º 16
0
 /// <summary>
 /// 收到监听请求回调
 /// </summary>
 /// <param name="iAsyncResult"></param>
 public void GetContextAsyncCallback(IAsyncResult iAsyncResult)
 {
     if (iAsyncResult.IsCompleted)
     {
         HttpListenerContext httpListenerContext = listerner.EndGetContext(iAsyncResult);
         httpListenerContext.Response.StatusCode = 200;
         if (ResponseEvent != null)
         {
             ResponseEvent.BeginInvoke(httpListenerContext, null, null);
         }
         else
         {
             System.IO.BinaryWriter br = new System.IO.BinaryWriter(httpListenerContext.Response.OutputStream, new UTF8Encoding());
             httpListenerContext.Response.Close();
             br.Close();
         }
     }
     listerner.BeginGetContext(AsyncCallback, null);
 }
Exemplo n.º 17
0
        // 初始化回调函数
        public static void SdkInitCallback(bool success, ResponseEvent eve)
        {
            // 修改Sdk状:
            if (!SdkStatus.IsIniting())
            {
                return;
            }
            // 初始化成功
            if (success)
            {
                SdkStatus.SetStatus(SdkStatus.StatusType.Inited);
            }

            //  初始化失败
            if (!success)
            {
                SdkStatus.SetStatus(SdkStatus.StatusType.Uninit);
            }

            // 回调
            var code = SdkStatus.IsInited() ? ErrCode.EcOk : ErrCode.EcSdkUninit;

            if (!success && eve != null && eve.Code != ErrCode.EcOk)
            {
                code = eve.Code;
            }

            // 错误信息
            var msg = SdkStatus.IsInited() ? "初始化成功" : "初始化失败";

            // 服务器时间戳
            var   initRsp    = (InitRsp)eve?.Data ?? null;
            ulong serverTime = initRsp?.ServerTime ?? 0;

            var e = new ResponseEvent(code, msg, null, new InitRsp(serverTime));

            Sdk.Instance.InitRsp(e);
            if (!SdkStatus.IsInited())
            {
                Sdk.Uninit();
            }
        }
Exemplo n.º 18
0
 private void Update()
 {
     while (msgQueue.Count > 0)
     {
         INetworkMessage message;
         if (!msgQueue.TryDequeue(out message))
         {
             continue;
         }
         if (responseActions.Count > 0 && responseActions.ContainsKey(message.Command))
         {
             var action = responseActions[message.Command].Dequeue();
             if (action != null)
             {
                 action.Invoke(message);
             }
         }
         ResponseEvent?.Invoke(message);
     }
 }
Exemplo n.º 19
0
        public void HandleEvent(ManagerEvent e)
        {
            // should always be a ResponseEvent, anyway...
            if (e is Event.ResponseEvent)
            {
                ResponseEvent responseEvent = (ResponseEvent)e;
                events.AddEvent(responseEvent);
            }

            // finished?
            if (action.ActionCompleteEventClass().IsAssignableFrom(e.GetType()))
            {
                lock (events)
                    events.Complete = true;
                if (events.Response != null)
                {
                    autoEvent.Set();
                }
            }
        }
Exemplo n.º 20
0
		private void LargeOrderService_onResponse(object sender, ResponseEvent e) {
			switch (e.ResponseType) {
				case ResponseType.Cancel:
					TradeOrder cCancel = e.TradeOrder as TradeOrder;
					lock (__oLock) {
						lock (__cTrades) {
							string sName = cCancel.Name;
							if (__cTrades.ContainsKey(sName)) {
								__cTrades.Remove(sName);
							}
						}

						if (cCancel.BarNumber < 0 && cCancel.Contracts > 0) {
							base.Send(cCancel.Action, cCancel.Category, (cCancel.Category == OrderCategory.Market) ? AdjustPrice(cCancel.Action) : cCancel.Price, cCancel.Contracts, cCancel.IsReverse, 0, cCancel.Name);
						}
					}
					break;
				case ResponseType.Deal:
					TradeOrder cDeal = e.TradeOrder as TradeOrder;
					lock (__cTrades) {
						TradeOrder cOrder = null;
						string sName = cDeal.Name;
						if (__cTrades.TryGetValue(sName, out cOrder)) {
							if (cOrder.Contracts == 0) {
								__cTrades.Remove(sName);
							}
						}
					}
					break;
				case ResponseType.Trust:
					TradeOrder cTrust = e.TradeOrder as TradeOrder;
					lock (__cTrades) {
						string sName = cTrust.Name;
						if (__cTrades.ContainsKey(sName)) {
							__cTrades.Remove(sName);
						}
						__cTrades.Add(sName, cTrust);
					}
					break;
			}
		}
Exemplo n.º 21
0
        /// <summary>
        /// Execute a SQL command on the configured database
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="sqlEvent"></param>
        private void ExecuteSqlCommand(object sender, SqlCommandEvent sqlEvent)
        {
            // SQL connection string set from the configuration
            using (SqlConnection connection = new SqlConnection(m_botSettings.SqlConnectString))
            {
                try
                {
                    // Create the response to send back to the requester
                    ResponseEvent response = new ResponseEvent();

                    // Set the command connection
                    sqlEvent.Command.Connection = connection;

                    // open the connection
                    connection.Open();

                    // Set the number of records affected
                    sqlEvent.RecordsAffected = sqlEvent.Command.ExecuteNonQuery();

                    // Close the connection
                    connection.Close();

                    // Set the response data
                    response.e           = sqlEvent;
                    response.destination = sender;
                    m_eventQueue.Add(response);
                }
                catch (Exception ex)
                {
                    // Send an arena message with the error
                    ChatEvent errorMsg = new ChatEvent();
                    errorMsg.ChatType   = ChatTypes.Private;
                    errorMsg.PlayerName = "PsyOps";
                    errorMsg.SoundCode  = SoundCodes.Fart;
                    errorMsg.Message    = ex.Message;

                    // Set the response data
                    m_eventQueue.Add(errorMsg);
                }
            }
        }
Exemplo n.º 22
0
 /// <summary>
 /// 收到监听请求回调
 /// </summary>
 /// <param name="ia"></param>
 public void GetContextAsyncCallback(IAsyncResult ia)
 {
     if (ia.IsCompleted)
     {
         var ctx = listerner.EndGetContext(ia);
         ctx.Response.StatusCode = 200;
         if (ResponseEvent != null)
         {
             ResponseEvent.BeginInvoke(ctx, null, null);
         }
         else
         {
             System.IO.BinaryWriter br = new System.IO.BinaryWriter(ctx.Response.OutputStream, new UTF8Encoding());
             br.Write("error: 服务器未处理");
             ctx.Response.Close();
             br.Close();
             br.Dispose();
         }
     }
     listerner.BeginGetContext(ac, null);
 }
Exemplo n.º 23
0
		private void GridOrderService_onResponse(object sender, ResponseEvent e) {
			if (e.ResponseType == ResponseType.Update) {  //回報類型為 Update 都忽略(此為盈利更新通知)
				return;
			}

			TradeOrder cOrder = e.TradeOrder as TradeOrder;
			string[] sNames = cOrder.Name.Split('|');
			
			_Truster cTruster = null;
			lock (__cTrusts) {
				__cTrusts.TryGetValue(sNames[0], out cTruster);
			}

			if (cTruster != null) {
				switch (e.ResponseType) {
					case ResponseType.Cancel:
					case ResponseType.Deal:
						if (e.ResponseType == ResponseType.Cancel) {
							cTruster.CheckCancel(cOrder);
						} else {
							cTruster.CheckDeal(cOrder);
						}

						if (cTruster.IsEmpty) { //如果已經交易完畢
							lock (__cTrusts) {
								__cTrusts.Remove(sNames[0]);
							}

							if (cTruster.IsClosed && __bClosedFlag) {
								__bClosedFlag = false;
							}
						}
						break;
					case ResponseType.Trust:
						cTruster.CheckTrust(cOrder);
						break;
				}
			}
		}
        public static void ProcessOverlayResponse(ResponseEvent response)
        {
            string url = null;

            if(response.data.HasField("url")){
                url = response.data.GetField("url").Print(false);
            }

            if(response.action.ToLower().Trim().Equals("show")){
                if(response.eventName.ToLower().Equals("splashscreen")){
                    ShowSplashScreen(response.data, url);
                } else if(response.eventName.ToLower().Equals("dailybonus")){
                    ShowDailyBonus(response.data, url);
                }
            } else if(response.action.ToLower().Trim().Equals("notavailable")){
                if(response.eventName.ToLower().Equals("splashscreen")){
                    SpilUnityEditorImplementation.fireSplashScreenNotAvailable();
                } else if(response.eventName.ToLower().Equals("dailybonus")){
                    SpilUnityEditorImplementation.fireDailyBonusNotAvailable();
                }
            }
        }
 public static void ProcessLiveEventResponse(ResponseEvent response)
 {
     if (response.data != null)
     {
         if (response.action.ToLower().Trim().Equals("request"))
         {
             LiveEventManager.ProcessRequestLiveEvent(response.data);
         }
         else if (response.action.ToLower().Trim().Equals("nextstage"))
         {
             LiveEventManager.ProcessAdvanceToNextStage(response.data);
         }
         else if (response.action.ToLower().Trim().Equals("applyitems"))
         {
             LiveEventManager.ProcessApplyItems(response.data);
         }
         else if (response.action.ToLower().Trim().Equals("notavailable"))
         {
             SpilUnityImplementationBase.fireLiveEventNotAvailable();
         }
     }
 }
Exemplo n.º 26
0
        protected override void MessageRecieved(object sender, byte[] recievedMessage)
        {
            string startStr = "<";
            string endStr   = "\r";

            ResponseTemp = ResponseTemp + Encoding.ASCII.GetString(recievedMessage);
            int startPos = ResponseTemp.IndexOf(startStr);
            int endPos   = ResponseTemp.IndexOf(endStr) + 1;

            if (endPos > 0)
            {
                string oneResult = ResponseTemp.Substring(startPos, endPos - startPos);
                ResponseTemp = ResponseTemp.Substring(endPos);
                int WriteResponse = oneResult.IndexOf("WD");
                int ReadResponse  = oneResult.IndexOf("RD");
                int ErrorResponse = oneResult.IndexOf("!");

                if (ErrorResponse > 0)
                {
                    throw new Exception("plc错误:" + oneResult);
                }
                if (WriteResponse > 0)
                {
                }
                else if (ReadResponse > 0)
                {
                    ReadResponse += 2;
                    int dataLength = (endPos - ReadResponse - 3) / 4;

                    DataBytes = new byte[2 * dataLength];
                    for (int i = 0; i < 2 * dataLength; i++)
                    {
                        DataBytes[i] = Convert.ToByte(oneResult.Substring(ReadResponse + 2 * i, 2), 16);
                    }
                }
                ResponseEvent.Set();
            }
        }
Exemplo n.º 27
0
        protected override void MessageRecieved(object sender, byte[] recievedMessage)
        {
            string responseStr = Encoding.ASCII.GetString(recievedMessage);

            Log.Debug("Mes 回复:" + responseStr);
            responseStr = responseStr.Replace(" ", "");
            responseStr = responseStr.Replace("\r", "");
            responseStr = responseStr.Replace("\n", "");
            int endIndex = responseStr.IndexOf("^");

            endIndex    = endIndex == -1 ? responseStr.Length : endIndex;
            responseStr = responseStr.Substring(0, endIndex);
            if (responseStr == "OK")
            {
                mesResult = true;
                ResponseEvent.Set();
            }
            else if (responseStr == "NG")
            {
                mesResult = false;
                ResponseEvent.Set();
            }
        }
Exemplo n.º 28
0
        protected override void MessageRecieved(object sender, byte[] recievedMessage)
        {
            byte[] _responseBytes = new byte[responseBytesTemp.Length + recievedMessage.Length];
            responseBytesTemp.CopyTo(_responseBytes, 0);
            recievedMessage.CopyTo(_responseBytes, responseBytesTemp.Length);

            int dataLength = _responseBytes[7] - 2;

            if (_responseBytes.Length == 11 + dataLength)
            {
                if (dataLength > 0)
                {
                    DataBytes = new byte[dataLength];
                    Array.Copy(_responseBytes, 11, DataBytes, 0, dataLength);
                }
                responseBytesTemp = new byte[0];
                ResponseEvent.Set();
            }
            else
            {
                responseBytesTemp = _responseBytes;
            }
        }
        public static void ProcessSocialLoginResponse(ResponseEvent responseEvent)
        {
            JSONObject socialLoginJSON = responseEvent.data;

            switch (responseEvent.action.Trim().ToLower())
            {
            case "register":
                SocialLoginManager.ProcessUserRegister(socialLoginJSON);
                break;

            case "login":
                SocialLoginManager.ProcessUserLogin(socialLoginJSON);
                break;

            case "logout":
                SocialLoginManager.ProcessUserLogout();
                break;

            case "error":
                SocialLoginManager.ProcessUserLoginError(socialLoginJSON);
                break;
            }
        }
Exemplo n.º 30
0
        ////////////////////////////////////// 响应 ////////////////////////////////////
        private void LoginResponse(bool send, DecodeRspResult res, Action <ResponseEvent> callback)
        {
            if (send)
            {
                UserStatus.SetStatus(UserStatus.StatusType.Logout);
            }
            var rspWrap1 = res.RspWrap1;
            var rsp      = new LoginRsp();

            if (res.Body != null)
            {
                rsp.MergeFrom(res.Body);
            }

            var eve = new ResponseEvent(rspWrap1.ErrCode, rspWrap1.ErrMsg, rspWrap1.Seq, rsp);

            NetClient.HandleSuccess(eve.Code, () => {
                if (eve.Code == ErrCode.EcOk)
                {
                    RequestHeader.AuthKey  = rsp.Token;
                    RequestHeader.PlayerId = rsp.PlayerId;
                    var messageData        = rsp;

                    // 更新状态
                    UserStatus.SetStatus(UserStatus.StatusType.Login);

                    // 设置 PlayerInfo
                    if (string.IsNullOrEmpty(GamePlayerInfo.GetInfo().Id))
                    {
                        GamePlayerInfo.SetInfo(messageData.PlayerId);
                    }
                }
            });
            UserStatus.SetErrCode(eve.Code, eve.Msg);
            callback?.Invoke(eve);
        }
Exemplo n.º 31
0
        private static void LogoutResponse(bool send, DecodeRspResult res, Action <ResponseEvent> callback)
        {
            var wrap1 = res.RspWrap1;
            var eve   = new ResponseEvent(wrap1.ErrCode, wrap1.ErrMsg, wrap1.Seq, null);

            Debugger.Log("LogoutResponse {0}", eve);

            void HandleSuccess()
            {
                RequestHeader.AuthKey  = null;
                RequestHeader.PlayerId = null;

                UserStatus.SetStatus(UserStatus.StatusType.Logout);

                var playerInfo = new PlayerInfo {
                    Id = null
                };

                GamePlayerInfo.SetInfo(playerInfo);
            }

            NetClient.HandleSuccess(eve.Code, HandleSuccess);
            callback?.Invoke(eve);
        }
Exemplo n.º 32
0
    public void OnValidate()
    {
        ResponseEvent[] events = new ResponseEvent[dialogueObject.Responses.Length];

        for (int i = 0; i < dialogueObject.Responses.Length; i++)
        {
            Response response = dialogueObject.Responses[i];
            events[i] = new ResponseEvent(response);
        }

        Array.Resize(ref responseEvents, events.Length);

        for (int i = 0; i < responseEvents.Length; i++)
        {
            if (responseEvents[i] == null)
            {
                responseEvents[i] = events[i];
            }
            else
            {
                responseEvents[i].Update(events[i]);
            }
        }
    }
Exemplo n.º 33
0
        private void SignalObject_onTradeResponse(object sender, ResponseEvent e)
        {
            __cTradeService.AddResponse(e);

            if (__bShowTradeView)
            {
                if (GlobalSettings.Testing.AutoSwitchTradePage)
                {
                    ITradeOrder cOrder = e.TradeOrder;
                    switch (e.ResponseType)
                    {
                    case Zeghs.Orders.ResponseType.Trust:                              //委託回報
                        tabControl.BeginInvoke((MethodInvoker) delegate {
                            tabControl.SelectedIndex = 0;
                        });
                        break;

                    case Zeghs.Orders.ResponseType.Deal:                              //成交回報
                        EOrderAction cAction = cOrder.Action;
                        if (cAction == EOrderAction.Buy || cAction == EOrderAction.SellShort)
                        {
                            tabControl.BeginInvoke((MethodInvoker) delegate {
                                tabControl.SelectedIndex = 1;
                            });
                        }
                        else
                        {
                            tabControl.BeginInvoke((MethodInvoker) delegate {
                                tabControl.SelectedIndex = 2;
                            });
                        }
                        break;
                    }
                }
            }
        }
Exemplo n.º 34
0
 /**
  * 本地网络状态变化
  */
 public void OnNetwork(ResponseEvent eve)
 {
     _room.onUpdate(this._room);
 }
        public void ProcessPlayerDataResponse(ResponseEvent response)
        {
            WalletData receivedWallet = null;
            InventoryData receivedInventory = null;

            if (response.data.HasField ("wallet")) {

                JSONObject walletJSON = response.data.GetField ("wallet");

                receivedWallet = new WalletData ();

                if (walletJSON.HasField ("currencies")) {
                    receivedWallet.currencies = new List<PlayerCurrencyData> ();

                    JSONObject currenciesJSON = walletJSON.GetField ("currencies");

                    for (int i = 0; i < currenciesJSON.Count; i++) {
                        PlayerCurrencyData currency = new PlayerCurrencyData ();

                        currency.id = (int)currenciesJSON.list [i].GetField ("id").n;
                        currency.currentBalance = (int)currenciesJSON.list [i].GetField ("currentBalance").n;
                        currency.delta = (int)currenciesJSON.list [i].GetField ("delta").n;

                        receivedWallet.currencies.Add (currency);
                    }
                }

                receivedWallet.offset = (int)walletJSON.GetField ("offset").n;
                receivedWallet.logic = walletJSON.GetField ("logic").str;

            }

            if (response.data.HasField ("inventory")) {

                JSONObject inventoryJSON = response.data.GetField ("inventory");

                receivedInventory = new InventoryData ();

                if (inventoryJSON.HasField ("items")) {
                    receivedInventory.items = new List<PlayerItemData> ();

                    JSONObject itemsJSON = inventoryJSON.GetField ("items");

                    for (int i = 0; i < itemsJSON.Count; i++) {
                        PlayerItemData item = new PlayerItemData ();

                        item.id = (int)itemsJSON.list [i].GetField ("id").n;
                        item.amount = (int)itemsJSON.list [i].GetField ("amount").n;
                        item.delta = (int)itemsJSON.list [i].GetField ("delta").n;

                        receivedInventory.items.Add (item);
                    }
                }

                receivedInventory.offset = (int)inventoryJSON.GetField ("offset").n;
                receivedInventory.logic = inventoryJSON.GetField ("logic").str;

            }

            CalculatePlayerDataResponse (receivedWallet, receivedInventory);
        }
Exemplo n.º 36
0
        void manager_UnhandledEvent(object sender, ManagerEvent e)
        {
            log.Debug("New unhandled event received: " + e.GetType().Name);
            LineControl lc = null;

            //StateServer
            switch (e.GetType().Name)
            {
            case "AGIExecEvent":
                AGIExecEvent agievent = e as AGIExecEvent;
                break;

            case "AlarmClearEvent":
                AlarmClearEvent alarmclear = e as AlarmClearEvent;
                break;

            case "AlarmEvent":
                AlarmEvent alarmevent = e as AlarmEvent;
                break;

            case "AsyncAGIEvent":
                AsyncAGIEvent asyncagievent = e as AsyncAGIEvent;
                break;

            case "BridgeEvent":
                BridgeEvent bridgeevent = e as BridgeEvent;
                break;

            case "CdrEvent":
                CdrEvent cdrevent = e as CdrEvent;
                break;

            case "ChannelReloadEvent":
                ChannelReloadEvent channelreload = e as ChannelReloadEvent;
                break;

            case "ChannelUpdateEvent":
                ChannelUpdateEvent channelupdate = e as ChannelUpdateEvent;
                break;

            case "ConnectEvent":
                ConnectEvent connectevent = e as ConnectEvent;
                break;

            case "ConnectionStateEvent":
                ConnectionStateEvent connectionstate = e as ConnectionStateEvent;
                break;

            case "DBGetResponseEvent":
                DBGetResponseEvent dbget = e as DBGetResponseEvent;
                log.Debug("DBGet response: " + dbget.ToString());
                switch (dbget.Family)
                {
                case "DND":
                    ss.SetLineControl(setLineControlDND(dbget.Key, true));
                    break;

                case "CF":
                    ss.SetLineControl(setLineControlForward(dbget.Key, dbget.Val));
                    break;
                }
                break;

            case "DialEvent":
                DialEvent dial = e as DialEvent;
                log.Debug("Dial event: " + dial.ToString());
                break;

            case "DisconnectEvent":
                DisconnectEvent disconnect = e as DisconnectEvent;
                log.Debug("Disconnect event: " + disconnect.ToString());
                break;

            case "DNDStateEvent":
                DNDStateEvent dndstate = e as DNDStateEvent;
                log.Debug("DND state event: " + dndstate.ToString());
                break;

            case "ExtensionStatusEvent":
                ExtensionStatusEvent extensionstatus = e as ExtensionStatusEvent;
                log.Debug("Extension status event: " + extensionstatus.ToString() + ", status: " + extensionstatus.Status + ", hint: " + extensionstatus.Hint);
                ss.SetLineControl(getLineControlFromExtensionStatusEvent(extensionstatus));
                break;

            case "FaxReceivedEvent":
                FaxReceivedEvent faxreceived = e as FaxReceivedEvent;
                break;

            case "HangupEvent":
                HangupEvent hangup = e as HangupEvent;
                log.Debug("Hangup event: " + hangup.ToString() + " callerid: " + hangup.CallerId + " calleridnum: " + hangup.CallerIdNum);
                //line control
                if (channels.Contains(hangup.Channel))
                {
                    lc = getLineControl((string)channels[hangup.Channel]);
                    int hi = 0;
                    LineControlConnection[] newLCC = null;
                    if (lc.lineControlConnection.Length > 1)
                    {
                        newLCC = new LineControlConnection[lc.lineControlConnection.Length - 1];
                        foreach (LineControlConnection hlcc in lc.lineControlConnection)
                        {
                            if (hlcc.callid != hangup.Channel)
                            {
                                newLCC[hi] = hlcc;
                                hi++;
                            }
                        }
                    }
                    lc.lineControlConnection = newLCC;
                    ss.SetLineControl(lc);
                    channels.Remove(hangup.Channel);
                }

                //missed calls
                callToFind = hangup.UniqueId.Substring(0, 6) + "," + hangup.UniqueId.Substring(6);
                Call mCall = missedCalls.Find(FindCall);
                if (mCall != null)
                {
                    log.Debug("Missed call finded for callid: " + hangup.UniqueId);
                    AddCallLogs(mCall.callee, mCall);
                    if (missedCalls.Remove(mCall))
                    {
                        log.Debug("Call " + mCall.callId + " successfully removed from missedcall cache");
                    }
                    else
                    {
                        log.Debug("Call " + mCall.callId + " cannot be removed from missedcall cache");
                    }
                }
                break;

            case "HoldedCallEvent":
                HoldedCallEvent holdedcall = e as HoldedCallEvent;
                break;

            case "HoldEvent":
                HoldEvent holdevent = e as HoldEvent;
                break;

            case "JabberEvent":
                JabberEvent jabberevent = e as JabberEvent;
                break;

            case "JitterBufStatsEvent":
                JitterBufStatsEvent jitter = e as JitterBufStatsEvent;
                break;

            case "JoinEvent":
                JoinEvent join = e as JoinEvent;
                break;

            case "LeaveEvent":
                LeaveEvent leave = e as LeaveEvent;
                break;

            case "LinkEvent":
                LinkEvent link = e as LinkEvent;
                log.Debug("Link event: " + link.ToString());
                lc = getLineControl(link.CallerId1);
                if (lc != null)
                {
                    foreach (LineControlConnection linklcc in lc.lineControlConnection)
                    {
                        if (linklcc.callid == link.Channel1)
                        {
                            linklcc.contact = link.CallerId2;
                            ss.SetLineControl(lc);
                            break;
                        }
                    }
                }
                lc = getLineControl(link.CallerId2);
                if (lc != null)
                {
                    foreach (LineControlConnection linklcc in lc.lineControlConnection)
                    {
                        if (linklcc.callid == link.Channel2)
                        {
                            linklcc.contact = link.CallerId1;
                            ss.SetLineControl(lc);
                            break;
                        }
                    }
                }
                break;

            case "LogChannelEvent":
                LogChannelEvent logchannel = e as LogChannelEvent;
                break;

            case "ManagerEvent":
                ManagerEvent managerevent = e;
                break;

            case "MeetmeEndEvent":
                MeetmeEndEvent meetmeend = e as MeetmeEndEvent;
                break;

            case "MeetmeJoinEvent":
                MeetmeJoinEvent meetmejoin = e as MeetmeJoinEvent;
                break;

            case "MeetmeLeaveEvent":
                MeetmeLeaveEvent meetmeleave = e as MeetmeLeaveEvent;
                break;

            case "MeetmeMuteEvent":
                MeetmeMuteEvent meetmemute = e as MeetmeMuteEvent;
                break;

            case "MeetmeStopTalkingEvent":
                MeetmeStopTalkingEvent meetmestoptalking = e as MeetmeStopTalkingEvent;
                break;

            case "MeetmeTalkingEvent":
                MeetmeTalkingEvent meetmetalking = e as MeetmeTalkingEvent;
                break;

            case "MeetmeTalkRequestEvent":
                MeetmeTalkRequestEvent meetmetalkrequest = e as MeetmeTalkRequestEvent;
                break;

            case "MessageWaitingEvent":
                MessageWaitingEvent messagewaiting = e as MessageWaitingEvent;
                log.Debug("Message waiting event: " + messagewaiting.ToString());
                lc = getLineControl(messagewaiting.Mailbox.Substring(0, messagewaiting.Mailbox.IndexOf("@")));
                if (lc != null)
                {
                    if (messagewaiting.Waiting > 0)
                    {
                        lc.mwiOn = true;
                    }
                    else
                    {
                        lc.mwiOn = false;
                    }
                    ss.SetLineControl(lc);
                }
                break;

            case "MobileStatusEvent":
                MobileStatusEvent mobilestatus = e as MobileStatusEvent;
                break;

            case "ModuleLoadReportEvent":
                ModuleLoadReportEvent moduleload = e as ModuleLoadReportEvent;
                break;

            case "MonitorStartEvent":
                MonitorStartEvent monitorstart = e as MonitorStartEvent;
                break;

            case "MonitorStopEvent":
                MonitorStopEvent monitorstop = e as MonitorStopEvent;
                break;

            case "NewAccountCodeEvent":
                NewAccountCodeEvent newaccountcode = e as NewAccountCodeEvent;
                break;

            case "NewCallerIdEvent":
                NewCallerIdEvent newcallerid = e as NewCallerIdEvent;
                log.Debug("New caller id envent: " + newcallerid.ToString());
                break;

            case "NewChannelEvent":
                NewChannelEvent newchannel = e as NewChannelEvent;
                log.Debug("New Channel event: " + newchannel.ToString());
                CommandAction   ca = new CommandAction("core show channel " + newchannel.Channel);
                CommandResponse cr = (CommandResponse)manager.SendAction(ca, 10000);
                log.Debug("Channel info: " + cr.ToString());
                string dn = newchannel.CallerIdNum;
                log.Debug("Retreive call information...");
                bool callerIdUnknown = true;
                if (newchannel.CallerIdNum != "<unknown>")
                {
                    callerIdUnknown = false;
                }
                else
                {
                    foreach (string s in cr.Result)
                    {
                        if (s.Contains("Caller ID:"))
                        {
                            dn = s.Substring(s.LastIndexOf(" "));
                            break;
                        }
                    }
                }
                Call newOutboundCall = getOutboundCallFromChannelInfo(cr.Result, callerIdUnknown);
                if (newOutboundCall != null)
                {
                    Call missedCall = newOutboundCall;
                    AddCallLogs(dn, newOutboundCall);
                    dnToFind = newOutboundCall.callee;
                    if (linecontrols.Find(FindLineControl) != null)
                    {
                        log.Debug("This call will be put in missedcall cache: " + missedCall.callId);
                        missedCall.type = CallType.missed;
                        missedCalls.Add(missedCall);
                    }
                }
                break;

            case "NewExtenEvent":
                NewExtenEvent newexten = e as NewExtenEvent;
                log.Debug("New exten event: " + newexten.ToString());
                string   channel      = "";
                char[]   splitter     = { '/' };
                string[] splitchannel = newexten.Channel.Split(splitter);
                splitter[0]  = '-';
                splitchannel = splitchannel[1].Split(splitter);
                channel      = splitchannel[0];
                //DND?
                if (newexten.Extension == Properties.Settings.Default.FeatureCodeDNDToggle && newexten.Application == "Playback")
                {
                    switch (newexten.AppData)
                    {
                    case "do-not-disturb&activated":
                        log.Debug("Successfully activate dnd for channel: " + channel);
                        ss.SetLineControl(setLineControlDND(channel, true));
                        break;

                    case "do-not-disturb&de-activated":
                        log.Debug("Successfully deactivate dnd for channel: " + channel);
                        ss.SetLineControl(setLineControlDND(channel, false));
                        break;
                    }
                }
                //Forward all?
                else if (newexten.Extension.Contains(Properties.Settings.Default.FeatureCodeCallForwardAllActivate) && newexten.Application == "Playback" && newexten.AppData == "call-fwd-unconditional&for&extension")
                {
                    string forward = newexten.Extension.Substring(Properties.Settings.Default.FeatureCodeCallForwardAllActivate.Length);
                    log.Debug("Call forward all from channel: " + channel + " to " + forward);
                    ss.SetLineControl(setLineControlForward(channel, forward));
                }
                // UnForwardAll
                else if (newexten.Extension == Properties.Settings.Default.FeatureCodeCallForwardAllDeactivate && newexten.Application == "Playback" && newexten.AppData == "call-fwd-unconditional&de-activated")
                {
                    log.Debug("Call unforward all from channel: " + channel);
                    ss.SetLineControl(setLineControlForward(channel, ""));
                }
                break;

            case "NewStateEvent":
                NewStateEvent newstate = e as NewStateEvent;
                log.Debug("New State event: " + newstate.ToString());
                LineControl             newstateLc   = getLineControl(newstate.CallerId);
                LineControlConnection[] newStateLccs = null;
                int i = 0;
                if (newstateLc.lineControlConnection != null)
                {
                    bool isContained = false;
                    foreach (LineControlConnection elcc in newstateLc.lineControlConnection)
                    {
                        if (elcc.callid == newstate.Channel)
                        {
                            isContained  = true;
                            newStateLccs = newstateLc.lineControlConnection;
                            break;
                        }
                        i++;
                    }
                    if (!isContained)
                    {
                        i            = 0;
                        newStateLccs = new LineControlConnection[newstateLc.lineControlConnection.Length + 1];
                        foreach (LineControlConnection newstateLcc in newstateLc.lineControlConnection)
                        {
                            newStateLccs[i] = newstateLcc;
                            i++;
                        }
                    }
                }
                else
                {
                    newStateLccs    = new LineControlConnection[1];
                    newStateLccs[0] = new LineControlConnection();
                }
                try
                {
                    switch (newstate.State)
                    {
                    case "Up":
                        //received call?
                        callToFind = newstate.UniqueId;
                        Call rCall = missedCalls.Find(FindCall);
                        if (rCall != null)
                        {
                            log.Debug("Missed call finded: " + callToFind + ", this call will be received");
                            rCall.type = CallType.received;
                            AddCallLogs(rCall.callee, rCall);
                            missedCalls.Remove(rCall);
                        }
                        if (newStateLccs != null)
                        {
                            if (!channels.Contains(newstate.Channel))
                            {
                                channels.Add(newstate.Channel, newstate.CallerId);
                            }
                            newStateLccs[i].callid        = newstate.Channel;
                            newStateLccs[i].remoteState   = Wybecom.TalkPortal.CTI.Proxy.ConnectionState.established;
                            newStateLccs[i].state         = Wybecom.TalkPortal.CTI.Proxy.ConnectionState.established;
                            newStateLccs[i].terminalState = TerminalState.talking;
                        }
                        break;

                    case "Ringing":
                        if (newStateLccs != null)
                        {
                            if (!channels.Contains(newstate.Channel))
                            {
                                channels.Add(newstate.Channel, newstate.CallerId);
                            }
                            newStateLccs[i].callid        = newstate.Channel;
                            newStateLccs[i].remoteState   = Wybecom.TalkPortal.CTI.Proxy.ConnectionState.established;
                            newStateLccs[i].state         = Wybecom.TalkPortal.CTI.Proxy.ConnectionState.alerting;
                            newStateLccs[i].terminalState = TerminalState.ringing;
                        }
                        break;

                    case "Ring":
                        if (newStateLccs != null)
                        {
                            if (!channels.Contains(newstate.Channel))
                            {
                                channels.Add(newstate.Channel, newstate.CallerId);
                            }
                            newStateLccs[i].callid        = newstate.Channel;
                            newStateLccs[i].remoteState   = Wybecom.TalkPortal.CTI.Proxy.ConnectionState.alerting;
                            newStateLccs[i].state         = Wybecom.TalkPortal.CTI.Proxy.ConnectionState.dialing;
                            newStateLccs[i].terminalState = TerminalState.inuse;
                        }
                        break;
                    }
                }
                catch (Exception stateException)
                {
                    log.Debug("NewState exception: " + stateException.Message);
                }
                if (newstateLc != null)
                {
                    newstateLc.lineControlConnection = newStateLccs;
                    ss.SetLineControl(newstateLc);
                }
                break;

            case "OriginateResponseEvent":
                OriginateResponseEvent originateresponse = e as OriginateResponseEvent;
                break;

            case "ParkedCallEvent":
                ParkedCallEvent parkedcall = e as ParkedCallEvent;
                break;

            case "ParkedCallGiveUpEvent":
                ParkedCallGiveUpEvent parkedcallgiveup = e as ParkedCallGiveUpEvent;
                break;

            case "ParkedCallsCompleteEvent":
                ParkedCallsCompleteEvent parkedcallscomplete = e as ParkedCallsCompleteEvent;
                break;

            case "ParkedCallTimeOutEvent":
                ParkedCallTimeOutEvent parkedcalltimeout = e as ParkedCallTimeOutEvent;
                break;

            case "PeerEntryEvent":
                log.Debug("SipAction: one peer entry event received, " + e.ToString());
                PeerEntryEvent peerentry = e as PeerEntryEvent;
                peers.Add(peerentry);
                ss.SetLineControl(getLineControlFromPeerEntry(peerentry));
                break;

            case "PeerlistCompleteEvent":
                log.Debug("SipAction: peer list completed " + e.ToString());
                PeerlistCompleteEvent peerlistcomplete = e as PeerlistCompleteEvent;
                acs.setPeers(peers);
                break;

            case "PeerStatusEvent":
                PeerStatusEvent peerstatus = e as PeerStatusEvent;
                log.Debug("Peer status: " + peerstatus.ToString());
                break;

            case "PRIEvent":
                PRIEvent pri = e as PRIEvent;
                break;

            case "RegistryEvent":
                RegistryEvent registry = e as RegistryEvent;
                break;

            case "ReloadEvent":
                ReloadEvent reload = e as ReloadEvent;
                break;

            case "RenameEvent":
                RenameEvent rename = e as RenameEvent;
                break;

            case "ResponseEvent":
                ResponseEvent response = e as ResponseEvent;
                break;

            case "RTCPReceivedEvent":
                RTCPReceivedEvent rtcpreceived = e as RTCPReceivedEvent;
                break;

            case "RTCPSentEvent":
                RTCPSentEvent rtcpsent = e as RTCPSentEvent;
                break;

            case "RTPReceiverStatEvent":
                RTPReceiverStatEvent rtpreceiver = e as RTPReceiverStatEvent;
                break;

            case "RTPSenderStatEvent":
                RTPSenderStatEvent rtpsender = e as RTPSenderStatEvent;
                break;

            case "ShowDialPlanCompleteEvent":
                ShowDialPlanCompleteEvent showdialplan = e as ShowDialPlanCompleteEvent;
                break;

            case "ShutdownEvent":
                ShutdownEvent shutdown = e as ShutdownEvent;
                break;

            case "StatusCompleteEvent":
                StatusCompleteEvent statuscomplete = e as StatusCompleteEvent;
                break;

            case "StatusEvent":
                StatusEvent status = e as StatusEvent;
                break;

            case "TransferEvent":
                TransferEvent transfer = e as TransferEvent;
                break;

            case "UnholdEvent":
                UnholdEvent unhold = e as UnholdEvent;
                break;

            case "UnknownEvent":
                UnknownEvent unknown = e as UnknownEvent;
                break;

            case "UnlinkEvent":
                UnlinkEvent unlink = e as UnlinkEvent;
                log.Debug("Unlink event : " + unlink.ToString());
                LineControlConnection[] lccs = null;
                i  = 0;
                lc = getLineControl(unlink.CallerId1);
                if (lc != null)
                {
                    if (lc.lineControlConnection.Length > 1)
                    {
                        lccs = new LineControlConnection[lc.lineControlConnection.Length - 1];
                        foreach (LineControlConnection linklcc in lc.lineControlConnection)
                        {
                            if (linklcc.callid != unlink.Channel1)
                            {
                                lccs[i] = linklcc;
                                i++;
                                break;
                            }
                        }
                    }
                    else
                    {
                        lc.lineControlConnection = null;
                    }
                    ss.SetLineControl(lc);
                }
                i  = 0;
                lc = getLineControl(unlink.CallerId2);
                if (lc != null)
                {
                    if (lc.lineControlConnection.Length > 1)
                    {
                        lccs = new LineControlConnection[lc.lineControlConnection.Length - 1];
                        foreach (LineControlConnection linklcc in lc.lineControlConnection)
                        {
                            if (linklcc.callid != unlink.Channel2)
                            {
                                lccs[i] = linklcc;
                                i++;
                                break;
                            }
                        }
                    }
                    else
                    {
                        lc.lineControlConnection = null;
                    }
                    ss.SetLineControl(lc);
                }
                break;

            case "UnparkedCallEvent":
                UnparkedCallEvent unparked = e as UnparkedCallEvent;
                break;

            case "UserEvent":
                UserEvent user = e as UserEvent;
                break;

            case "VarSetEvent":
                VarSetEvent varset = e as VarSetEvent;
                break;

            case "ZapShowChannelsCompleteEvent":
                ZapShowChannelsCompleteEvent zapshowchannelscomplete = e as ZapShowChannelsCompleteEvent;
                break;

            case "ZapShowChannelsEvent":
                ZapShowChannelsEvent zapshowchannels = e as ZapShowChannelsEvent;
                break;
            }
            //ACDConnector
            switch (e.GetType().Name)
            {
            case "AgentCallbackLoginEvent":
                AgentCallbackLoginEvent agentcallbacklogin = e as AgentCallbackLoginEvent;
                break;

            case "AgentCallbackLogoffEvent":
                AgentCallbackLogoffEvent agentcallbacklogoff = e as AgentCallbackLogoffEvent;
                break;

            case "AgentCalledEvent":
                AgentCalledEvent agentcalled = e as AgentCalledEvent;
                break;

            case "AgentCompleteEvent":
                AgentCompleteEvent agentcomplete = e as AgentCompleteEvent;
                break;

            case "AgentConnectEvent":
                AgentConnectEvent agentconnect = e as AgentConnectEvent;
                break;

            case "AgentDumpEvent":
                AgentDumpEvent agentdump = e as AgentDumpEvent;
                break;

            case "AgentLoginEvent":
                AgentLoginEvent agentlogin = e as AgentLoginEvent;
                break;

            case "AgentLogoffEvent":
                AgentLogoffEvent agentlogoff = e as AgentLogoffEvent;
                break;

            case "AgentsCompleteEvent":
                AgentsCompleteEvent agentscomplete = e as AgentsCompleteEvent;
                break;

            case "AgentsEvent":
                AgentsEvent agentevent = e as AgentsEvent;
                break;

            case "QueueCallerAbandonEvent":
                QueueCallerAbandonEvent queuecallerabandon = e as QueueCallerAbandonEvent;
                break;

            case "QueueEntryEvent":
                QueueEntryEvent queueentry = e as QueueEntryEvent;
                break;

            case "QueueEvent":
                QueueEvent queue = e as QueueEvent;
                break;

            case "QueueMemberEvent":
                QueueMemberEvent queuemember = e as QueueMemberEvent;
                break;

            case "QueueMemberPausedEvent":
                QueueMemberPausedEvent queuememberpaused = e as QueueMemberPausedEvent;
                break;

            case "QueueMemberPenaltyEvent":
                QueueMemberPenaltyEvent queuememberpenalty = e as QueueMemberPenaltyEvent;
                break;

            case "QueueMemberRemovedEvent":
                QueueMemberRemovedEvent queuememberremoved = e as QueueMemberRemovedEvent;
                break;

            case "QueueMemberStatusEvent":
                QueueMemberStatusEvent queuememberstatus = e as QueueMemberStatusEvent;
                break;

            case "QueueParamsEvent":
                QueueParamsEvent queueparams = e as QueueParamsEvent;
                break;

            case "QueueStatusCompleteEvent":
                QueueStatusCompleteEvent queuestatuscomplete = e as QueueStatusCompleteEvent;
                break;
            }
        }
        public static void ProcessAdvertisementResponse(ResponseEvent response)
        {
            if (response.action.Equals ("init")) {
                JSONObject provider = response.data.GetField ("providers");

                if (provider.HasField ("DFP")) {
                    DFPEnabled = true;
                    Debug.Log ("DFP Enabled");
                }

                if (provider.HasField ("Fyber")) {
                    FyberEnabled = true;
                    Debug.Log ("Fyber Enabled");
                }

                if (provider.HasField ("Chartboost") || provider.HasField ("ChartBoost")) {
                    ChartboostEnabled = true;
                    Debug.Log ("Chartboost Enabled");
                }
            } else if (response.action.Equals ("show")) {
                string provider = response.data.GetField ("provider").str;
                string adType = response.data.GetField("adType").str;

                int probability = Random.Range(0, 100);
                bool available = false;

                if(probability > 20){
                    available = true;
                }

                if (provider.ToLower ().Trim ().Equals ("dfp")) {
                    if(available){
                        Debug.Log ("DFP Show");
                        SpilUnityImplementationBase.fireAdAvailableEvent (adType);
                        PlayInterstitial("DFP");
                    } else {
                        Debug.Log ("DFP Not Available");
                        SpilUnityImplementationBase.fireAdNotAvailableEvent (adType);
                    }

                } else if (provider.ToLower ().Trim ().Equals ("fyber")) {

                    if(available){
                        Debug.Log ("Fyber Show");
                        SpilUnityImplementationBase.fireAdAvailableEvent (adType);
                    } else {
                        Debug.Log ("Fyber Not Available");
                        SpilUnityImplementationBase.fireAdNotAvailableEvent (adType);
                    }

                } else if (provider.ToLower ().Trim ().Equals ("chartboost")) {
                    if(available){
                        Debug.Log ("Chartboost Show");
                        SpilUnityImplementationBase.fireAdAvailableEvent (adType);
                        PlayInterstitial("Chartboost");
                    } else {
                        Debug.Log ("Chartboost Not Available");
                        SpilUnityImplementationBase.fireAdNotAvailableEvent (adType);
                    }
                }
            }
        }
        public void ProcessGameObjectsResponse(ResponseEvent response)
        {
            if(response.data.HasField("currencies")){
                currencies = new List<SpilCurrencyData>();

                JSONObject currenciesJSON = response.data.GetField("currencies");

                for(int i=0 ; i < currenciesJSON.Count; i++){
                    SpilCurrencyData currency = JsonHelper.getObjectFromJson<SpilCurrencyData>(currenciesJSON.list[i].Print(false));
                    currencies.Add(currency);
                }

            }

            if(response.data.HasField("items")){
                items = new List<SpilItemData>();

                JSONObject itemsJSON = response.data.GetField("items");

                for(int i=0 ; i < itemsJSON.Count; i++){
                    SpilItemData item = JsonHelper.getObjectFromJson<SpilItemData>(itemsJSON.list[i].Print(false));
                    items.Add(item);
                }
            }

            if(response.data.HasField("bundles")){
                bundles = new List<SpilBundleData>();

                JSONObject bundlesJSON = response.data.GetField("bundles");

                for(int i=0 ; i < bundlesJSON.Count; i++){
                    SpilBundleData bundle = JsonHelper.getObjectFromJson<SpilBundleData>(bundlesJSON.list[i].Print(false));
                    bundles.Add(bundle);
                }
            }

            if(response.data.HasField("shop")){
                shop = new List<SpilShopTabData>();

                JSONObject shopJSON = response.data.GetField("shop");

                for(int i=0 ; i < shopJSON.Count; i++){
                    SpilShopTabData tab = JsonHelper.getObjectFromJson<SpilShopTabData>(shopJSON.list[i].Print(false));
                    shop.Add(tab);
                }

            }

            if(response.data.HasField("promotions")){
                promotions = new List<SpilShopPromotionData>();

                JSONObject promotionsJSON = response.data.GetField("promotions");

                for(int i=0 ; i < promotionsJSON.Count; i++){
                    SpilShopPromotionData bundle = JsonHelper.getObjectFromJson<SpilShopPromotionData>(promotionsJSON.list[i].Print(false));
                    promotions.Add(bundle);
                }
            }

            updatedFromServer = true;

            Spil.GameData.RefreshData(Spil.Instance);
        }