public ApplicationUser GetApplicationUser(string applicationName, Guid userId) { try { var databaseAccessorFactory = new DatabaseAccessors.AccessorFactory(); IApplicationsAccessor applicationAccessor = databaseAccessorFactory.CreateAccessor <IApplicationsAccessor>(); var applicationUser = applicationAccessor.FindAllUsersForApplication(applicationName).Where(appUser => appUser.UserId == userId); var user = GetUser(userId); var mappedUser = new ApplicationUser { DisplayName = user.DisplayName, EmailAddress = user.EmailAddress, FirstName = user.FirstName, LastName = user.LastName, UserId = user.UserId, Claims = user.Applications.Where(app => app.ApplicationName == applicationName).Select(app => app.Claims).FirstOrDefault() }; return(mappedUser); } catch (Exception ex) { Logger.LogError("Error in GetApplicationUsers", ex); return(null); } }
public Application AddApplication(string applicationName) { try { var application = new DatabaseAccessors.DataTransferObjects.Application { Id = Guid.NewGuid(), Name = applicationName }; var databaseAccessorFactory = new DatabaseAccessors.AccessorFactory(); IApplicationsAccessor applicationAccessor = databaseAccessorFactory.CreateAccessor <IApplicationsAccessor>(); var result = applicationAccessor.SaveApplication(application); var mappedApplication = new Application { ApplicationName = result.Name }; return(mappedApplication); } catch (Exception ex) { Logger.LogError("Error in SaveApplication", ex); return(null); } }
public void RemoveApplication(Guid applicationId) { try { var databaseAccessorFactory = new DatabaseAccessors.AccessorFactory(); IApplicationsAccessor applicationAccessor = databaseAccessorFactory.CreateAccessor <IApplicationsAccessor>(); applicationAccessor.DeleteApplication(applicationId); } catch (Exception ex) { Logger.LogError("Error in DeleteApplication", ex); } }
public User GetUser(Guid userId) { try { var user = new User(); user.UserId = userId; var activeDirectoryAccessorFactory = new ActiveDirectoryAccessors.AccessorFactory(); IGraphAccessor graphAccessor = activeDirectoryAccessorFactory.CreateAccessor <IGraphAccessor>(); var userInformation = graphAccessor.GetUserById(userId.ToString()); user.DisplayName = userInformation.DisplayName; user.EmailAddress = userInformation.EmailAddress; user.FirstName = userInformation.FirstName; user.LastName = userInformation.LastName; //Enigne that takes a user and spits out claims var databaseAccessorFactory = new DatabaseAccessors.AccessorFactory(); IApplicationsAccessor applicationAccessor = databaseAccessorFactory.CreateAccessor <IApplicationsAccessor>(); IClaimsAccessor claimsAccessor = databaseAccessorFactory.CreateAccessor <IClaimsAccessor>(); IUserClaimsAccessor userClaimsAccessor = databaseAccessorFactory.CreateAccessor <IUserClaimsAccessor>(); IMembershipsAccessor membershipsAccessor = databaseAccessorFactory.CreateAccessor <IMembershipsAccessor>(); var userClaims = userClaimsAccessor.FindAllUserClaims(user.UserId); var userApplications = membershipsAccessor.FindAllUserApplications(user.UserId); var applicationClaims = new List <ApplicationClaims>(); foreach (var userApplication in userApplications) { var application = applicationAccessor.Find(userApplication.ApplicationId); var applicationClaim = new ApplicationClaims { ApplicationName = application.Name, Claims = new ClaimData[0] }; applicationClaims.Add(applicationClaim); } foreach (var userClaim in userClaims) { var userClaimData = claimsAccessor.Find(userClaim.ClaimId); var application = applicationAccessor.Find(userClaimData.ApplicationId); var applicationClaim = applicationClaims.Where(app => app.ApplicationName == application.Name).FirstOrDefault(); var claimData = new ClaimData { ClaimType = userClaimData.ClaimType, ClaimValue = userClaimData.ClaimValue }; var claimDataList = applicationClaim.Claims.ToList(); claimDataList.Add(claimData); applicationClaim.Claims = claimDataList.ToArray(); } user.Applications = applicationClaims.ToArray(); return(user); } catch (Exception ex) { Logger.LogError("Error in GetUser", ex); return(null); } }