public ActionResult Index() { var badges = _badgeRepository.GetAll(); var badgeViewModels = Mapper.Map <IEnumerable <Badge>, IEnumerable <BadgeViewModel> >(badges); ViewBag.PageName = "Badge"; if (Request.IsAjaxRequest()) { return(PartialView("Partial/_BadgeTable", badgeViewModels)); } return(View(badgeViewModels)); }
public void SyncBadgesUpdateBadgeRecords() { _badgeRepository = Substitute.For <IBadgeRepository>(); _badgeService = new BadgeService(_badgeRepository, _api, _loggingService, _localizationService, _activityService); var badgeInDb = new Badge { Id = new Guid(GuidTestVoteUp), Name = "XXX", DisplayName = "XXX", Description = "XXX", Image = "XXX" }; var badgesInDbAlready = new List <Badge> { badgeInDb }; _badgeRepository.GetAll().Returns(badgesInDbAlready); _badgeService.SyncBadges(); // The test badge class has been identified as the same badge as found in the "database", so that database // badge's fields have been updated with the test badge class's attributes Assert.IsTrue(badgeInDb.Name == NameTestVoteUp); Assert.IsTrue(badgeInDb.Description == DescriptionTestVoteUp); Assert.IsTrue(badgeInDb.DisplayName == DisplayNameTestVoteUp); Assert.IsTrue(badgeInDb.Image == ImageTestVoteUp); }
public void SyncBadgesDeleteOldBadgeRecords() { _badgeRepository = Substitute.For <IBadgeRepository>(); _badgeService = new BadgeService(_badgeRepository, _api, _loggingService, _localizationService, _activityService); var badgesInDbAlready = new List <Badge> { new Badge { Id = new Guid("2ac1fc11-2f9e-4d5a-9df4-29715f10b6d1"), Name = "PosterVoteUp" }, new Badge { Id = new Guid("2ac1fc11-2f9e-4d5a-9df4-29715f10b6d2"), Name = "BadgeWithNoMatchingClass" } }; _badgeRepository.GetAll().Returns(badgesInDbAlready); _badgeService.SyncBadges(); _badgeRepository.Received().Delete(Arg.Is <Badge>(x => x.Name == "BadgeWithNoMatchingClass")); }
public async Task <IList <Badge> > GetAll() { if (!_badges.Any()) { var badges = _badgeRepository.GetAll(); _badges.AddRange(badges); } return(Task.FromResult(_badge)); }
public async Task <List <BadgeDto> > GetBadgesAsync(GetBadgesInput input) { var models = await _badgeRepository .GetAll() .Where(q => q.ModelId == input.ModelId) .WhereIf(input.BadgeType.HasValue, q => q.BadgeType == input.BadgeType) .ToListAsync(); return(Mapper.Map <List <BadgeDto> >(models)); }
public List <Badge> UnearnedBadges(string accountId) { List <Attainment> earned = Repo.GetByAccountId(accountId).ToList(); List <Badge> badges = bRepo.GetAll().ToList(); List <Badge> unearned = new List <Badge>(); foreach (Badge b in badges) { bool match = false; foreach (Attainment a in earned) { if (a.BadgeId == b.Id) { match = true; } } if (!match) { unearned.Add(b); } } return(unearned); }
/// <summary> /// Bring the database into line with the badge classes found at runtime /// </summary> /// <returns>Set of valid badge classes to use when assigning badges</returns> public void SyncBadges() { try { GetBadgesByReflection(); // Turn the badge classes into a set of domain objects var badgesFromClasses = new Dictionary <Guid, Badge>(); foreach (var badgeType in _badges.Keys) { foreach (var badgeClassMapping in _badges[badgeType]) { if (!badgesFromClasses.ContainsKey(badgeClassMapping.DbBadge.Id)) { badgesFromClasses.Add(badgeClassMapping.DbBadge.Id, badgeClassMapping.DbBadge); } } } var badgesToDelete = new List <Badge>(); var badgesToInsert = new List <Badge>(); var dbBadges = _badgeRepository.GetAll().ToList(); // Find badges to delete - ie in database not in classes badgesToDelete.AddRange(dbBadges); foreach (var dbBadge in dbBadges) { if (badgesFromClasses.Values.Any(classBadge => classBadge.Id == dbBadge.Id)) { badgesToDelete.Remove(dbBadge); } } // Find badges to insert or update badgesToInsert.AddRange(badgesFromClasses.Values); foreach (var classBadge in badgesFromClasses.Values) { foreach (var dbBadge in dbBadges) { if (dbBadge.Id == classBadge.Id) { // This class is found in the database so it's not new, but might be an update if (dbBadge.Name != classBadge.Name) { dbBadge.Name = classBadge.Name; } if (dbBadge.Description != classBadge.Description) { dbBadge.Description = classBadge.Description; } if (dbBadge.DisplayName != classBadge.DisplayName) { dbBadge.DisplayName = classBadge.DisplayName; } if (dbBadge.Image != classBadge.Image) { dbBadge.Image = classBadge.Image; } if (dbBadge.AwardsPoints != classBadge.AwardsPoints) { dbBadge.AwardsPoints = classBadge.AwardsPoints; } // Remove it from insert collection, it's not new badgesToInsert.Remove(classBadge); } } } foreach (var badge in badgesToDelete) { _badgeRepository.Delete(badge); } foreach (var badge in badgesToInsert) { _badgeRepository.Add(badge); } } catch (Exception ex) { _loggingService.Error(ex); } }
public void SyncBadgesUpdateBadgeRecords() { _badgeRepository = Substitute.For<IBadgeRepository>(); _badgeService = new BadgeService(_badgeRepository, _api, _loggingService, _localizationService, _activityService); var badgeInDb = new Badge { Id = new Guid(GuidTestVoteUp), Name = "XXX", DisplayName = "XXX", Description = "XXX", Image = "XXX" }; var badgesInDbAlready = new List<Badge> { badgeInDb }; _badgeRepository.GetAll().Returns(badgesInDbAlready); _badgeService.SyncBadges(); // The test badge class has been identified as the same badge as found in the "database", so that database // badge's fields have been updated with the test badge class's attributes Assert.IsTrue(badgeInDb.Name == NameTestVoteUp); Assert.IsTrue(badgeInDb.Description == DescriptionTestVoteUp); Assert.IsTrue(badgeInDb.DisplayName == DisplayNameTestVoteUp); Assert.IsTrue(badgeInDb.Image == ImageTestVoteUp); }
public void SyncBadgesDeleteOldBadgeRecords() { _badgeRepository = Substitute.For<IBadgeRepository>(); _badgeService = new BadgeService(_badgeRepository, _api, _loggingService, _localizationService, _activityService); var badgesInDbAlready = new List<Badge> { new Badge { Id = new Guid("2ac1fc11-2f9e-4d5a-9df4-29715f10b6d1"), Name = "PosterVoteUp" }, new Badge { Id = new Guid("2ac1fc11-2f9e-4d5a-9df4-29715f10b6d2"), Name = "BadgeWithNoMatchingClass" } }; _badgeRepository.GetAll().Returns(badgesInDbAlready); _badgeService.SyncBadges(); _badgeRepository.Received().Delete(Arg.Is<Badge>(x => x.Name == "BadgeWithNoMatchingClass")); }
public ActionResult <IEnumerable <Badge> > GetAll() { var model = badgeRepo.GetAll().ToArray(); return(model); }
public bool Exists(long id) { return(Repo.GetAll().Count(e => e.Id == id) > 0); }