/// <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); }
public IActionResult Get() { return(Ok(_climbRepository.GetAll())); }