Exemplo n.º 1
0
        public Dictionary <string, string> PostInteraction()
        {
            HttpContent            requestContent         = Request.Content;
            string                 content                = requestContent.ReadAsStringAsync().Result;
            InteractionInformation interactionInformation = JsonConvert.DeserializeObject <InteractionInformation>(content);

            var homePageId = GlobalAttributesCache.Value("AvalancheHomePage").AsInteger();
            var pageCache  = PageCache.Read(homePageId);
            var siteId     = pageCache.SiteId;
            var person     = GetPerson();

            AppInteractionTransaction transaction = new AppInteractionTransaction()
            {
                ComponentName      = "Mobile App",
                SiteId             = siteId,
                PageId             = interactionInformation.PageId.AsIntegerOrNull(),
                PageTitle          = interactionInformation.PageTitle,
                DateViewed         = Rock.RockDateTime.Now,
                Operation          = interactionInformation.Operation,
                PersonAliasId      = person?.PrimaryAliasId,
                InteractionData    = interactionInformation.InteractionData,
                InteractionSummary = interactionInformation.InteractionSummary,
                IPAddress          = GetClientIp(Request),
                UserAgent          = Request.Headers.UserAgent.ToString()
            };

            RockQueue.TransactionQueue.Enqueue(transaction);
            return(new Dictionary <string, string> {
                { "Status", "Ok" }
            });
        }
Exemplo n.º 2
0
        /// <summary>
        /// If the raycast hits nothing, create a context menus
        /// </summary>
        /// <param name="information"></param>
        void IUserInteractable.OnRaycastHit(InteractionInformation information)
        {
            Debug.Log(string.Format("Raycast Hit on {0}. KeyState {1}", gameObject.name, information.InputKeysState));

            // if right click down bring up the menu
            if (information.InputKeysDown == InteractionInformation.ButtonState.AltClick)
            {
                _rightClickMenu.transform.position = information.HitPosition;
                _rightClickMenu.transform.LookAt(Camera.main.transform);
                _rightClickMenu.SetActive(true);
            }
        }
Exemplo n.º 3
0
        private static IOffice CreateLaNinaOffice(LaNinaConfiguration configuration, RoboStorageLocker storage)
        {
            var interactionRateProvider = new StaticInteractionRateProvider <LaNinaPersona>(
                configuration.WorkloadProfile.InteractionRates);

            var productInformation = new ProductTestedInformation(
                nameof(LaNina),
                configuration.TargetEnvironment,
                new Uri("http://lanina.com"),
                configuration.CloudPlatform);

            var interactionInformation          = new InteractionInformation(productInformation, new AzureTesterInformation());
            var targetInteractionRatesPerMinute = interactionRateProvider.GetTypedInteractionRates(CancellationToken.None).Result;

            return(new RoboOffice(storage, interactionInformation,
                                  targetInteractionRatesPerMinute.Select(kvp => LaNinaPersonaMother.MotherFor(kvp.Key, kvp.Value, _logger)),
                                  new SchedulerFactory(configuration.WorkloadProfile.Scheduler, interactionRateProvider),
                                  configuration.MaxDegreeOfParallelism,
                                  configuration.MaxMessagesPerTask
                                  ));
        }
Exemplo n.º 4
0
        void IUserInteractable.OnRaycastHit(InteractionInformation information)
        {
            if (information.InputKeysDown == InteractionInformation.ButtonState.PrimaryClick)
            {
                _onClickDown.Invoke();
            }

            if (information.InputKeysDown == InteractionInformation.ButtonState.AltClick)
            {
                _onAltClickDown.Invoke();
            }

            if (information.InputKeysUp == InteractionInformation.ButtonState.PrimaryClick)
            {
                _onClickUp.Invoke();
            }

            if (information.InputKeysUp == InteractionInformation.ButtonState.AltClick)
            {
                _onAltClickUp.Invoke();
            }
        }
Exemplo n.º 5
0
 public void OnRaycastHit(InteractionInformation information)
 {
     throw new System.NotImplementedException();
 }
Exemplo n.º 6
0
        private void Update()
        {
            // collect ui
            _clickState = Input.GetMouseButton(0);
            _clickDown  = Input.GetMouseButtonDown(0);
            _clickUp    = Input.GetMouseButtonUp(0);

            _altClickState = Input.GetMouseButton(1);
            _altClickDown  = Input.GetMouseButtonDown(1);
            _altClickUp    = Input.GetMouseButtonUp(1);

            var keyState = (_clickState ? InteractionInformation.ButtonState.PrimaryClick : InteractionInformation.ButtonState.None)
                           | (_altClickState ? InteractionInformation.ButtonState.AltClick : InteractionInformation.ButtonState.None);

            var keyStateDown = (_clickDown ? InteractionInformation.ButtonState.PrimaryClick : InteractionInformation.ButtonState.None)
                               | (_altClickDown ? InteractionInformation.ButtonState.AltClick : InteractionInformation.ButtonState.None);

            var keyStateUp = (_clickUp ? InteractionInformation.ButtonState.PrimaryClick : InteractionInformation.ButtonState.None)
                             | (_altClickUp ? InteractionInformation.ButtonState.AltClick : InteractionInformation.ButtonState.None);

            // raycast
            Ray        ray = ((IUserInteractionSystem)this).InteractionCamera.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

            // if the raycast hits a collider, find all the interactables
            if (Physics.Raycast(ray, out hit, 100))
            {
                var info          = new InteractionInformation(keyState, keyStateDown, keyStateUp, ((IUserInteractionSystem)this).InteractionCamera.transform.position, hit.point);
                var hitObj        = hit.collider.gameObject;
                var interactables = hitObj.GetComponents <IUserInteractable>();
                foreach (var interactable in interactables)
                {
                    interactable.OnRaycastHit(info);
                    info.Consumed = true;

                    // run focus method on newly focused objects
                    if (!_focused.Contains(interactable))
                    {
                        interactable.OnFocusEnter();
                        _focused.Add(interactable);
                    }
                }

                // remove focused objects if they are not in the interactables
                var focusedCopy = new List <IUserInteractable>(_focused);
                focusedCopy.ForEach(f =>
                {
                    if (!interactables.Contains(f))
                    {
                        _focused.Remove(f);
                        f.OnFocusExit();
                    }
                });
            }
            // if nothing is hit, send the info to this
            else
            {
                var info = new InteractionInformation(keyState, keyStateDown, keyStateUp, ((IUserInteractionSystem)this).InteractionCamera.transform.position, ray.GetPoint(1f));
                ((IUserInteractable)this).OnRaycastHit(info);

                // remove all focus objects
                var focusedCopy = new List <IUserInteractable>(_focused);
                focusedCopy.ForEach(f =>
                {
                    _focused.Remove(f);
                    f.OnFocusExit();
                });
            }
        }
Exemplo n.º 7
0
 public override async Task StoreResult(string robotName, InteractionInformation interactionInformation, Interaction result)
 {
     Console.WriteLine($"{DateTime.Now}: {robotName} - {result.HappinessGrade} - {result.HappinessExplanation}");
 }