Esempio n. 1
0
 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);
 }
Esempio n. 2
0
 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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 6
0
        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
                        );
        }
Esempio n. 7
0
        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
                        );
        }
Esempio n. 8
0
        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
                        );
        }