public async Task <IActionResult> EnsureUser([FromBody] EnsureParams parameters) { var user = await service.Ensure(parameters.Email, parameters.Name); var events = await calendarService.GetEvents(parameters.AccessToken); await eventService.SaveEventsForEmployee(events.Items?.ToEvents(user.EmployeeID)); return(Ok(new CallbackResult { Role = user.Role, Id = user.EmployeeID, })); }
public static async Task Callback(OAuthCreatingTicketContext context) { var data = new EnsureParams { Name = context.Identity.Name, Email = context.Identity.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Email)?.Value, AccessToken = context.AccessToken, }; using (var req = new HttpRequestMessage(HttpMethod.Post, "https://localhost:44313/cb")) { req.Content = new ObjectContent <EnsureParams>(data, new JsonMediaTypeFormatter()); var response = await context.Backchannel.SendAsync(req); var result = await response.Content.ReadAsAsync <CallbackResult>(); if (result.Role != null) { context.Identity.AddClaim(new Claim(ClaimTypes.Role, result.Role)); } context.Identity.AddClaim(new Claim(CustomClaimTypes.EmployeeID, result.Id.ToString())); } }