Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }