コード例 #1
0
        private void Update(Entities.User entity, User user, string password = null)
        {
            entity.FirstName   = user.FirstName;
            entity.LastName    = user.LastName;
            entity.CompanyId   = user.CompanyId.Value;
            entity.Email       = user.Email;
            entity.CompanyRole = user.CompanyRole;

            entity.Roles.RemoveAll(ur => user.Roles.All(r =>
                                                        r.BuildingId.Value != ur.BuildingId && r.UserBuildingRole != ur.UserBuildingRole &&
                                                        user.CompanyId.Value != ur.CompanyId));

            entity.Roles.AddRange(user.Roles
                                  .Where(r =>
                                         entity.Roles.All(ur => r.BuildingId.Value != ur.BuildingId && r.UserBuildingRole != ur.UserBuildingRole && user.CompanyId.Value != ur.CompanyId))
                                  .Select(r => new UserRole
            {
                BuildingId       = r.BuildingId.Value,
                CompanyId        = user.CompanyId.Value,
                UserBuildingRole = r.UserBuildingRole,
                UserId           = entity.Id
            }));

            if (password != null)
            {
                entity.Password = _bubelSoftUserPassword.Hash(new UserLogInInfo
                {
                    Email    = entity.Email,
                    Password = password
                });
            }
        }
コード例 #2
0
        private static User Create(Entities.User entity)
        {
            var user = new User(new UserId(entity.Id), entity.FirstName, entity.LastName, entity.CompanyRole, entity.Email);

            if (entity.CompanyId != null)
            {
                user.From(new CompanyId(entity.CompanyId.Value));
            }

            entity.Roles.ForEach(r => user.AddRole(new BuildingId(r.BuildingId), r.UserBuildingRole));

            return(user);
        }