public async Task WhenFilterByCategoryTypeAndStatusTypeThenReturnsFilteredResult() { var dummyListings = GetDummyListings(); _dbContext.Listings.AddRange(dummyListings); await _dbContext.SaveChangesAsync(); var cache = new MemoryCache(new MemoryCacheOptions()); var repo = new ListingRepository(_dbContext, cache, _logger); var listings = await repo.GetListingsAsync(new Models.GetListingsRequest { Suburb = "southbank", CategoryType = Enums.CategoryType.Residential, StatusType = Enums.StatusType.Current }); var result = listings.ToList(); Assert.Equal(2, result.Count()); Assert.Equal(Enums.CategoryType.Residential, result[0].CategoryType); Assert.Equal(Enums.CategoryType.Residential, result[1].CategoryType); Assert.Equal(Enums.StatusType.Current, result[0].StatusType); Assert.Equal(Enums.StatusType.Current, result[1].StatusType); }
public void TestUpdateListingValidEntity() { // Arrange var options = BuildTestDbOptions(); // Act using (var context = new ApplicationDbContext(options)) { context.Database.EnsureCreated(); var repository = new ListingRepository(context); var testEntity = context .Listing .FirstOrDefault(l => l.Id == 1); testEntity.Description = "test description"; repository.UpdateListing(testEntity); } // Assert using (var context = new ApplicationDbContext(options)) { var result = context .Listing .FirstOrDefault(l => l.Id == 1); Assert.Equal("test description", result.Description); context.Database.EnsureDeleted(); } }
public async Task TrackFriendNumber_FriendRequest_GivenDay() { //arrange IDataGateway dataGateway = new SQLServerGateway(); IConnectionStringData connectionString = new ConnectionStringData(); IFriendListRepo friendListRepo = new FriendListRepo(dataGateway, connectionString); IFriendRequestListRepo friendRequestListRepo = new FriendRequestListRepo(dataGateway, connectionString); IUserAccountRepository userAccountRepository = new UserAccountRepository(dataGateway, connectionString); IFriendBlockListRepo friendBlockListRepo = new FriendBlockListRepo(dataGateway, connectionString); IPublicUserProfileRepo publicUserProfileRepo = new PublicUserProfileRepo(dataGateway, connectionString); IListingRepository listingRepository = new ListingRepository(dataGateway, connectionString); ILoginTrackerRepo loginTrackerRepo = new LoginTrackerRepo(dataGateway, connectionString); IPageVisitTrackerRepo pageVisitTrackerRepo = new PageVisitTrackerRepo(dataGateway, connectionString); ISearchTrackerRepo searchTrackerRepo = new SearchTrackerRepo(dataGateway, connectionString); IUserAnalysisService userAnalysisService = new UserAnalysisService(friendListRepo, listingRepository, userAccountRepository, loginTrackerRepo, pageVisitTrackerRepo, friendRequestListRepo, searchTrackerRepo); IUserReportsRepo userReportsRepo = new UserReportsRepo(dataGateway, connectionString); IUserProfileRepository userProfileRepository = new UserProfileRepository(dataGateway, connectionString); IUserProfileService userProfileService = new UserProfileService(userProfileRepository); IUserAccountService userAccountService = new UserAccountService(userAccountRepository); IValidationService validationService = new ValidationService(userAccountService, userProfileService); IUserInteractionService userInteractionService = new UserInteractionService(friendBlockListRepo, friendListRepo, friendRequestListRepo, userReportsRepo, validationService); await userInteractionService.CreateFriendRequestAsync(1, 2); int avarageFriends = await userAnalysisService.FriendRequest_GivenDay(DateTimeOffset.UtcNow); if (avarageFriends != 1) { Assert.IsTrue(false); } Assert.IsTrue(true); }
public void TestGetListingEntityEntryValidEntity() { // Arrange var options = BuildTestDbOptions(); EntityEntry <Listing> result; using (var context = new ApplicationDbContext(options)) { context.Database.EnsureCreated(); var repository = new ListingRepository(context); var testEntity = context.Listing.FirstOrDefault(); // Act result = repository.GetListingEntityEntry(testEntity); context.Database.EnsureDeleted(); } // Assert Assert.NotNull(result); Assert.IsType <EntityEntry <Listing> >(result); }
public void TestTrackListingValidEntity() { // Arrange var options = BuildTestDbOptions(); var testEntity = new Listing(); using (var context = new ApplicationDbContext(options)) { context.Database.EnsureCreated(); var repository = new ListingRepository(context); // Act repository.TrackListing(testEntity); // Assert var entry = context.Entry(testEntity); Assert.NotNull(entry); Assert.Equal(EntityState.Added, entry.State); context.Database.EnsureDeleted(); } }
public async Task WhenFilterByCategoryTypeAndStatusTypeAndTakeOneAndSkipOneThenReturnsOnlyOneRecord() { var dummyListings = GetDummyListings(); _dbContext.Listings.AddRange(dummyListings); await _dbContext.SaveChangesAsync(); var cache = new MemoryCache(new MemoryCacheOptions()); var repo = new ListingRepository(_dbContext, cache, _logger); var listings = await repo.GetListingsAsync(new Models.GetListingsRequest { Suburb = "southbank", CategoryType = Enums.CategoryType.Residential, StatusType = Enums.StatusType.Current, Take = 1, Skip = 1 }); var result = listings.ToList(); Assert.Single(result); Assert.Equal(Enums.CategoryType.Residential, result[0].CategoryType); Assert.Equal(Enums.StatusType.Current, result[0].StatusType); Assert.Equal(1219, result[0].ListingId); }
public async Task GetALLUserRegistrationCount_Day_Countaccounts() { IDataGateway dataGateway = new SQLServerGateway(); IConnectionStringData connectionString = new ConnectionStringData(); IFriendListRepo friendListRepo = new FriendListRepo(dataGateway, connectionString); IFriendRequestListRepo friendRequestListRepo = new FriendRequestListRepo(dataGateway, connectionString); IUserAccountRepository userAccountRepository = new UserAccountRepository(dataGateway, connectionString); IFriendBlockListRepo friendBlockListRepo = new FriendBlockListRepo(dataGateway, connectionString); IPublicUserProfileRepo publicUserProfileRepo = new PublicUserProfileRepo(dataGateway, connectionString); IListingRepository listingRepository = new ListingRepository(dataGateway, connectionString); ILoginTrackerRepo loginTrackerRepo = new LoginTrackerRepo(dataGateway, connectionString); IPageVisitTrackerRepo pageVisitTrackerRepo = new PageVisitTrackerRepo(dataGateway, connectionString); ISearchTrackerRepo searchTrackerRepo = new SearchTrackerRepo(dataGateway, connectionString); IUserAnalysisService userAnalysisService = new UserAnalysisService(friendListRepo, listingRepository, userAccountRepository, loginTrackerRepo, pageVisitTrackerRepo, friendRequestListRepo, searchTrackerRepo); int count = await userAnalysisService.GetALLUserRegistrationCount_Day(DateTimeOffset.UtcNow); if (count != 20) { Assert.IsTrue(false); } Assert.IsTrue(true); }
public void TestSaveListingNullEntity() { // Arrange var options = BuildTestDbOptions(); Listing testEntity = null; // Act using (var context = new ApplicationDbContext(options)) { context.Database.EnsureCreated(); var repository = new ListingRepository(context); repository.AddListing(testEntity); } // Assert using (var context = new ApplicationDbContext(options)) { var result = context.Listing.ToList(); Assert.Equal(6, result.Count); context.Database.EnsureDeleted(); } }
public void TestSaveListingValidListingEntity() { // Arrange var options = BuildTestDbOptions(); var testEntity = new Listing { Description = "test description" }; // Act using (var context = new ApplicationDbContext(options)) { context.Database.EnsureCreated(); var repository = new ListingRepository(context); repository.AddListing(testEntity); } // Assert using (var context = new ApplicationDbContext(options)) { var results = context.Listing.ToList(); // Assert.Equal(7, results.Last().Id); Assert.Equal("test description", results.Last().Description); context.Database.EnsureDeleted(); } }
public DataRepository(ITimeService time, MilvanethDbContext context) { Character = new CharacterRepository(time, context); Retainer = new RetainerRepository(time, context); History = new HistoryRepository(time, context); Listing = new ListingRepository(time, context); Overview = new OverviewRepository(time, context); }
public HistoryPresenter(IHistoryView view) { _view = view; _historyRepository = new HistoryRepository(); _listingRepository = new ListingRepository(); _favouritesRepository = new FavoritesRepository(); }
public static void RolloverWeeklyDeals() { AppIdentityDbContext context; using (context = AppIdentityDbContext.Create()) { IUnitOfWork unitOfWork = new UnitOfWork(context); IListingRepository listingRepository = new ListingRepository(unitOfWork); List <DiscountedListing> oldWeeklies = listingRepository.GetDiscountedListings().Where(d => d.IsLive() == false).ToList(); if (oldWeeklies != null && oldWeeklies.Count > 0) { foreach (DiscountedListing oldListing in oldWeeklies) { listingRepository.DeleteDiscountedListing(oldListing.DiscountedListingID); } } Random rand = new Random(); int numDeals = rand.Next(randBase) + randOffset; List <Listing> newDeals = listingRepository.GetListings().Where(l => l.Quantity > 0 && l.ListingPrice > 1).OrderBy(x => Guid.NewGuid()).Take(numDeals).ToList(); if (newDeals == null || newDeals.Count == 0) { unitOfWork.Save(); return; } DateTime dealExpiry = GetMidnightEST().AddDays(7).AddHours(5); foreach (Listing listing in newDeals) { DiscountedListing newDiscountedListing = new DiscountedListing(); SelectDealPercent(newDiscountedListing); newDiscountedListing.WeeklyDeal = true; newDiscountedListing.ItemSaleExpiry = dealExpiry; listing.AddDiscountedListing(newDiscountedListing); listingRepository.UpdateListing(listing); } ISiteRepository siteRepository = new SiteRepository(unitOfWork); SiteNotification notification = new SiteNotification() { Notification = "[weekly][/weekly] There are [gtext]" + numDeals + "[/gtext] new [url=https://theafterparty.azurewebsites.net/store/deals/weekly]deals[/url] available this week!", NotificationDate = DateTime.Now }; siteRepository.InsertSiteNotification(notification); unitOfWork.Save(); } }
public async Task <IActionResult> Get(int id) { var listing = await ListingRepository.GetById(id); if (listing == null) { return(NotFound()); } return(Ok(listing)); }
public void SetupRepositories() { addressRepository = new AddressRepository(context); appointmentRepository = new AppointmentRepository(context); buyerRepository = new BuyerRepository(context); eventRepository = new EventRepository(context); listingRepository = new ListingRepository(context); photoRepository = new PhotoRepository(context); saleRepository = new SaleRepository(context); serviceRepository = new ServiceRepository(context); ticketRepository = new TicketRepository(context); }
public async Task WhenListingsExistInCacheThenReturnsFromCache() { var dummyListings = GetDummyListings(); var cache = new MemoryCache(new MemoryCacheOptions()); cache.Set("southbankdummy", dummyListings); var repo = new ListingRepository(_dbContext, cache, _logger); var listings = await repo.GetListingsAsync(new Models.GetListingsRequest { Suburb = "southbankdummy" }); Assert.Equal(dummyListings.Count(), listings.Count()); }
public async Task WhenListingsDoesNotExistInCacheThenReturnsFromDatabase() { var dummyListings = GetDummyListings(); _dbContext.Listings.AddRange(dummyListings); await _dbContext.SaveChangesAsync(); var cache = new MemoryCache(new MemoryCacheOptions()); var repo = new ListingRepository(_dbContext, cache, _logger); var listings = await repo.GetListingsAsync(new Models.GetListingsRequest { Suburb = "southbank" }); Assert.Equal(dummyListings.Count(), listings.Count()); }
public void TestUpdateMediaNullEntity() { // Arrange var mockContext = new Mock <ApplicationDbContext>(); mockContext .Setup(x => x.Update(It.IsAny <Media>())) .Verifiable(); var repository = new ListingRepository(mockContext.Object); // Act repository.UpdateListing(null); // Assert mockContext.Verify(x => x.Update(It.IsAny <Media>()), Times.Never); }
private async Task <FeatureCollection> GetListingsFeatureCollection(ListingParameters parameters) { var listings = await ListingRepository.Get(parameters); List <Feature> features = new(); FeatureCollection featureCollection = new(features); foreach (var listing in listings) { if (!listing.Latitude.HasValue || !listing.Longitude.HasValue) { continue; } features.Add(new Feature(new Point(new Position(listing.Latitude.Value, listing.Longitude.Value)), new { listing.Id })); } return(featureCollection); }
public static void CloseAuction(int auctionId) { using (AppIdentityDbContext context = AppIdentityDbContext.Create()) { IUnitOfWork unitOfWork = new UnitOfWork(context); IAuctionRepository auctionRepository = new AuctionRepository(unitOfWork); IListingRepository listingRepository = new ListingRepository(unitOfWork); IUserRepository userRepository = new UserRepository(unitOfWork); IAuctionService auctionService = new AuctionService(auctionRepository, userRepository, listingRepository, unitOfWork); auctionService.DrawAuctionWinners(auctionId); auctionService.Dispose(); auctionRepository.Dispose(); listingRepository.Dispose(); userRepository.Dispose(); unitOfWork.Dispose(); } }
public static void CloseGiveaway(int giveawayId) { using (AppIdentityDbContext context = AppIdentityDbContext.Create()) { IUnitOfWork unitOfWork = new UnitOfWork(context); IGiveawayRepository giveawayRepository = new GiveawayRepository(unitOfWork); IListingRepository listingRepository = new ListingRepository(unitOfWork); IUserRepository userRepository = new UserRepository(unitOfWork); IUserService userService = new UserService(listingRepository, userRepository, null, giveawayRepository, null, null, unitOfWork); userService.DrawGiveawayWinners(giveawayId); userService.Dispose(); giveawayRepository.Dispose(); listingRepository.Dispose(); userRepository.Dispose(); unitOfWork.Dispose(); } }
public async Task TrackFriendNumber_GetLast12MonthsFriendRequestTrend() { //arrange IDataGateway dataGateway = new SQLServerGateway(); IConnectionStringData connectionString = new ConnectionStringData(); IFriendListRepo friendListRepo = new FriendListRepo(dataGateway, connectionString); IFriendRequestListRepo friendRequestListRepo = new FriendRequestListRepo(dataGateway, connectionString); IUserAccountRepository userAccountRepository = new UserAccountRepository(dataGateway, connectionString); IFriendBlockListRepo friendBlockListRepo = new FriendBlockListRepo(dataGateway, connectionString); IPublicUserProfileRepo publicUserProfileRepo = new PublicUserProfileRepo(dataGateway, connectionString); IListingRepository listingRepository = new ListingRepository(dataGateway, connectionString); ILoginTrackerRepo loginTrackerRepo = new LoginTrackerRepo(dataGateway, connectionString); IPageVisitTrackerRepo pageVisitTrackerRepo = new PageVisitTrackerRepo(dataGateway, connectionString); ISearchTrackerRepo searchTrackerRepo = new SearchTrackerRepo(dataGateway, connectionString); IUserAnalysisService userAnalysisService = new UserAnalysisService(friendListRepo, listingRepository, userAccountRepository, loginTrackerRepo, pageVisitTrackerRepo, friendRequestListRepo, searchTrackerRepo); IUserReportsRepo userReportsRepo = new UserReportsRepo(dataGateway, connectionString); IUserProfileRepository userProfileRepository = new UserProfileRepository(dataGateway, connectionString); IUserProfileService userProfileService = new UserProfileService(userProfileRepository); IUserAccountService userAccountService = new UserAccountService(userAccountRepository); IValidationService validationService = new ValidationService(userAccountService, userProfileService); IUserInteractionService userInteractionService = new UserInteractionService(friendBlockListRepo, friendListRepo, friendRequestListRepo, userReportsRepo, validationService); await userInteractionService.CreateFriendRequestAsync(1, 2); IEnumerable <int> avarageFriends = await userAnalysisService.GetLast12MonthsFriendRequestTrend(); if (avarageFriends == null) { Assert.IsTrue(false); } if (avarageFriends.Count() == 0) { Assert.IsTrue(false); } if (avarageFriends.Count() != 366) { Assert.IsTrue(false); } Assert.IsTrue(true); }
public async void TestGetListingByIdInvalidId(int testId) { // Arrange var options = BuildTestDbOptions(); Listing result; // Act await using (var context = new ApplicationDbContext(options)) { context.Database.EnsureCreated(); var repository = new ListingRepository(context); result = await repository.GetListingById(testId); context.Database.EnsureDeleted(); } // Assert Assert.Null(result); }
public async void TestGetAllListingsValidId() { // Arrange var options = BuildTestDbOptions(); IList <Listing> result; // Act await using (var context = new ApplicationDbContext(options)) { context.Database.EnsureCreated(); var repository = new ListingRepository(context); result = await repository.GetAllListings(); context.Database.EnsureDeleted(); } // Assert Assert.Equal(6, result.Count); }
public void TestGetListingEntityEntryNull() { // Arrange var options = BuildTestDbOptions(); EntityEntry <Listing> result; using (var context = new ApplicationDbContext(options)) { context.Database.EnsureCreated(); var repository = new ListingRepository(context); // Act result = repository.GetListingEntityEntry(null); context.Database.EnsureDeleted(); } // Assert Assert.Null(result); }
public async Task WhenTakeMoreItemsThanNoOfItemsRetrievedThenReturnsWhateverIsAvailable() { var dummyListings = GetDummyListings(); _dbContext.Listings.AddRange(dummyListings); await _dbContext.SaveChangesAsync(); var cache = new MemoryCache(new MemoryCacheOptions()); var repo = new ListingRepository(_dbContext, cache, _logger); var listings = await repo.GetListingsAsync(new Models.GetListingsRequest { Suburb = "southbank", CategoryType = Enums.CategoryType.Residential, StatusType = Enums.StatusType.Current, Take = 3 }); var result = listings.ToList(); Assert.Equal(2, result.Count()); }
public async Task <IActionResult> Get([FromQuery] ListingParameters parameters) { if (parameters.Type == "geojson") { return(Ok(await GetListingsFeatureCollection(parameters))); } if (!parameters.Page.HasValue || !parameters.PageSize.HasValue) { return(Ok(await ListingRepository.Count(parameters))); } try { var listings = await ListingRepository.Get(parameters); return(Ok(listings)); } catch (SqlException) { return(BadRequest()); } }
public async Task CleanUp() { IDataGateway dataGateway = new SQLServerGateway(); IConnectionStringData connectionString = new ConnectionStringData(); IUserAccountRepository userAccountRepository = new UserAccountRepository(dataGateway, connectionString); IListingRepository listingRepository = new ListingRepository(dataGateway, connectionString); var accounts = await userAccountRepository.GetAllAccounts(); // var listings = await listingRepository.GetAllListing(); foreach (var account in accounts) { await userAccountRepository.DeleteAccountById(account.Id); } await DataAccessTestHelper.ReseedAsync("UserAccount", 0, connectionString, dataGateway); /*foreach (var list in listings) * { * await listingRepository.DeleteListing(list.Id); * } */ await DataAccessTestHelper.ReseedAsync("Listing", 0, connectionString, dataGateway); }
public async Task TrackSuspendedAccounts_Countaccounts(string status) { int expected = 20; IDataGateway dataGateway = new SQLServerGateway(); IConnectionStringData connectionString = new ConnectionStringData(); IFriendListRepo friendListRepo = new FriendListRepo(dataGateway, connectionString); IFriendRequestListRepo friendRequestListRepo = new FriendRequestListRepo(dataGateway, connectionString); IUserAccountRepository userAccountRepository = new UserAccountRepository(dataGateway, connectionString); IFriendBlockListRepo friendBlockListRepo = new FriendBlockListRepo(dataGateway, connectionString); IPublicUserProfileRepo publicUserProfileRepo = new PublicUserProfileRepo(dataGateway, connectionString); IListingRepository listingRepository = new ListingRepository(dataGateway, connectionString); ILoginTrackerRepo loginTrackerRepo = new LoginTrackerRepo(dataGateway, connectionString); IPageVisitTrackerRepo pageVisitTrackerRepo = new PageVisitTrackerRepo(dataGateway, connectionString); ISearchTrackerRepo searchTrackerRepo = new SearchTrackerRepo(dataGateway, connectionString); IUserAnalysisService userAnalysisService = new UserAnalysisService(friendListRepo, listingRepository, userAccountRepository, loginTrackerRepo, pageVisitTrackerRepo, friendRequestListRepo, searchTrackerRepo); IEnumerable <UserAccountModel> models = await userAccountRepository.GetAllAccounts(); List <UserAccountModel> userAccountModels = new List <UserAccountModel>(); foreach (var model in models) { model.AccountStatus = "Suspended"; await userAccountRepository.UpdateAccountStatus(model.Id, model.AccountStatus); } int count = await userAnalysisService.GetNumOfSuspendedUsers(); if (expected == count) { Assert.IsTrue(true); } else { Assert.IsTrue(false); } }
public async Task TestGetAllListingsAsViewModel() { // Arrange var options = BuildDbContextOptions(); IEnumerable <ListingViewModel> result; await using (var context = new ApplicationDbContext(options)) { context.Database.EnsureCreated(); var repository = new ListingRepository(context); var service = new ListingService(repository, null, null, null, null, _mapper); // Act result = await service.GetAllListingsAsViewModel(); } await using (var context = new ApplicationDbContext(options)) { // Assert var enumerable = result.ToList(); Assert.NotNull(result); Assert.NotEmpty(enumerable); Assert.IsAssignableFrom <IEnumerable <ListingViewModel> >(result); Assert.Equal(6, enumerable.Count()); context.Database.EnsureDeleted(); } }
public async Task Init() { await TestCleaner.CleanDatabase(); var numTestRows = 20; IDataGateway dataGateway = new SQLServerGateway(); IConnectionStringData connectionString = new ConnectionStringData(); IListingRepository listingRepository = new ListingRepository(dataGateway, connectionString); for (int i = 1; i <= numTestRows; ++i) { DALListingModel dalListingModel = new DALListingModel(); dalListingModel.Id = i; dalListingModel.Title = "TestTitle" + i; dalListingModel.Details = "TestDetails" + i; dalListingModel.City = "TestCity" + i; dalListingModel.State = "TestState" + i; dalListingModel.NumberOfParticipants = 5; dalListingModel.InPersonOrRemote = "TestInpersonOrRemote" + i; await listingRepository.CreateListing(dalListingModel); } }
public ListingsController(ListingRepository repo) { _repo = repo; }