public Object(IPortalApplication portalApplication, IMcmRepository mcmRepository, IPermissionManager permissionManager) : base(portalApplication, mcmRepository, permissionManager) { ObjectCreate = new ObjectCreate(mcmRepository, permissionManager, portalApplication.ViewManager); ObjectDelete = new ObjectDelete(mcmRepository, permissionManager, portalApplication.ViewManager); ObjectSetPublishSettings = new ObjectSetPublishSettings(mcmRepository, permissionManager, portalApplication.ViewManager); ObjectQueryHelper = new ObjectQueryHelper(portalApplication); }
public Object(IPortalApplication portalApplication, IMcmRepository mcmRepository, IPermissionManager permissionManager, IObjectCreate objectCreate, IObjectDelete objectDelete, IObjectSetPublishSettings objectSetPublishSettings) : base(portalApplication, mcmRepository, permissionManager) { ObjectCreate = objectCreate; ObjectDelete = objectDelete; ObjectSetPublishSettings = objectSetPublishSettings; ObjectQueryHelper = new ObjectQueryHelper(portalApplication); }
public void GetObjects() { var dbContext = new DesignTimeDbContextFactory().CreateDbContext(null); var repo = new GenericRepository <int, OfferedObject>(dbContext); repo.Add(new OfferedObject { CurrentTransactionType = TransactionType.Free, PublishedAt = DateTime.UtcNow, Photos = new System.Collections.Generic.List <ObjectPhoto> { new ObjectPhoto { AddedAtUtc = DateTime.UtcNow } }, }); repo.SaveChanges(); var impression = new Mock <IObjectImpressionsManager>(); var objectQueryHelper = new ObjectQueryHelper(); var userDataManager = new Mock <IUserDataManager>(); userDataManager.Setup(u => u.AddCurrentUserIfNeeded()).ReturnsAsync((new Login { LoginLocation = new Point(10, 1) }, null as User)); var configs = new Mock <IConfiguration>(); configs.Setup(c => c["Settings:IncludeObjectLessThan"]).Returns("500"); var photoConstructor = new Mock <Infrastructure.IPhotoUrlConstructor>(); photoConstructor.Setup(p => p.Construct(It.IsAny <ObjectPhoto>())).Returns("Hello there"); var objectGetter = new ObjectGetter(repo, photoConstructor.Object, impression.Object, objectQueryHelper, null, configs.Object, userDataManager.Object); var objects = objectGetter.GetObjects(new PagingArguments { Size = 10, StartObject = 0 }); Assert.True(true); }
public void ObjObjects_OrderByDate_ShouldReturnCorrectValues() { var objects = new List <OfferedObject> { new OfferedObject { OfferedObjectId = 1, PublishedAt = DateTime.UtcNow.AddDays(-5) }, new OfferedObject { OfferedObjectId = 2, PublishedAt = DateTime.UtcNow.AddDays(-4) }, new OfferedObject { OfferedObjectId = 3, PublishedAt = DateTime.UtcNow.AddDays(-3) }, new OfferedObject { OfferedObjectId = 4, PublishedAt = DateTime.UtcNow.AddDays(-2) }, new OfferedObject { OfferedObjectId = 5, PublishedAt = DateTime.UtcNow.AddDays(-6) }, }; var queryHelper = new ObjectQueryHelper(); var result = queryHelper.OrderObject(objects.AsQueryable(), null, OrderByType.Date).ToList(); Assert.True(result.Count == 5 && result[0].OfferedObjectId == 4 && result[1].OfferedObjectId == 3 && result[4].OfferedObjectId == 6 ); }
public async Task GetObjects_ShouldReturnCorrectDistances() { var geometryFactory = NtsGeometryServices.Instance.CreateGeometryFactory(srid: 4326); var users = new List <User> { new User { Status = UserStatus.Available, UserName = "******", }, new User { Status = UserStatus.Available, UserName = "******", }, new User { Status = UserStatus.Available, UserName = "******", } }; var logins = new List <Login> { new Login { User = users[0], LoggedAt = DateTime.UtcNow.AddDays(-10), LoginLocation = new Point(40, 40) { SRID = 4326 }, }, new Login { User = users[0], LoggedAt = DateTime.UtcNow.AddDays(0), LoginLocation = new Point(10, 10) { SRID = 4326 }, }, new Login { User = users[1], LoggedAt = DateTime.UtcNow.AddDays(10), LoginLocation = new Point(40, 40) { SRID = 4326 }, }, new Login { User = users[2], LoggedAt = DateTime.UtcNow.AddDays(10), LoginLocation = new Point(10.003, 10) { SRID = 4326 }, } }; users[0].Logins = new List <Login> { logins[0], logins[1] }; users[1].Logins = new List <Login> { logins[2] }; users[2].Logins = new List <Login> { logins[3] }; var objects = new List <OfferedObject> { new OfferedObject { OfferedObjectId = 1, PublishedAt = DateTime.UtcNow.AddDays(-1), ObjectStatus = ObjectStatus.Available, OwnerLogin = logins[0], CurrentTransactionType = TransactionType.Free, Photos = new List <ObjectPhoto>(), Tags = new List <ObjectTag>(), Impressions = new List <ObjectImpression>() }, new OfferedObject { OfferedObjectId = 2, PublishedAt = DateTime.UtcNow.AddDays(-1), ObjectStatus = ObjectStatus.Available, OwnerLogin = logins[1], CurrentTransactionType = TransactionType.Free, Photos = new List <ObjectPhoto>(), Tags = new List <ObjectTag>(), Impressions = new List <ObjectImpression>() }, new OfferedObject { OfferedObjectId = 3, PublishedAt = DateTime.UtcNow.AddDays(-1), ObjectStatus = ObjectStatus.Available, OwnerLogin = logins[2], CurrentTransactionType = TransactionType.Free, Photos = new List <ObjectPhoto>(), Tags = new List <ObjectTag>(), Impressions = new List <ObjectImpression>() }, new OfferedObject { OfferedObjectId = 4, PublishedAt = DateTime.UtcNow.AddDays(-1), ObjectStatus = ObjectStatus.Available, OwnerLogin = logins[2], CurrentTransactionType = TransactionType.Free, Photos = new List <ObjectPhoto>(), Tags = new List <ObjectTag>(), Impressions = new List <ObjectImpression>() }, }; var objectsRepo = new Mock <IRepository <int, OfferedObject> >(); var objectsMock = objects.AsQueryable().BuildMock(); objectsRepo.Setup(o => o.Table).Returns(objects.AsQueryable().BuildMock().Object); var loginRepo = new Mock <IRepository <Guid, Login> >(); var photoConstructor = new Mock <IPhotoUrlConstructor>(); var impression = new Mock <IObjectImpressionsManager>(); var objectQueryHelper = new ObjectQueryHelper(); var userDataManager = new Mock <IUserDataManager>(); userDataManager.Setup(u => u.AddCurrentUserIfNeeded()).ReturnsAsync((logins[3], users[2])); var configs = new Mock <IConfiguration>(); configs.Setup(c => c["Settings:IncludeObjectLessThan"]).Returns("500"); var getter = new ObjectGetter(objectsRepo.Object, photoConstructor.Object, impression.Object, objectQueryHelper, null, configs.Object, userDataManager.Object); var result = await getter.GetObjects(new PagingArguments { StartObject = 0, Size = 20 }); Assert.True(result.Count == 4); }
public void ObjObjects_OrderByTopRated_ShouldReturnCorrectValues() { var objects = new List <OfferedObject> { new OfferedObject { OfferedObjectId = 1, Transactions = new List <Transaction> { new Transaction { Rating = 5 }, new Transaction { Rating = 5 }, new Transaction { Rating = 5 }, } }, new OfferedObject { OfferedObjectId = 2, Transactions = new List <Transaction> { new Transaction { Rating = 10 }, new Transaction { Rating = 10 }, new Transaction { Rating = 10 }, } }, new OfferedObject { OfferedObjectId = 3, Transactions = new List <Transaction> { new Transaction { Rating = 1 }, new Transaction { Rating = 1 }, new Transaction { Rating = 1 }, } }, new OfferedObject { OfferedObjectId = 4, Transactions = new List <Transaction> { } }, new OfferedObject { OfferedObjectId = 5, Transactions = new List <Transaction>() }, }; var queryHelper = new ObjectQueryHelper(); var result = queryHelper.OrderObject(objects.AsQueryable(), null, OrderByType.TopRated).ToList(); Assert.True(result.Count == 5 && result[0].OfferedObjectId == 2 && result[1].OfferedObjectId == 1 ); }
public void ObjObjects_OrderBy_ShouldReturnCorrectValues() { var objects = new List <OfferedObject> { new OfferedObject { OfferedObjectId = 1, PublishedAt = DateTime.UtcNow.AddSeconds(-100), Views = new List <ObjectView> { new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, } // 17/ 100 }, new OfferedObject { OfferedObjectId = 2, PublishedAt = DateTime.UtcNow.AddSeconds(-20), Views = new List <ObjectView> { new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, } // 9/20 ~ 1/2 }, new OfferedObject { OfferedObjectId = 3, PublishedAt = DateTime.UtcNow, Views = new List <ObjectView> { new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, new ObjectView { }, } // 6/1 }, }; var queryHelper = new ObjectQueryHelper(); var result = queryHelper.OrderObject(objects.AsQueryable(), new Point(10, 10) { SRID = 4326 }, OrderByType.Trending).ToList(); Assert.True(result.Count == 3 && result[0].OfferedObjectId == 3 && result[1].OfferedObjectId == 2 && result[2].OfferedObjectId == 1 ); }
public void ObjObjects_OrderByNearest_ShouldReturnCorrectValues() { var users = new List <User> { new User { Status = UserStatus.Available, UserName = "******", }, new User { Status = UserStatus.Available, UserName = "******", }, new User { Status = UserStatus.Available, UserName = "******", } }; var logins = new List <Login> { new Login { User = users[0], LoggedAt = DateTime.UtcNow.AddDays(-10), LoginLocation = new Point(40, 40) { SRID = 4326 }, }, new Login { User = users[0], LoggedAt = DateTime.UtcNow.AddDays(0), LoginLocation = new Point(10, 10) { SRID = 4326 }, }, new Login { User = users[1], LoggedAt = DateTime.UtcNow.AddDays(10), LoginLocation = new Point(20, 20) { SRID = 4326 }, }, new Login { User = users[2], LoggedAt = DateTime.UtcNow.AddDays(10), LoginLocation = new Point(10.003, 10) { SRID = 4326 }, } }; users[0].Logins = new List <Login> { logins[0], logins[1] }; users[1].Logins = new List <Login> { logins[2] }; users[2].Logins = new List <Login> { logins[3] }; var objects = new List <OfferedObject> { new OfferedObject { OfferedObjectId = 1, OwnerLogin = logins[0], }, new OfferedObject { OfferedObjectId = 2, OwnerLogin = logins[2] }, new OfferedObject { OfferedObjectId = 3, OwnerLogin = logins[3] }, }; var queryHelper = new ObjectQueryHelper(); var result = queryHelper.OrderObject(objects.AsQueryable(), new Point(10, 10) { SRID = 4326 }, OrderByType.Nearest).ToList(); Assert.True(result.Count == 3 && result[0].OfferedObjectId == 1 && result[1].OfferedObjectId == 3 && result[2].OfferedObjectId == 2 ); }