Example #1
0
        /// <summary>
        /// Here we do all the business
        /// </summary>
        /// <param name="obj"></param>
        public void DeleteCfProfileAndRelatedData(Profile u)
        {
            //-- Delete any personality media
            var pMediaRepo       = new UserPersonalityMediaRepository();
            var mediaRepo        = new MediaRepository();
            var mediaOpinionRepo = new MediaOpinionRepository();
            var opinionRepo      = new OpinionRepository();
            var ciRepo           = new CheckInRepository();
            var pcRepo           = new PartnerCallRepository();
            var postRepo         = new PostRepository();
            var clmRepo          = new ClimbRepository();

            mediaOpinionRepo.Delete(mediaOpinionRepo.GetAll().Where(mo => mo.UserID == u.ID).Select(mo => mo.ID));
            opinionRepo.Delete(opinionRepo.GetAll().Where(o => o.UserID == u.ID).Select(o => o.ID));

            postRepo.Delete(postRepo.GetAll().Where(p => p.UserID == u.ID).Select(p => p.ID));
            //-- Delete personality media
            mediaRepo.Delete(pMediaRepo.GetAll().Where(pm => pm.UserID == u.ID).Select(pm => pm.MediaID));

            //-- Get other media, e.g. stuff uploaded for places & climbs
            //-- Remove all the personal tags
            mediaRepo.RemoveAllMediaTagForObject(u.ID);
            var otherMedia = mediaRepo.GetAll().Where(pm => pm.AddedByUserID == u.ID);

            foreach (var m in otherMedia)
            {
                m.AddedByUserID = Stgs.SystemID;
            }
            mediaRepo.Update(otherMedia);

            ciRepo.Delete(ciRepo.GetAll().Where(ci => ci.UserID == u.ID).Select(ci => ci.ID));
            pcRepo.Delete(pcRepo.GetAll().Where(pc => pc.UserID == u.ID).Select(pc => pc.ID));

            //-- geo problems , e.g. a user ads a area, location or climb or is listed as a setter

            var usersSetClimbs = clmRepo.GetAll().Where(c => c.SetterID == u.ID);

            foreach (var c in usersSetClimbs)
            {
                c.SetterID = null;
            }
            clmRepo.Update(usersSetClimbs);

            //-- If everything else has been removed this should work....
            profileRepo.Delete(u.ID);
        }
Example #2
0
 public ClimbController(ApplicationDbContext context)
 {
     _climbRepository = new ClimbRepository(context);
 }