public void UserCompare_Tests()
        {
            List <UserBase> oUserBaseList;

            var res = UserBase.GetUsers(_connectionServer, out oUserBaseList, 1, 5, null);

            Assert.IsTrue(res.Success, "GetUsers failed");

            //hit a couple of the list sorting entries
            UserComparer oCompareer = new UserComparer("DTMFAccessID");

            oUserBaseList.Sort(oCompareer);

            oCompareer = new UserComparer("Alias");
            oUserBaseList.Sort(oCompareer);

            oCompareer = new UserComparer("FirstName");
            oUserBaseList.Sort(oCompareer);

            oCompareer = new UserComparer("LastName");
            oUserBaseList.Sort(oCompareer);

            oCompareer = new UserComparer("LastName");
            oUserBaseList.Sort(oCompareer);

            //defaults to alias
            oCompareer = new UserComparer("bogus");
            oUserBaseList.Sort(oCompareer);
        }
        public void GetAllUsersTest()
        {
            var userController = new UserController()
            {
                Request = new HttpRequestMessage
                {
                    Method     = HttpMethod.Get,
                    RequestUri = new Uri(ServiceBaseURL)
                }
            };

            userController.Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
            _response = userController.Get();
            var responseResultSearch = JsonConvert.DeserializeObject <List <User> >(_response.Content.ReadAsStringAsync().Result);
            var userList             =
                responseResultSearch.Select(
                    userEntity =>
                    new User
            {
                User_ID     = userEntity.User_ID,
                First_Name  = userEntity.First_Name,
                Last_Name   = userEntity.Last_Name,
                Employee_ID = userEntity.Employee_ID,
                Project_ID  = userEntity.Project_ID,
                Task_ID     = userEntity.Task_ID
            }).ToList();

            Assert.AreEqual(_response.StatusCode, HttpStatusCode.OK);
            Assert.AreEqual(userList.Any(), true);
            var comparer = new UserComparer();

            CollectionAssert.AreEqual(userList.OrderBy(user => user, comparer), _users.OrderBy(user => user, comparer), comparer);
        }
        public void GetAllUserTest()
        {
            var users    = _userService.GetAllUsers();
            var userList =
                users.Select(
                    userEntity =>
                    new User
            {
                User_ID     = userEntity.User_ID,
                First_Name  = userEntity.First_Name,
                Last_Name   = userEntity.Last_Name,
                Employee_ID = userEntity.Employee_ID,
                Project_ID  = userEntity.Project_ID,
                Task_ID     = userEntity.Task_ID
            }).ToList();
            var comparer = new UserComparer();

            CollectionAssert.AreEqual(
                userList.OrderBy(user => user, comparer),
                _user.OrderBy(user => user, comparer), comparer);
        }
Exemple #4
0
        // 为淘汰算法进行排序
        public List <User> SortRecentUse()
        {
            // 复制出对象
            List <User> aItem = new List <User>();

            // 加读锁
            this.m_lock.AcquireReaderLock(m_nTimeOut);
            try
            {
                aItem.AddRange(this);
            }
            finally
            {
                this.m_lock.ReleaseReaderLock();
            }

            UserComparer comp = new UserComparer();

            aItem.Sort(comp);

            return(aItem);
        }
        private List <User> GetTop(int topCount, TopSortParam sortParam = TopSortParam.SortByMaxScore)
        {
            List <User>  users    = db.Users.ToList();
            UserComparer comparer = null;

            switch (sortParam)
            {
            case TopSortParam.SortByMaxScore:
                comparer = new UserScoreComparer();
                break;

            case TopSortParam.SortByMaxLevel:
                comparer = new UserLevelComparer();
                break;
            }

            users.Sort(comparer);
            if (topCount > users.Count)
            {
                topCount = users.Count;
            }
            return(users.GetRange(0, topCount));
        }
Exemple #6
0
        public void GetUserPages()
        {
            using (var client = CreateClient())
            {
                var count = client.GetUsersCount();
                Assert.GreaterOrEqual(count, client.DefaultPageSize);

                var expected   = count % client.DefaultPageSize;
                var pageNumber = 1 + count / client.DefaultPageSize;

                var firstPage = client.GetUsers().ToList();
                Assert.IsNotNull(firstPage);
                Assert.AreEqual(client.DefaultPageSize, firstPage.Count);

                var secondPage = client.GetUsers(pageNumber).ToList();
                Assert.IsNotNull(secondPage);
                Assert.AreEqual(expected, secondPage.Count);

                var comparer = new UserComparer();
                var result   = firstPage.Union(secondPage, comparer);
                Assert.AreEqual(client.DefaultPageSize + expected, result.Count());
            }
        }
Exemple #7
0
        // 为淘汰算法进行排序
        public List <User> SortRecentUse(CancellationToken token)
        {
            // 复制出对象
            List <User> aItem = new List <User>();

            // 加读锁
            this.m_lock.AcquireReaderLock(m_nTimeOut);
            try
            {
                aItem.AddRange(this);
            }
            finally
            {
                this.m_lock.ReleaseReaderLock();
            }

            token.ThrowIfCancellationRequested();

            UserComparer comp = new UserComparer();

            aItem.Sort(comp);

            return(aItem);
        }
 public iFolderUser[] GetDomainUsers(string DomainID, int numUsers)
 {
     int userCount = 0;
        ArrayList members = new ArrayList();
        Domain domain = Store.GetStore().GetDomain( DomainID );
        if( domain == null )
        {
     throw new SimiasException( "Invalid domain ID " );
        }
        ICSList memberList = domain.GetMemberList();
        foreach( ShallowNode sNode in memberList )
        {
     if ( sNode.Type.Equals( "Member" ) )
     {
      if( numUsers != -1 && ++userCount > numUsers )
      {
       members.Clear();
       break;
      }
      members.Add( new iFolderUser( domain, new Member( domain, sNode ) ) );
     }
        }
        if ( members.Count > 0 )
        {
     UserComparer comparer = new UserComparer();
     members.Sort( 0, members.Count, comparer );
        }
        return ( iFolderUser[] )( members.ToArray( typeof( iFolderUser ) ) );
 }
 public iFolderUser[] SearchForDomainUsers(string DomainID, string SearchString)
 {
     ArrayList members = new ArrayList();
        Hashtable matches = new Hashtable();
        Domain domain = Store.GetStore().GetDomain( DomainID );
        if( domain == null )
        {
     throw new SimiasException( "Invalid domain ID " );
        }
        ICSList searchList = domain.Search( PropertyTags.FullName, SearchString, SearchOp.Begins );
        foreach( ShallowNode sNode in searchList )
        {
     if ( sNode.Type.Equals( "Member" ) )
     {
      Member member = new Member( domain, sNode );
      matches.Add( sNode.ID, member );
      members.Add( new iFolderUser( domain, member ) );
     }
        }
        searchList = domain.Search( PropertyTags.Family, SearchString, SearchOp.Begins );
        foreach( ShallowNode sNode in searchList )
        {
     if ( sNode.Type.Equals( "Member" ) )
     {
      if ( matches.Contains( sNode.ID ) == false )
      {
       members.Add( new iFolderUser( domain, new Member( domain, sNode ) ) );
       matches.Add( sNode.ID, null );
      }
     }
        }
        searchList = domain.Search( BaseSchema.ObjectName, SearchString, SearchOp.Begins );
        foreach( ShallowNode sNode in searchList )
        {
     if ( sNode.Type.Equals( "Member" ) )
     {
      if ( matches.Contains( sNode.ID ) == false )
      {
       members.Add( new iFolderUser( domain, new Member( domain, sNode ) ) );
       matches.Add( sNode.ID, null );
      }
     }
        }
        if ( members.Count > 0 )
        {
     UserComparer comparer = new UserComparer();
     members.Sort( 0, members.Count, comparer );
        }
        return ( iFolderUser[] )( members.ToArray( typeof( iFolderUser ) ) );
 }
 public iFolderUser[] GetiFolderUsers(string iFolderID)
 {
     ArrayList members = new ArrayList();
        ICSList memberList;
        Store store = Store.GetStore();
        Collection col = store.GetCollectionByID(iFolderID);
        if(col == null)
     throw new SimiasException("Invalid iFolderID");
        Simias.Storage.Domain domain = store.GetDomain( col.Domain );
        if ( domain == null )
        {
     throw new SimiasException( "iFolderID isn't linked to a valid domain " );
        }
        memberList = col.GetMemberList();
        foreach( ShallowNode sNode in memberList )
        {
     if ( sNode.Type.Equals( "Member" ) )
     {
      members.Add( new iFolderUser( domain, new Member( col, sNode ) ) );
     }
        }
     POBox poBox;
     try
     {
         poBox = Simias.POBox.POBox.FindPOBox(store,
             col.Domain,
             store.GetUserIDFromDomainID(col.Domain));
     }
     catch (Exception ex)
     {
         poBox = null;
     }
     if (poBox != null)
     {
         ICSList poList = poBox.Search(
             Subscription.SubscriptionCollectionIDProperty,
             col.ID,
             SearchOp.Equal);
         foreach (ShallowNode sNode in poList)
         {
             Subscription sub = new Subscription(poBox, sNode);
             if (sub.SubscriptionState == SubscriptionStates.Ready)
             {
                 if (poBox.StoreReference.GetCollectionByID(
                     sub.SubscriptionCollectionID) != null)
                 {
                     continue;
                 }
             }
             members.Add(new iFolderUser(sub));
         }
     }
     if (members.Count > 0)
     {
         UserComparer comparer = new UserComparer();
         members.Sort(0, members.Count, comparer);
     }
     return (iFolderUser[])(members.ToArray(typeof(iFolderUser)));
 }
Exemple #11
0
    public static List <CampaignLog> ProcessXmlFilter(Guid CampaignId, string trackKey, int attemp, string xmlFilter,
                                                      int portalId)
    {
        List <CampaignLog> listResult = new List <CampaignLog>();
        MailContainer      mailContainer;

        try
        {
            mailContainer = new MailContainer();

            XmlSerializer serializer = new XmlSerializer(mailContainer.GetType());

            MemoryStream memoryStream = new MemoryStream(Encoding.ASCII.GetBytes(xmlFilter));

            mailContainer = (MailContainer)serializer.Deserialize(memoryStream);

            StringBuilder queryPotentialUser = new StringBuilder();
            StringBuilder queryUser          = new StringBuilder();
            StringBuilder queryOrganization  = new StringBuilder();
            StringBuilder querySolution      = new StringBuilder();


            MIFNEXSOEntities ent = new MIFNEXSOEntities();



            foreach (MailFilter mailFilter in mailContainer.MailFilter)
            {
                switch (mailFilter.Table)
                {
                case "PotentialUsers":
                {
                    switch (mailFilter.Field)
                    {
                    case "Country":
                    {
                        queryPotentialUser.Append(GetSqlClause(mailFilter));
                        break;
                    }

                    case "Language":
                    {
                        queryPotentialUser.Append(GetSqlClause(mailFilter));
                        break;
                    }

                    case "Source":
                    {
                        queryPotentialUser.Append(GetSqlClause(mailFilter));
                        break;
                    }
                    }
                    break;
                }


                case "UserProperties":
                {
                    switch (mailFilter.Field)
                    {
                    case "Country":
                    {
                        queryUser.Append(GetSqlClause(mailFilter));
                        break;
                    }

                    case "Language":
                    {
                        queryUser.Append(GetSqlClause(mailFilter));
                        break;
                    }
                    //case "CustomerType":
                    //    {

                    //        break;
                    //    }
                    case "[AllowNexsoNotifications]":
                    {
                        if (mailFilter.FilterValue.Count > 0)
                        {
                            if (mailFilter.FilterValue[0] == "1")
                            {
                                queryUser.Append(GetSqlClause(mailFilter));
                            }
                        }
                        break;
                    }
                    }
                    break;
                }

                case "UserPropertiesLists":
                {
                    switch (mailFilter.Field)
                    {
                    case "[Key]":
                    {
                        queryUser.Append(GetSqlClause(mailFilter));
                        break;
                    }
                    }
                    break;
                }

                case "Organization":
                {
                    switch (mailFilter.Field)
                    {
                    case "Country":
                    {
                        queryOrganization.Append(GetSqlClause(mailFilter));
                        break;
                    }
                    }
                    break;
                }

                case "Solution":
                {
                    switch (mailFilter.Field)
                    {
                    case "Language":
                    {
                        querySolution.Append(GetSqlClause(mailFilter));
                        break;
                    }

                    case "ChallengeReference":
                    {
                        querySolution.Append(GetSqlClause(mailFilter));
                        break;
                    }

                    case "SolutionState":
                    {
                        querySolution.Append(GetSqlClause(mailFilter));
                        break;
                    }

                    case "FUNC:GetScore(Solution.SolutionId,'JUDGE')":
                    {
                        querySolution.Append(GetSqlClause(mailFilter));
                        break;
                    }

                    case "FUNC:WordCount(Solution.SolutionId)":
                    {
                        querySolution.Append(GetSqlClause(mailFilter));
                        break;
                    }
                    }
                    break;
                }
                }
            }

            foreach (MailFilter mailFilter in mailContainer.MailFilter)
            {
                switch (mailFilter.Table)
                {
                case "&&1":
                {
                    switch (mailFilter.Field)
                    {
                    case "UsePotentialUser":
                    {
                        if (mailFilter.FilterValue[0] == "0")
                        {
                            queryPotentialUser = null;
                        }
                        break;
                    }

                    case "UseUser":
                    {
                        if (mailFilter.FilterValue[0] == "0")
                        {
                            queryUser = null;
                        }
                        break;
                    }

                    case "UseOrganization":
                    {
                        if (mailFilter.FilterValue[0] == "0")
                        {
                            queryOrganization = null;
                        }
                        break;
                    }

                    case "UseSolution":
                    {
                        if (mailFilter.FilterValue[0] == "0")
                        {
                            querySolution = null;
                        }
                        break;
                    }
                    }
                    break;
                }
                }
            }
            List <UserProperty>         queryPotentialUserEntity    = null;
            IEnumerable <PotentialUser> queryPotentialUserEntityInt = null;
            IEnumerable <UserProperty>  querySolutionEntity         = null;
            IEnumerable <UserProperty>  queryUserEntity             = null;
            IEnumerable <UserProperty>  queryOrganizationEntity     = null;
            if (queryPotentialUser != null)
            {
                queryPotentialUser.Insert(0, " SELECT  * FROM POTENTIALUSERS"
                                          + " where 1=1 ");
                queryPotentialUserEntityInt = ent.ExecuteStoreQuery <PotentialUser>(queryPotentialUser.ToString());
                queryPotentialUserEntity    = new List <UserProperty>();
                foreach (var item in queryPotentialUserEntityInt)
                {
                    queryPotentialUserEntity.Add(new UserProperty()
                    {
                        email     = item.Email,
                        FirstName = item.FirstName,
                        LastName  = item.LastName
                    }

                                                 );
                }
            }

            if (queryUser != null)
            {
                queryUser.Insert(0, " SELECT        UserProperties.* " +
                                 " FROM UserProperties left JOIN UserPropertiesLists ON UserProperties.UserId = UserPropertiesLists.UserPropertyId"
                                 + " where 1=1 ");
                queryUserEntity = ent.ExecuteStoreQuery <UserProperty>(queryUser.ToString());
            }
            if (queryOrganization != null)
            {
                queryOrganization.Insert(0, " SELECT     UserProperties.* " +
                                         " FROM         Organization INNER JOIN UserOrganization ON Organization.OrganizationID = UserOrganization.OrganizationID " +
                                         " INNER JOIN UserProperties ON UserOrganization.UserID = UserProperties.UserId"
                                         + " where 1=1 ");
                queryOrganizationEntity = ent.ExecuteStoreQuery <UserProperty>(queryOrganization.ToString());
            }


            if (querySolution != null)
            {
                querySolution.Insert(0, " SELECT     UserProperties.* FROM         Solution INNER JOIN UserProperties ON Solution.CreatedUserId = UserProperties.UserId "
                                     + " where 1=1 ");
                querySolutionEntity = ent.ExecuteStoreQuery <UserProperty>(querySolution.ToString());
            }
            IEnumerable <UserProperty> resultfinal = queryUserEntity;


            if (queryOrganizationEntity != null)
            {
                if (resultfinal == null)
                {
                    resultfinal = queryOrganizationEntity;
                }
                else
                {
                    resultfinal = resultfinal.Concat(queryOrganizationEntity);
                }
            }

            if (querySolutionEntity != null)
            {
                if (resultfinal == null)
                {
                    resultfinal = querySolutionEntity;
                }
                else
                {
                    resultfinal = resultfinal.Concat(querySolutionEntity);
                }
            }
            if (queryPotentialUserEntity != null)
            {
                if (resultfinal == null)
                {
                    resultfinal = queryPotentialUserEntity;
                }
                else
                {
                    resultfinal = resultfinal.Concat(queryPotentialUserEntity);
                }
            }

            CampaignComponent campaign = new CampaignComponent(CampaignId);

            if (mailContainer.UserProperty.Count > 0)
            {
                if (resultfinal == null)
                {
                    resultfinal = mailContainer.UserProperty;
                }
                else
                {
                    resultfinal = resultfinal.Concat(mailContainer.UserProperty).ToList();
                }
            }



            if (resultfinal != null)
            {
                var comparer = new UserComparer();
                foreach (var item in resultfinal.Distinct(comparer).ToList())
                {
                    try
                    {
                        var user = UserController.GetUserById(portalId, item.UserId);

                        listResult.Add(getCampaignLog(campaign, item, user));
                    }
                    catch (Exception)
                    {
                    }
                }
            }
        }



        catch (Exception)
        {
        }
        return(listResult);
    }
            private void AddUserAction()
            {
                _parentModel.IsError = false;
                AddUserDialog dialog = new AddUserDialog(_parentModel._siteURL, _parentModel._log);
                dialog.Closed += (s, e) =>
                {
                    AddUserDialog d = (AddUserDialog)s;
                    if ((d.DialogResult.HasValue) && (d.DialogResult.Value))
                    {
                        _parentModel.IsBusy = true;                        
                        ClientUtility.PrincipalInfo user = ((AddUserDialogViewModel)d.DataContext).UserFound;

                        User verifyUser = new User()
                        {
                            Name = user.JobTitle,
                            AccountName = user.LoginName,
                            IsEnabled = false,
                            IsSelected = false
                        };
                        UserComparer comparer = new UserComparer();
                        if (!GroupUsers.Contains(verifyUser, comparer))
                        {
                            SCOM.UserCreationInformation addUser = new Microsoft.SharePoint.Client.UserCreationInformation();
                            addUser.Title = user.JobTitle;
                            addUser.LoginName = user.LoginName;
                            addUser.Email = user.Email;

                            _parentModel.UserGroupServiceAgent.AddUser(_parentModel.SelectedSearchedGroup.Id, addUser, (result, ie) =>
                                {
                                    _dispatcher.BeginInvoke(new Action(() =>
                                    {
                                        if (result == false)
                                        {
                                            _parentModel.IsError = true;
                                            _parentModel.ErrorMessage = Logger.BuildLogMessageForUser(ie, "Add User Failed!");
                                            _parentModel.IsBusy = false;
                                        }
                                        else
                                        {
                                            GroupUsersCommand.Execute(null);
                                        }

                                    }));
                                });
                        }
                        else
                        {
                            _parentModel.IsBusy = false;
                            _parentModel.IsError = true;
                            _parentModel.ErrorMessage = "User Already Exist.";
                        }
                    }
                };
                dialog.Show();            
        
            }