public async Task <IdentityResult> CreateNewUserWithExternalLogin(ExternalLoginInfo info, string requestedOrganization) { var externalIdentity = info.ExternalIdentity; var userSettings = _organizationDbSet.Where(o => o.ShortName == requestedOrganization) .Select(u => new { u.CultureCode, u.TimeZone }) .First(); var user = new ApplicationUser { UserName = externalIdentity.FindFirst(ClaimTypes.Email).Value, Email = externalIdentity.FindFirst(ClaimTypes.Email).Value, FirstName = externalIdentity.FindFirst(ClaimTypes.GivenName).Value, LastName = externalIdentity.FindFirst(ClaimTypes.Surname).Value, OrganizationId = _organizationService.GetOrganizationByName(requestedOrganization).Id, EmploymentDate = DateTime.UtcNow, CultureCode = userSettings.CultureCode ?? ConstBusinessLayer.DefaultCulture, TimeZone = userSettings.TimeZone, NotificationsSettings = null }; if (externalIdentity.FindFirst("picture") != null) { byte[] data = data = await new WebClient().DownloadDataTaskAsync(externalIdentity.FindFirst("picture").Value); var picture = await _pictureService.UploadFromStream(new MemoryStream(data), "image/jpeg", $"{Guid.NewGuid()}.jpg", user.OrganizationId); user.PictureId = picture; } var result = _userManager.Create(user); if (!result.Succeeded) { return(result); } AddNewUserRoles(user.Id); return(result); }