public UserInfoViewModel GetUserInfo() { var externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity); var userInfo = new UserInfoViewModel { UserName = User.Identity.GetUserName(), HasRegistered = externalLogin == null, LoginProvider = externalLogin?.LoginProvider }; return userInfo; }
public async Task <IHttpActionResult> GetUserInfo() { ExternalLoginData externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity); var userId = Guid.Parse(User.Identity.GetUserId()); var user = UnitOfWork.UsersRepository.Find(userId); var orgUser = user as OrgUser; var phoneNumber = await UserManager.GetPhoneNumberAsync(userId); var twoFactorAuth = await UserManager.GetTwoFactorEnabledAsync(userId); var userInfo = new UserInfoViewModel { UserId = CurrentUser.Id, Email = User.Identity.GetUserName(), EmailConfirmed = user.EmailConfirmed, PhoneNumber = phoneNumber, PhoneNumberConfirmed = user.PhoneNumberConfirmed, HasRegistered = externalLogin == null, LoginProvider = externalLogin != null ? externalLogin.LoginProvider : null, Language = CurrentOrganisation?.DefaultLanguage?.Calture, Calendar = CurrentOrganisation?.DefaultCalendar?.SystemName, Roles = ServiceContext.UserManager.GetRoles(CurrentUser.Id), TwoFactorAuthenticationEnabled = twoFactorAuth, }; if (orgUser != null) { userInfo.OrganisationId = CurrentOrganisationId; var subscriptionService = new SubscriptionService(UnitOfWork); var expiryDate = subscriptionService.GetLatest(orgUser.Id); var lastSubscription = subscriptionService.GetLastSubscription(orgUser.Id); var quota = subscriptionService.GetMonthlyQuota(orgUser.Id); userInfo.Profile = new UserProfileDTO { FirstName = orgUser.FirstName, Surname = orgUser.Surname, Gender = orgUser.Gender, Birthdate = orgUser.Birthdate, Address = orgUser.Address, Email = orgUser.Email, // THIS COULD BE REMOVED AS WELL PhoneNumber = orgUser.PhoneNumber, // REMOVE THIS PROPERTY IsSubscribed = orgUser.IsSubscribed, ExpiryDate = expiryDate, LastSubscription = lastSubscription, MonthlyQuota = quota }; } return(Ok(userInfo)); }