public bool Delete(long id)
        {
            bool deleted = Repo.Delete(id);

            Unit.SaveChanges();
            return(deleted);
        }
 public ActionResult Delete(int id)
 {
     if (_badgeRepository.Delete(id))
     {
         return(Json(new { success = "true" }));
     }
     return(Json(new { error = "true" }));
 }
        /// <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);
            }
        }
Exemple #4
0
        public async Task DeleteBadge(long id)
        {
            await _badgeRepository.Delete(id);

            await _unit.Commit();
        }