public async Task <IActionResult> Me(CancellationToken cancellationToken) { var emailClaim = HttpContext.User.GetEmail(); var nameClaim = HttpContext.User.GetName(); var phoneClaim = HttpContext.User.GetMobilePhone(); if (string.IsNullOrEmpty(emailClaim)) { return(BadRequest("No email provided.")); } var user = new Domain.ApplicationUser(); try { user = await _userRetrievalService.GetUserByEmailAsync(emailClaim, null, cancellationToken); } catch (Services.Exceptions.NotFoundException) { user = await _userManagementService.CreateNewUserAsync( nameClaim, emailClaim, phoneClaim ); } return(Ok(new UserDto(user))); }
public async Task <(bool, string)> CreateAdmin(Domain.ApplicationUser user, string url) { var success = true; var msg = string.Empty; using (TransactionScope tx = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { // Create Domain in DB. var newUser = await accesscontrol.CreateUser(user, url, new[] { Core.LogicConstants.Roles.Administrator }); var admin = new Domain.Admin { ApplicationUser = newUser, Id = newUser.Id }; adminParticipantRepo.Insert(admin); await adminParticipantRepo.SaveAsync(); // Create Blockchain data. (success, msg) = await bcAdminParticipants.Create(AdminDomainToApiModel(admin)); if (success) { tx.Complete(); } } return(success, msg); }
public async Task <(bool, string)> UpdateAdmin(Domain.ApplicationUser admin) { var success = true; var msg = string.Empty; using (TransactionScope tx = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { // Update Domain in DB. var user = await accesscontrol.UpdateUser(admin, new[] { Core.LogicConstants.Roles.Administrator }); // Create Blockchain data. (success, msg) = await bcAdminParticipants.Update(AdminDomainToApiModel(user.Admin)); if (success) { tx.Complete(); } } return(success, msg); }
public void Initialize(Domain.ApplicationUser principal) { _principal = principal; }