Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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));
    }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 7
0
        /// <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);
            }
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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"));
        }
Ejemplo n.º 10
0
        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);
 }