internal override void ProcessReply(CallbackMessage message, bool moreComing)
 {
     if (message is BrowseCallbackMessage brm)
     {
         BrowseEvent?.Invoke(Token, new BrowseEventArgs(brm.Payload.Flags.HasFlag(ServiceFlags.Add) ? BrowseEventType.Added : BrowseEventType.Removed,
                                                        new ServiceDescriptor(brm.Payload.InstanceName, brm.Payload.ServiceType, brm.Payload.Domain, brm.Payload.InterfaceIndex), moreComing));
     }
 }
        public static void OnEvent(JAnalytics.Event e)
        {
            int type = e.getType();

            switch (type)
            {
            case JAnalytics.Event.BrowseEventType:
                BrowseEvent browseEven     = (BrowseEvent)e;
                string      browseId       = browseEven.getBrowseId();
                string      browseName     = browseEven.getBrowseName();
                string      browseType     = browseEven.getBrowseType();
                long        browseDuration = browseEven.getBrowseDuration();
                OnBrowseEvent(browseId, browseName, browseType, browseDuration,
                              browseEven.getExtraDic());
                break;

            case JAnalytics.Event.CalculateEventType:
                CalculateEvent calculateEvent = (CalculateEvent)e;
                string         eventId        = calculateEvent.getEventId();
                double         eventValues    = calculateEvent.getEventValued();
                OnCalculateEvent(eventId, eventValues,
                                 calculateEvent.getExtraDic());
                break;

            case JAnalytics.Event.CountEventType:
                CountEvent countEvent = (CountEvent)e;
                OnCountEvent(countEvent.getEventId(),
                             countEvent.getExtraDic());
                break;

            case JAnalytics.Event.LoginEventType:
                LoginEvent loginEvent = (LoginEvent)e;
                OnLoginEvent(loginEvent.getLoginMethod(), loginEvent.geLoginSuccess(),
                             loginEvent.getExtraDic());
                break;

            case JAnalytics.Event.PurchaseEventType:
                PurchaseEvent purchaseEvent         = (PurchaseEvent)e;
                string        purchaseGoodsid       = purchaseEvent.getPurchaseGoodsid();
                string        purchaseGoodsName     = purchaseEvent.getPurchaseGoodsName();
                double        purchasePrice         = purchaseEvent.getPurchasePrice();
                bool          purchaseSuccess       = purchaseEvent.getPurchaseSuccess();
                int           purchaseCurrencyUnity = purchaseEvent.getPurchaseCurrencyInt();
                string        purchaseGoodsType     = purchaseEvent.getPurchaseGoodsType();
                int           purchaseGoodsCount    = purchaseEvent.getPurchaseGoodsCount();
                OnPurchaseEvent(purchaseGoodsid, purchaseGoodsName, purchasePrice,
                                purchaseSuccess, purchaseCurrencyUnity, purchaseGoodsType, purchaseGoodsCount,
                                purchaseEvent.getExtraDic());
                break;

            case JAnalytics.Event.RegisterEventType:
                RegisterEvent registerEvent = (RegisterEvent)e;
                OnRegisterEvent(registerEvent.getRegisterMethod(), registerEvent.getRegisterSuccess(), registerEvent.getExtraDic());
                break;
            }
        }
        public async Task <IOperationToken> BrowseAsync(string serviceType, string domain = "", uint interfaceIndex = 0, object context = null)
        {
            await CheckConnectionAsync();

            var op = new BrowseOperation(serviceType, domain, interfaceIndex, context);

            op.BrowseEvent += (s, e) => BrowseEvent?.Invoke(s, e);

            await _connection.AddAndExecuteSubordinate(op);

            return(op.Token);
        }
Пример #4
0
        /// <summary>
        /// Fills the CurrentItems property for display in ItemsControl
        /// based view (ListBox, ListView etc.).
        ///
        /// This method wraps a parameterized version of the same method
        /// with a call that contains the standard data field.
        /// </summary>
        /// <param name="request"></param>
        /// <param name="browseEvent">Defines whether a request should result
        /// in an explicit event relayed to a controller or not.</param>
        protected FinalBrowseResult PopulateView(BrowseRequest request,
                                                 bool browseEvent)
        {
            //Logger.DebugFormat("PopulateView method");
            //Logger.DebugFormat("Populating view for request id: {0} - '{1}'", request.RequestId, request.NewLocation.Path);

            // This can happen when the viewmodel is configured at start-up
            // but the current folder is not configured, yet
            if (request == null)
            {
                return(FinalBrowseResult.FromRequest(request, BrowseResult.InComplete));
            }

            IPathModel newPathToNavigateTo = request.NewLocation;

            bool result = false;

            IsBrowsing = true;
            try
            {
                if (newPathToNavigateTo != null && browseEvent == true)
                {
                    BrowseEvent?.Invoke(this,
                                        new BrowsingEventArgs(newPathToNavigateTo, true));
                }

                DirectoryInfo cur = new DirectoryInfo(newPathToNavigateTo.Path);

                if (cur.Exists == false)
                {
                    return(FinalBrowseResult.FromRequest(request, BrowseResult.InComplete));
                }

                CurrentItemClear();

                result = InternalPopulateView(_ParsedFilter, cur, ShowIcons);

                if (result == true)
                {
                    SetCurrentLocation(newPathToNavigateTo);
                    return(FinalBrowseResult.FromRequest(request, BrowseResult.Complete));
                }

                return(FinalBrowseResult.FromRequest(request, BrowseResult.InComplete));
            }
            catch (Exception exp)
            {
                var bresult = FinalBrowseResult.FromRequest(request, BrowseResult.InComplete);
                bresult.UnexpectedError = exp;
                return(bresult);
            }
            finally
            {
                if (newPathToNavigateTo != null && browseEvent == true)
                {
                    BrowseEvent?.Invoke(this, new BrowsingEventArgs(
                                            newPathToNavigateTo, false,
                                            result == true ? BrowseResult.Complete : BrowseResult.InComplete));
                }

                IsBrowsing = false;
            }
        }
Пример #5
0
    public static void OnGUI()
    {
        str_unity = GUILayout.TextField(str_unity, GUILayout.Width(Screen.width - 80),
                                        GUILayout.Height(100));
        if (GUILayout.Button("onPageStart", GUILayout.Height(80)))
        {
            JAnalyticsBinding.OnPageStart("testOnPage-1");
        }

        if (GUILayout.Button("onPageEnd", GUILayout.Height(80)))
        {
            JAnalyticsBinding.OnPageEnd("testOnPage-1");
        }

        if (GUILayout.Button("onPurchaseEvent", GUILayout.Height(80)))
        {
            string   purchaseGoodsid       = "goodsId";
            string   purchaseGoodsName     = "篮球";
            double   purchasePrice         = 300;
            bool     purchaseSuccess       = true;
            Currency purchaseCurrencyUnity = Currency.CNY;
            string   purchaseGoodsType     = "sport";
            int      purchaseGoodsCount    = 1;

            PurchaseEvent eEvent = new PurchaseEvent(purchaseGoodsid, purchaseGoodsName,
                                                     purchasePrice, purchaseSuccess, purchaseCurrencyUnity, purchaseGoodsType, purchaseGoodsCount);
            eEvent.addKeyValue("1", "a");
            eEvent.addKeyValue("2", "b");
            JAnalyticsBinding.OnEvent(eEvent);
        }


        if (GUILayout.Button("onBrowseEvent", GUILayout.Height(80)))
        {
            string browseId       = "browse_id";
            string browseName     = "深圳热点新闻";
            string browseType     = "news";
            long   browseDuration = 30;

            BrowseEvent eEvent = new BrowseEvent(browseId, browseName,
                                                 browseType, browseDuration);
            eEvent.addKeyValue("1", "a");
            eEvent.addKeyValue("2", "b");

            JAnalyticsBinding.OnEvent(eEvent);
        }

        if (GUILayout.Button("onRegisterEvent", GUILayout.Height(80)))
        {
            string registerMethod  = "sina";
            bool   registerSuccess = true;


            RegisterEvent eEvent = new RegisterEvent(registerMethod, registerSuccess);
            eEvent.addKeyValue("1", "a");
            eEvent.addKeyValue("2", "b");


            JAnalyticsBinding.OnEvent(eEvent);
        }

        if (GUILayout.Button("onLoginEvent", GUILayout.Height(80)))
        {
            string loginMethod  = "qq";
            bool   loginSuccess = true;

            LoginEvent eEvent = new LoginEvent(loginMethod, loginSuccess);
            eEvent.addKeyValue("1", "a");
            eEvent.addKeyValue("2", "b");

            JAnalyticsBinding.OnEvent(eEvent);
        }

        if (GUILayout.Button("onCalculateEvent", GUILayout.Height(80)))
        {
            string eventId    = "onCalculateEvent_event_id";
            double eventValue = 10.1;

            CalculateEvent eEvent = new CalculateEvent(eventId, eventValue);
            eEvent.addKeyValue("1", "a");
            eEvent.addKeyValue("2", "b");

            JAnalyticsBinding.OnEvent(eEvent);
        }

        if (GUILayout.Button("onCountEvent", GUILayout.Height(80)))
        {
            string eventId = "onCountEvent_event_id";

            CountEvent eEvent = new CountEvent(eventId);
            eEvent.addKeyValue("1", "a");
            eEvent.addKeyValue("2", "b");

            JAnalyticsBinding.OnEvent(eEvent);
        }



        if (GUILayout.Button("identifyAccount", GUILayout.Height(80)))
        {
            Account account = new Account("AccountAccount");
            account.SetName("nnnnn");


            account.SetExtraAttr("k1", "v1");
            account.SetExtraAttr("k2", null);

            int                sequence             = callbackId++;
            string             gameObjectNameBack   = gameObject.name;
            string             gameObjectMethodBack = "AccountCallBack";
            JAnalyticsCallBack callBack             = new JAnalyticsCallBack(sequence, gameObjectNameBack, gameObjectMethodBack);
            JAnalyticsBinding.IdentifyAccount(account, callBack);
        }

        if (GUILayout.Button("detachAccount", GUILayout.Height(80)))
        {
            int                sequence             = callbackId++;
            string             gameObjectNameBack   = gameObject.name;
            string             gameObjectMethodBack = "AccountCallBack";
            JAnalyticsCallBack callBack             = new JAnalyticsCallBack(sequence, gameObjectNameBack, gameObjectMethodBack);

            JAnalyticsBinding.DetachAccount(callBack);
        }

        if (GUILayout.Button("setAnalyticsReportPeriod", GUILayout.Height(80)))
        {
            int period = 30;
            JAnalyticsBinding.SetAnalyticsReportPeriod(period);
        }
    }