コード例 #1
0
        public virtual async Task <Status> Run([HttpTrigger(AuthorizationLevel.Admin)] HttpRequest req, ILogger log,
                                               [SignalR(HubName = AmblOnState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                               [Blob("state-api/{headers.lcu-ent-lookup}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob,
                                               [Blob("state-api/{headers.lcu-ent-lookup}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/locations", FileAccess.ReadWrite)] CloudBlockBlob locationStateBlob)
        {
            var status = await stateBlob.WithStateHarness <UsersState, EditTopListRequest, UsersStateHarness>(req, signalRMessages, log,
                                                                                                              async (harness, reqData, actReq) =>
            {
                log.LogInformation($"EditTopList");

                var stateDetails = StateUtils.LoadStateDetails(req);

                var username = stateDetails.Username;

                await harness.EditTopList(amblGraph, stateDetails.Username, stateDetails.EnterpriseLookup, reqData.TopList);

                var locationStateDetails = StateUtils.LoadStateDetails(req);

                locationStateDetails.StateKey = "locations";

                var exActReq = await req.LoadBody <ExecuteActionRequest>();

                return(await locationStateBlob.WithStateHarness <LocationsState, EditTopListRequest, LocationsStateHarness>(locationStateDetails, exActReq, signalRMessages, log,
                                                                                                                            async(newharness, reqData, actReq) =>
                {
                    log.LogInformation($"EditTopList Location Refresh");

                    await newharness.RefreshLocations(amblGraph, locationStateDetails.EnterpriseLookup, username);

                    return Status.Success;
                }));
            });

            return(status);
        }
コード例 #2
0
        public static async Task <ConnectToStateResponse> Run([HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequest req, ILogger log,
                                                              ClaimsPrincipal claimsPrincipal, //[LCUStateDetails]StateDetails stateDetails,
                                                              [SignalR(HubName = LimitedTrialState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                                              [SignalR(HubName = LimitedTrialState.HUB_NAME)] IAsyncCollector <SignalRGroupAction> signalRGroupActions,
                                                              [Blob("state-api/{headers.lcu-ent-lookup}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            var stateDetails = StateUtils.LoadStateDetails(req);

            if (stateDetails.StateKey == "data-apps")
            {
                return(await signalRMessages.ConnectToState <LimitedDataAppsManagementState>(req, log, claimsPrincipal, stateBlob, signalRGroupActions));
            }
            else if (stateDetails.StateKey == "data-flow")
            {
                return(await signalRMessages.ConnectToState <LimitedDataFlowManagementState>(req, log, claimsPrincipal, stateBlob, signalRGroupActions));
            }
            else if (stateDetails.StateKey == "journeys")
            {
                return(await signalRMessages.ConnectToState <LimitedJourneysManagementState>(req, log, claimsPrincipal, stateBlob, signalRGroupActions));
            }
            else
            {
                throw new Exception("A valid State Key must be provided (data-apps, data-flow).");
            }
        }
コード例 #3
0
        public virtual async Task <HttpResponseMessage> Run([HttpTrigger] HttpRequest req,
                                                            [SignalR(HubName = IoTEnsembleState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                                            [Blob("state-api/{headers.lcu-ent-lookup}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            var queried = new ListAllDeviceNamesResponse()
            {
                Status = Status.GeneralError
            };

            var status = await stateBlob.WithStateHarness <IoTEnsembleSharedState, ListAllDeviceNamesRequest, IoTEnsembleSharedStateHarness>(req, signalRMessages, log,
                                                                                                                                             async (harness, dataReq, actReq) =>
            {
                log.LogInformation($"Running a ListAllDeviceNames Query: {dataReq}");

                var stateDetails = StateUtils.LoadStateDetails(req);

                if (dataReq == null)
                {
                    dataReq = new ListAllDeviceNamesRequest();
                }

                queried.DeviceNames = await harness.ListAllDeviceNames(appIoTArch, dataReq.ChildEntLookup, dataReq.Filter);

                queried.Status = Status.Success;

                return(queried.Status);
            }, preventStatusException : true, withLock : false);

            var statusCode = status ? HttpStatusCode.OK : HttpStatusCode.InternalServerError;

            return(new HttpResponseMessage(statusCode)
            {
                Content = new StringContent(queried.ToJSON(), Encoding.UTF8, "application/json")
            });
        }
コード例 #4
0
        public static async Task <ConnectToStateResponse> Run([HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequest req, ILogger log,
                                                              ClaimsPrincipal claimsPrincipal, //[LCUStateDetails]StateDetails stateDetails,
                                                              [SignalR(HubName = AmblOnState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                                              [SignalR(HubName = AmblOnState.HUB_NAME)] IAsyncCollector <SignalRGroupAction> signalRGroupActions,
                                                              [Blob("state-api/{headers.lcu-ent-lookup}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            var stateDetails = StateUtils.LoadStateDetails(req);

            if (stateDetails.StateKey == "users")
            {
                return(await signalRMessages.ConnectToState <UsersState>(req, log, claimsPrincipal, stateBlob, signalRGroupActions));
            }
            else if (stateDetails.StateKey == "itineraries")
            {
                return(await signalRMessages.ConnectToState <ItinerariesState>(req, log, claimsPrincipal, stateBlob, signalRGroupActions));
            }
            else if (stateDetails.StateKey == "locations")
            {
                return(await signalRMessages.ConnectToState <LocationsState>(req, log, claimsPrincipal, stateBlob, signalRGroupActions));
            }
            else
            {
                throw new Exception("A valid State Key must be provided (amblon, itineraries, locations).");
            }
        }
コード例 #5
0
        public virtual async Task <HttpResponseMessage> Run([HttpTrigger] HttpRequest req,
                                                            [SignalR(HubName = IoTEnsembleState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                                            [Blob("state-api/{headers.lcu-ent-lookup}/iotensemble/{headers.x-ms-client-principal-id}/shared", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            List <IoTEnsembleTelemetryPayload> payloads = null;

            req.Headers.Add("lcu-hub-name", "iotensemble");

            req.Headers.Add("lcu-state-key", "shared");

            var status = await stateBlob.WithStateHarness <IoTEnsembleSharedState, GetDevicesTelemetrySyncRequest, IoTEnsembleSharedStateHarness>(req, signalRMessages, log,
                                                                                                                                                  async (harness, enrollReq, actReq) =>
            {
                log.LogInformation($"GetDevicesTelemetrySync");

                var stateDetails = StateUtils.LoadStateDetails(req);

                payloads = harness.State.Telemetry?.Payloads?.OrderByDescending(p => p.Timestamp).ToList() ?? new List <IoTEnsembleTelemetryPayload>();

                return(Status.Success);
            }, withLock : false);

            return(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(
                    content: payloads.ToJSON(),
                    encoding: System.Text.Encoding.UTF8,
                    mediaType: "application/json")
            });
        }
コード例 #6
0
        public virtual async Task <Status> Run([HttpTrigger] HttpRequest req,
                                               [SignalR(HubName = IoTEnsembleState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                               [Blob("state-api/{headers.lcu-ent-lookup}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            var status = await stateBlob.WithStateHarness <IoTEnsembleSharedState, SendCloudMessageRequest, IoTEnsembleSharedStateHarness>(req, signalRMessages, log,
                                                                                                                                           async (harness, dataReq, actReq) =>
            {
                log.LogInformation($"Setting Loading device telemetry from UpdateTelemetrySync...");

                harness.State.Telemetry.Loading = true;

                return(Status.Success);
            }, preventStatusException : true, withLock : false);

            if (status)
            {
                status = await stateBlob.WithStateHarness <IoTEnsembleSharedState, SendCloudMessageRequest, IoTEnsembleSharedStateHarness>(req, signalRMessages, log,
                                                                                                                                           async (harness, dataReq, actReq) =>
                {
                    log.LogInformation($"SendCloudMessage");

                    var stateDetails = StateUtils.LoadStateDetails(req);

                    await harness.SendCloudMessage(appIoTArch, dataReq.DeviceName, dataReq.Message);

                    harness.State.Telemetry.Loading = false;

                    return(Status.Success);
                }, withLock : false);
            }

            return(status);
        }
コード例 #7
0
 private void StartWaitingStateIfPossible(Entity weapon)
 {
     if (InputManager.CheckAction(ShotActions.SHOT))
     {
         StateUtils.SwitchEntityState <ShaftWaitingStateComponent>(weapon, this.weaponStates);
     }
 }
コード例 #8
0
        public virtual async Task <Status> Run([HttpTrigger] HttpRequest req, ILogger log,
                                               [SignalR(HubName = GuidedTourState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                               [Blob("state-api/{headers.lcu-ent-api-key}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            var stateDetails = StateUtils.LoadStateDetails(req);

            if (stateDetails.StateKey == "journeys")
            {
                return(await stateBlob.WithStateHarness <JourneysManagementState, RefreshRequest, JourneysManagementStateHarness>(req, signalRMessages, log,
                                                                                                                                  async (harness, refreshReq, actReq) =>
                {
                    log.LogInformation($"Refreshing Journeys state");

                    return await refreshJourneys(harness, log, stateDetails);
                }));
            }
            else if (stateDetails.StateKey == "tours")
            {
                return(await stateBlob.WithStateHarness <ToursManagementState, RefreshRequest, ToursManagementStateHarness>(req, signalRMessages, log,
                                                                                                                            async (harness, refreshReq, actReq) =>
                {
                    log.LogInformation($"Refreshing Tours state");

                    return await refreshTours(harness, log, stateDetails);
                }));
            }
            else
            {
                throw new Exception("A valid State Key must be provided (journeys, tours).");
            }
        }
コード例 #9
0
    public async Task <IActionResult> Index(OAuthTesterViewModel oAuthTesterViewModel)
    {
        var state = StateUtils.Generate();
        var oAuthClientConfiguration = oAuthTesterViewModel.OAuthClientConfiguration;
        var oAuthFlows = _oAuthFlowsFactory.CreateOAuthFlows(oAuthClientConfiguration.Name);
        var response   = await oAuthFlows.RunFlow(oAuthClientConfiguration, state, oAuthTesterViewModel.Username, oAuthTesterViewModel.Password, ResponseModes.FormPost);

        switch (response)
        {
        case OAuthRedirect oAuthRedirect:
            TempData[Common.State]        = oAuthRedirect.State;
            TempData[Common.CodeVerifier] = oAuthRedirect.CodeVerifier;
            TempData[TempDataNames.OAuthTesterConfigurationName] = oAuthTesterViewModel.ConfigurationName;
            return(Redirect(oAuthRedirect.Uri));

        case AccessTokenResponse accessTokenResponse:
            oAuthTesterViewModel.AccessTokenResponse = Utils.Mappers.OAuthMapper.Map(accessTokenResponse);
            break;

        case DeviceCodeResponse deviceCodeResponse:
            TempData[TempDataNames.OAuthTesterConfigurationName] = oAuthTesterViewModel.ConfigurationName;
            TempData.Write(TempDataNames.DeviceCodeResponse, deviceCodeResponse);
            return(RedirectToAction(nameof(PingDeviceToken)));

        case ErrorResponse errorResponse:
            return(ProcessOAuthClientErrorResponse(errorResponse));
        }

        return(View(oAuthTesterViewModel));
    }
コード例 #10
0
        protected virtual async Task <Status> handleAdminRevoke(HttpRequest req, ILogger log,
                                                                IAsyncCollector <SignalRMessage> signalRMessages, CloudBlockBlob stateBlob)
        {
            var status = await stateBlob.WithStateHarness <IoTEnsembleAdminState, UpdateTelemetrySyncRequest, IoTEnsembleAdminStateHarness>(req, signalRMessages, log,
                                                                                                                                            async (harness, dataReq, actReq) =>
            {
                log.LogInformation($"Setting Loading device telemetry from UpdateTelemetrySync...");

                harness.State.Loading = true;

                return(Status.Success);
            }, preventStatusException : true, withLock : false);

            if (status)
            {
                status = await stateBlob.WithStateHarness <IoTEnsembleAdminState, RevokeDeviceEnrollmentRequest, IoTEnsembleAdminStateHarness>(req, signalRMessages, log,
                                                                                                                                               async (harness, enrollReq, actReq) =>
                {
                    log.LogInformation($"RevokeDeviceEnrollment");

                    var stateDetails = StateUtils.LoadStateDetails(req);

                    await harness.RevokeDeviceEnrollment(appIoTArch, entMgr, idMgr, stateDetails.EnterpriseLookup, enrollReq.DeviceID);

                    harness.State.Loading = false;

                    return(Status.Success);
                }, withLock : false);
            }

            return(status);
        }
コード例 #11
0
    public IOAuthClientResponse CreateAuthorizationCodeWithPkceRedirect(IEnumerable <string> scopes = null, string state = null)
    {
        var codeVerifier = PkceUtils.GenerateCodeVerifier();

        var queryStringParams = new Dictionary <string, string>
        {
            { Common.ResponseType, ResponseTypes.Code },
            { Common.ClientId, _configuration.ClientId },
            { Common.RedirectUri, _configuration.RedirectUri },
            { Common.State, state ?? StateUtils.Generate() },
            { Common.CodeChallenge, PkceUtils.GenerateCodeChallenge(codeVerifier) },
            { Common.CodeChallengeMethod, CodeChallengeMethodTypes.S256 }
        }.AddScopes(scopes);

        var redirectUri = QueryHelpers.AddQueryString(_configuration.AuthorizeEndpoint, queryStringParams);

        var response = new OAuthRedirect
        {
            Uri          = redirectUri,
            State        = state,
            CodeVerifier = codeVerifier
        };

        return(response);
    }
コード例 #12
0
        public virtual async Task <Status> Run([HttpTrigger] HttpRequest req, ILogger log,
                                               [SignalR(HubName = UserManagementState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                               [Blob("state-api/{headers.lcu-ent-api-key}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            var stateDetails = StateUtils.LoadStateDetails(req);

            if (stateDetails.StateKey == "billing")
            {
                return(await stateBlob.WithStateHarness <UserBillingState, RefreshBillingRequest, UserBillingStateHarness>(req, signalRMessages, log,
                                                                                                                           async (harness, refreshReq, actReq) =>
                {
                    log.LogInformation($"Refreshing user billing state");

                    return await refreshUserBilling(harness, log, stateDetails, refreshReq);
                }));
            }
            else
            {
                return(await stateBlob.WithStateHarness <UserManagementState, RefreshUserRequest, UserManagementStateHarness>(req, signalRMessages, log,
                                                                                                                              async (harness, refreshReq, actReq) =>
                {
                    log.LogInformation($"Refreshing user management state");

                    return await refreshUserManagement(harness, log, stateDetails, refreshReq);
                }));
            }
        }
コード例 #13
0
        public virtual async Task <Status> Run([HttpTrigger] HttpRequest req, ILogger log,
                                               [SignalR(HubName = LowCodeUnitSharedState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                               [Blob("state-api/{headers.lcu-ent-lookup}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            var status = await stateBlob.WithStateHarness <LowCodeUnitSharedState, EnrollDeviceRequest, LowCodeUnitSharedStateHarness>(req, signalRMessages, log,
                                                                                                                                       async (harness, dataReq, actReq) =>
            {
                log.LogInformation($"Setting Loading device telemetry from UpdateTelemetrySync...");

                harness.State.HomePage.Loading = true;

                return(Status.Success);
            }, preventStatusException : true);

            if (status)
            {
                status = await stateBlob.WithStateHarness <LowCodeUnitSharedState, EnrollDeviceRequest, LowCodeUnitSharedStateHarness>(req, signalRMessages, log,
                                                                                                                                       async (harness, enrollReq, actReq) =>
                {
                    log.LogInformation($"EnrollDevice");

                    var stateDetails = StateUtils.LoadStateDetails(req);

                    await harness.EnrollDevice(appArch);

                    harness.State.HomePage.Loading = false;

                    return(Status.Success);
                });
            }

            return(status);
        }
コード例 #14
0
 private void MakeQuickShot(Entity weapon)
 {
     StateUtils.SwitchEntityState <ShaftIdleStateComponent>(weapon, this.weaponStates);
     if (weapon.HasComponent <ShootableComponent>())
     {
         base.ScheduleEvent <BeforeShotEvent>(weapon);
         base.ScheduleEvent <ShotPrepareEvent>(weapon);
     }
 }
コード例 #15
0
 private void MakeAimingShot(Entity weapon, Vector3 workingDir)
 {
     StateUtils.SwitchEntityState <ShaftAimingWorkFinishStateComponent>(weapon, this.weaponStates);
     if (weapon.HasComponent <ShootableComponent>())
     {
         base.ScheduleEvent <BeforeShotEvent>(weapon);
         base.ScheduleEvent(new ShaftAimingShotPrepareEvent(workingDir), weapon);
     }
 }
コード例 #16
0
        private void AddOrChangeWeaponBlockedComponent(Entity weapon, RaycastHit hitInfo)
        {
            WeaponBlockedComponent component = !weapon.HasComponent <WeaponBlockedComponent>() ? ((WeaponBlockedComponent)weapon.CreateNewComponentInstance(typeof(WeaponBlockedComponent))) : weapon.GetComponent <WeaponBlockedComponent>();

            component.BlockPoint      = PhysicsUtil.GetPulledHitPoint(hitInfo);
            component.BlockGameObject = hitInfo.collider.gameObject;
            component.BlockNormal     = hitInfo.normal;
            StateUtils.SwitchEntityState(weapon, component, this.weaponStates);
        }
コード例 #17
0
        protected virtual async Task <StateDetails> handleInput(LCUStateDetailsAttribute attr, ValueBindingContext valBinding)
        {
            var context = (HttpContext)valBinding.FunctionContext.InstanceServices.GetService(typeof(HttpContext));

            // var context = httpContextAccessor.HttpContext;

            var stateDetails = StateUtils.LoadStateDetails(context.Request, context.User);

            return(stateDetails);
        }
コード例 #18
0
        private bool CheckHandleWeaponIntersectionStatus(Entity weapon)
        {
            bool flag = weapon.HasComponent <WeaponUndergroundComponent>();

            if (flag)
            {
                StateUtils.SwitchEntityState <ShaftIdleStateComponent>(weapon, this.weaponStates);
            }
            return(flag);
        }
コード例 #19
0
 public void CheckWorkFinishState(TimeUpdateEvent evt, ShaftAimingWorkFinishWeaponControllerNode weapon)
 {
     if (weapon.shaftAimingWorkFinishState.FinishTimer < weapon.shaftStateConfig.FinishToIdleTransitionTimeSec)
     {
         weapon.shaftAimingWorkFinishState.FinishTimer += evt.DeltaTime;
     }
     else
     {
         StateUtils.SwitchEntityState <ShaftIdleStateComponent>(weapon.Entity, this.weaponStates);
     }
 }
コード例 #20
0
        public override void EnterStructIncr(LatteParser.StructIncrContext context)
        {
            var objectType = new ExpressionTypeVisitor().GetFieldType(context.expr(), context.ID().GetText(), context.start.Line);

            if (!objectType.Equals(new LatteParser.TIntContext()))
            {
                StateUtils.InterruptWithMessage(
                    context.start.Line,
                    context.ID().Symbol.Column,
                    ErrorMessages.DecrFieldOnlyOnInt(objectType.GetText(), context.ID().GetText()));
            }
        }
コード例 #21
0
        public override void EnterStructAss(LatteParser.StructAssContext context)
        {
            var expressionVisitor = new ExpressionTypeVisitor();
            var objectType        = expressionVisitor.GetFieldType(context.expr()[0], context.ID().GetText(), context.start.Line);
            var exprType          = new ExpressionTypeVisitor().Visit(context.expr()[1]);

            if (!objectType.Equals(exprType) && !IsTypeParent(exprType, objectType))
            {
                StateUtils.InterruptWithMessage(
                    context.start.Line,
                    context.ID().Symbol.Column,
                    ErrorMessages.FieldExprTypesMismatch(objectType.GetText(), context.ID().GetText()));
            }
        }
コード例 #22
0
        public virtual async Task <Status> Run([HttpTrigger] HttpRequest req, ILogger log,
                                               [SignalR(HubName = FathymForecastState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                               [Blob("state-api/{headers.lcu-ent-api-key}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            return(await stateBlob.WithStateHarness <FathymForecastState, CreateAPISubscriptionRequest, FathymForecastStateHarness>(req, signalRMessages, log,
                                                                                                                                    async (harness, refreshReq, actReq) =>
            {
                log.LogInformation($"CreateAPISubscription");

                var stateDetails = StateUtils.LoadStateDetails(req);

                return await harness.CreateAPISubscription(entArch, stateDetails.EnterpriseAPIKey, stateDetails.Username);
            }));
        }
コード例 #23
0
 private void StartWorkActivationStateIfPossible(ShaftWaitingWeaponControllerNode weapon, float dt)
 {
     if (!weapon.Entity.HasComponent <WeaponUndergroundComponent>())
     {
         if (weapon.shaftWaitingState.WaitingTimer < weapon.shaftStateConfig.WaitingToActivationTransitionTimeSec)
         {
             weapon.shaftWaitingState.WaitingTimer += dt;
         }
         else if (weapon.weaponEnergy.Energy >= 1f)
         {
             StateUtils.SwitchEntityState <ShaftAimingWorkActivationStateComponent>(weapon.Entity, this.weaponStates);
         }
     }
 }
コード例 #24
0
        public virtual async Task <Status> Run([HttpTrigger] HttpRequest req,
                                               [SignalR(HubName = IoTEnsembleState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                               [Blob("state-api/{headers.lcu-ent-lookup}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            var stateDetails = StateUtils.LoadStateDetails(req);

            if (stateDetails.StateKey.StartsWith("admin"))
            {
                return(await handleAdminRevoke(req, log, signalRMessages, stateBlob));
            }
            else
            {
                return(await handleSharedRevoke(req, log, signalRMessages, stateBlob));
            }
        }
コード例 #25
0
        public virtual async Task <Status> Run([HttpTrigger] HttpRequest req, ILogger log,
                                               [SignalR(HubName = ApplicationManagementState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                               [Blob("state-api/{headers.lcu-ent-api-key}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            return(await stateBlob.WithStateHarness <ApplicationManagementState, SaveDataAppRequest, ApplicationManagementStateHarness>(req, signalRMessages, log,
                                                                                                                                        async (harness, reqData, actReq) =>
            {
                var stateDetails = StateUtils.LoadStateDetails(req);

                log.LogInformation($"Setting Active App: {reqData.App.Name}");

                await harness.SetActiveApp(appMgr, stateDetails.EnterpriseAPIKey, reqData.App);

                return Status.Success;
            }));
        }
コード例 #26
0
        public virtual async Task <Status> Run([HttpTrigger(AuthorizationLevel.Admin)] HttpRequest req, ILogger log,
                                               [SignalR(HubName = AmblOnState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                               [Blob("state-api/{headers.lcu-ent-lookup}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            return(await stateBlob.WithStateHarness <ItinerariesState, AddItineraryRequest, ItinerariesStateHarness>(req, signalRMessages, log,
                                                                                                                     async (harness, reqData, actReq) =>
            {
                log.LogInformation($"AddItinerary");

                var stateDetails = StateUtils.LoadStateDetails(req);

                await harness.AddItinerary(amblGraph, stateDetails.Username, stateDetails.EnterpriseLookup, reqData.Itinerary);

                return Status.Success;
            }));
        }
コード例 #27
0
        public virtual async Task <Status> Run([HttpTrigger(AuthorizationLevel.Admin)] HttpRequest req, ILogger log,
                                               [SignalR(HubName = UsersState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                               [Blob("state-api/{headers.lcu-ent-api-key}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            return(await stateBlob.WithStateHarness <UsersState, AddPhotoRequest, UsersStateHarness>(req, signalRMessages, log,
                                                                                                     async (harness, reqData, actReq) =>
            {
                log.LogInformation($"AddPhoto");

                var stateDetails = StateUtils.LoadStateDetails(req);

                await harness.AddPhoto(entMgr, appMgr, amblGraph, stateDetails.Username, stateDetails.EnterpriseAPIKey, stateDetails.ApplicationID, reqData.Photo, reqData.AlbumID, reqData.LocationID);

                return Status.Success;
            }));
        }
        public virtual async Task <Status> Run([HttpTrigger] HttpRequest req, ILogger log,
                                               [SignalR(HubName = DataFlowManagementState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                               [Blob("state-api/{headers.lcu-ent-api-key}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            return(await stateBlob.WithStateHarness <DataFlowManagementState, AddIoTInfrastructureRequest, DataFlowManagementStateHarness>(req, signalRMessages, log,
                                                                                                                                           async (harness, reqData, actReq) =>
            {
                log.LogInformation($"Adding IoT Infrastructure");

                var stateDetails = StateUtils.LoadStateDetails(req);

                await harness.AddIoTInfrastructure(devOpsArch, stateDetails.EnterpriseAPIKey, stateDetails.Username);

                return Status.Success;
            }));
        }
コード例 #29
0
        public virtual async Task <Status> Run([HttpTrigger] HttpRequest req, ILogger log,
                                               [SignalR(HubName = IDEManagementState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                               [Blob("state-api/{headers.lcu-ent-api-key}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            return(await stateBlob.WithStateHarness <IDESettingsState, ToggleAddNewActivityRequest, IDESettingsStateHarness>(req, signalRMessages, log,
                                                                                                                             async (harness, reqData, actReq) =>
            {
                log.LogInformation($"ToggleAddNewActivity");

                var stateDetails = StateUtils.LoadStateDetails(req);

                await harness.ToggleAddNew(AddNewTypes.Activity);

                return Status.Success;
            }));
        }
コード例 #30
0
        public virtual async Task <Status> Run([HttpTrigger(AuthorizationLevel.Admin)] HttpRequest req, ILogger log,
                                               [SignalR(HubName = AmblOnState.HUB_NAME)] IAsyncCollector <SignalRMessage> signalRMessages,
                                               [Blob("state-api/{headers.lcu-ent-lookup}/{headers.lcu-hub-name}/{headers.x-ms-client-principal-id}/{headers.lcu-state-key}", FileAccess.ReadWrite)] CloudBlockBlob stateBlob)
        {
            return(await stateBlob.WithStateHarness <UsersState, GlobalSearchRequest, UsersStateHarness>(req, signalRMessages, log,
                                                                                                         async (harness, reqData, actReq) =>
            {
                log.LogInformation($"GlobalSearch");

                var stateDetails = StateUtils.LoadStateDetails(req);

                //await harness.GlobalSearch(reqData.SearchTerm);

                return Status.Success;
            }));
        }