コード例 #1
0
        public List <IPrivateChatStatus> GetPrivateChatStatuses(int userId)
        {
            using (var db = new HellolingoEntities())
            {
                var entityResult = db.TextChatTrackers.AsNoTracking()
                                   .OrderByDescending(a => a.StatusAt)
                                   .Where(a => a.UserId == userId && a.Status != TrackerStatus.AutoBlocked)
                                   .Select(a => new { a.Status, a.StatusAt, a.Partner })     // IMPORTANT LINE: It prevents EF from having to load all related data (e.g. users, statuses details, etc...)
                                   .ToList();

                return(entityResult.Select(
                           status => (IPrivateChatStatus) new PrivateChatStatus {
                    Partner = new TextChatUser {
                        FirstName = status.Partner.FirstName,
                        Id = status.Partner.Id,
                        LastName = status.Partner.LastName,
                        Country = status.Partner.CountryId,
                        Location = status.Partner.Location,
                        Gender = status.Partner.Gender,
                        Age = AgeInYearsHelper.GetAgeFrom(status.Partner.BirthYear, status.Partner.BirthMonth),
                        Knows = status.Partner.KnowsId,
                        Learns = status.Partner.LearnsId,
                        Knows2 = status.Partner.Knows2Id,
                        Learns2 = status.Partner.Learns2Id
                    },
                    StatusId = status.Status,
                    StatusAt = status.StatusAt
                }).ToList());
            }
        }
コード例 #2
0
 private ClientSideUser ClientSideUserFromUser(User user, AspNetUser aspNetUser)
 {
     return(new ClientSideUser {
         Id = user.Id,
         FirstName = user.FirstName, LastName = user.LastName,
         Email = aspNetUser.Email,
         BirthMonth = user.BirthMonth, BirthYear = user.BirthYear,
         Age = AgeInYearsHelper.GetAgeFrom(user.BirthYear, user.BirthMonth),
         Gender = user.Gender,
         Country = user.CountryId, Location = user.Location,
         Learns = user.LearnsId, Learns2 = user.Learns2Id, Learns3 = user.Learns3Id,
         Knows = user.KnowsId, Knows2 = user.Knows2Id, Knows3 = user.Knows3Id,
         Introduction = user.Introduction,
         LookToLearnWithTextChat = user.Tags.Any(t => t.Id == UserTags.LookToLearnWithTextChat),
         LookToLearnWithVoiceChat = user.Tags.Any(t => t.Id == UserTags.LookToLearnWithVoiceChat),
         LookToLearnWithGames = user.Tags.Any(t => t.Id == UserTags.LookToLearnWithGames),
         LookToLearnWithMore = user.Tags.Any(t => t.Id == UserTags.LookToLearnWithMore),
         IsSharedTalkMember = user.Tags.Any(t => t.Id == UserTags.FormerSharedTalkMember),
         IsLivemochaMember = user.Tags.Any(t => t.Id == UserTags.LivemochaMember),
         IsSharedLingoMember = user.Tags.Any(t => t.Id == UserTags.SharedLingoMember),
         WantsToHelpHellolingo = user.Tags.Any(t => t.Id == UserTags.WantsToHelpHellolingo),
         IsNoPrivateChat = user.Tags.Any(t => t.Id == UserTags.TextChatNoPrivateChat),
         IsEmailConfirmed = user.StatusId != UserStatuses.PendingEmailValidation,
     });
 }
コード例 #3
0
 public PublicUserLight(User user)
 {
     Id        = user.Id;
     FirstName = user.FirstName;
     LastName  = user.LastName;
     Gender    = user.Gender;
     Age       = AgeInYearsHelper.GetAgeFrom(user.BirthYear, user.BirthMonth);
     Country   = user.CountryId;
     Knows     = user.KnowsId;
     Learns    = user.LearnsId;
     Knows2    = user.Knows2Id;
     Learns2   = user.Learns2Id;
 }
コード例 #4
0
 public PublicUser(User user)
 {
     Id                  = user.Id;
     FirstName           = user.FirstName;
     LastName            = user.LastName;
     Gender              = user.Gender;
     Age                 = AgeInYearsHelper.GetAgeFrom(user.BirthYear, user.BirthMonth);
     Country             = user.CountryId;
     Location            = user.Location;
     Knows               = user.KnowsId;
     Learns              = user.LearnsId;
     Knows2              = user.Knows2Id;
     Learns2             = user.Learns2Id;
     Introduction        = user.Introduction;
     IsSharedTalkMember  = user.Tags.Any(t => t.Id == UserTags.FormerSharedTalkMember);    // Show SharedTalk members to other SharedTalk members only
     IsLivemochaMember   = user.Tags.Any(t => t.Id == UserTags.LivemochaMember);           // Show Livemocha members to other Livemocha members only
     IsSharedLingoMember = user.Tags.Any(t => t.Id == UserTags.SharedLingoMember);         // Show Livemocha members to other Livemocha members only
 }