Beispiel #1
0
        private async Task <string> StartInitializeUserAsync(SignInContext signInContext, IAsyncCollector <EventGridEvent> collector, ILogger log)
        {
            string id                           = Guid.NewGuid().ToString();
            string location                     = $"{serviceBaseAddress}/UserInit/{id}";
            UserInitializeStatus status         = new UserInitializeStatus(id, false);
            DataAccessResult     entryAddResult = await dataService.SetUserInitializeStatusAsync(status);

            if (!entryAddResult.Success)
            {
                log.LogWarning("Cannot add user initialize status to database. Status {statusCode}", entryAddResult.StatusCode);
            }
            try
            {
                var eventGridEvent = new EventGridEvent(
                    id: $"UserInit-{Guid.NewGuid()}",
                    subject: signInContext.SignedInUser,
                    data: new Models.UserInitializeCommand(signInContext, id),
                    eventType: "DL444.Ucqu.UserInit",
                    eventTime: DateTime.UtcNow,
                    dataVersion: "1.0"
                    );
                await collector.AddAsync(eventGridEvent);
            }
            catch (Exception ex)
            {
                log.LogError(ex, "Cannot trigger user initialization.");
            }
            return(location);
        }
Beispiel #2
0
 public Task <DataAccessResult> SetUserInitializeStatusAsync(UserInitializeStatus status) => SetResourceAsync(status);