public Invitation CreateInvitationEntityFromModel(OwnerInvitationModel model, DateTime expirationTime, ApplicationUser creatorPrincipal) { var email = model.SentTo; var userInvited = userBusinessLogic.GetByEmail(email); if (userInvited == null) { userInvited = new Lok.Unik.ModelCommon.Client.User { AppUser = new ApplicationUser { Tenancy = model.Tenancy, ContactEmail = model.SentTo, Status = UserStatus.Invited, DateCreated = DateTime.UtcNow, PrincipalId = string.Format("formsauthentication/{0}", Guid.NewGuid()) } }; userBusinessLogic.CreateNewUser(userInvited, creatorPrincipal); } var list = ContextRegistry.ContextsOf("Principal"); var principalId = list.Single().LocalPath.TrimStart('/'); var invitation = this.ModelToEntity(model); invitation.AcceptingUser = userInvited.AppUser; if (invitation.AuthorizationCode != null) { invitation.AuthorizationCode.ExpirationTime = expirationTime; } invitation.InvitingUserId = principalId; return(invitation); }
private User EntityToModel(Lok.Unik.ModelCommon.Client.User dbUser) { var user = new User { Username = string.IsNullOrEmpty(dbUser.AppUser.UserName) ? dbUser.AppUser.ContactEmail : dbUser.AppUser.UserName, Email = dbUser.AppUser.ContactEmail, Tags = TagUILogic.ToModelTags(dbUser.Tags), Roles = dbUser.AppUser.AccountRoles, Id = dbUser.Id, Status = dbUser.AppUser.Status, DateCreated = timeZoneService.ConvertUtcToLocal(dbUser.AppUser.DateCreated, "MM/dd/yyyy HH:mm:ss"), AdminOver = dbUser.AppUser.Tenancy }; var relationshipAppUserId = dbUser.AppUser.ContainerId; user.RoleInvitation = GetRoleInvitationForUserId(relationshipAppUserId); return(user); }