public UserProfileContract[] GetUsersInRole(RoleDiscriminator d)
 {
     try
     {
         using (var repository = RepositoryFactory.GetUserProfile())
         {
             repository.RoleFilter = d;
             return(repository.Select(uir => new UserProfileContract()
             {
                 UserProfile = uir
             }).ToArray());
         }
     }
     catch (Exception ex)
     {
         HandleMyException(ex);
         return(null);
     }
 }
 public RoleContract[] FindRole(RoleDiscriminator d)
 {
     try
     {
         using (var records = RepositoryFactory.GetRole())
         {
             records.Discriminator = d;
             return(records.Select(r => new RoleContract()
             {
                 Role = r
             }).ToArray());
         }
     }
     catch (Exception ex)
     {
         HandleMyException(ex);
         return(null);
     }
 }
 /// <summary>
 /// Locates users by combining boths filters
 /// </summary>
 /// <param name="d"></param>
 /// <param name="d2"></param>
 /// <param name="r"></param>
 /// <returns></returns>
 public UserProfile2Contract[] FindUserProfile(UserProfile2Discriminator d, UserProfileVsLocationDiscriminator d2, RoleDiscriminator r)
 {
     try
     {
         using (var records = RepositoryFactory.GetUserProfile())
         {
             records.Discriminator2 = d;
             records.UserProfileVsLocationFilter = d2;
             records.RoleFilter = r;
             //Debug.WriteLine(records.Count());
             return(records.Select(x => new UserProfile2Contract()
             {
                 UserProfile2 = x as DB.UserProfile
             }).ToArray());
         }
     }
     catch (Exception ex)
     {
         HandleMyException(ex);
         return(null);
     }
 }