public void Init(long[] entitiesIds) { var socialUserInfos = _userService.GetUsers(entitiesIds); if (socialUserInfos.IsNullOrEmpty()) { return; } var entities = _entitiesRepository.GetEntitiesByIds(socialUserInfos.Select(x => x.id).ToArray()) .ToArray(); var initilizers = socialUserInfos.Except(socialUserInfos.Join(entities, z => z.id, e => e.OriginalId, (z, e) => z)); // TODO: we need to find a way to do this in one batch foreach (var entity in initilizers) { _entitiesRepository.Update(new Entity { Id = ObjectId.GenerateNewId(), OriginalId = entity.id, Name = entity.name, ImageUrl = entity.imageUrl, OriginalEmail = entity.email }); } }
public void Resolve(IList <Entity> unresolvedEntities) { var ids = unresolvedEntities.Select(e => e.Id).ToArray(); var resolvedEntities = _entitiesRepository.GetEntitiesByIds(ids) .Where(e => e != null); unresolvedEntities.JoinDo(resolvedEntities, u => u.Id, r => r.Id, (u, r) => { u.OriginalId = r.OriginalId; u.ImageUrl = r.ImageUrl; u.Name = r.Name; u.OriginalEmail = r.OriginalEmail; u.Email = r.Email; }); }
public Entity GetEntityFromPlatform() { var originalEntity = _userService.CurrentUser(); if (originalEntity == null) { return(null); } var entity = _entitiesRepository.GetEntitiesByIds(new[] { originalEntity.id }).FirstOrDefault(); if (entity != null) { entity.ImageUrl = originalEntity.imageUrl; entity.Name = originalEntity.name; entity.OriginalEmail = entity.OriginalEmail; entity.LastActivity = SystemTime.Now(); _entitiesRepository.Update(entity); return(entity); } entity = new Entity { Id = ObjectId.GenerateNewId(), OriginalId = originalEntity.id, Name = originalEntity.name, ImageUrl = originalEntity.imageUrl, OriginalEmail = originalEntity.email, LastActivity = SystemTime.Now(), MemberSince = SystemTime.Now() }; _entitiesRepository.Add(entity); return(entity); }
public static Entity Get(this IEntitiesRepository entitiesRepository, ObjectId id) { return(entitiesRepository.GetEntitiesByIds(new[] { id }).EmptyIfNull().FirstOrDefault()); }
public static Entity Get(this IEntitiesRepository entitiesRepository, long originalId) { return(entitiesRepository.GetEntitiesByIds(new[] { originalId }).EmptyIfNull().FirstOrDefault()); }