private void UpdateEntity(IChallengeResultCollection <IChallengeResult> entity) { using (var ctx = new HappyDogShowContext()) { foreach (IChallengeResult result in entity.Results) { var foundResults = ctx.InShowChallengeResults.Where(i => i.ID == result.Id); if (foundResults.Count() == 1) { InShowChallengeResult foundResult = foundResults.First(); foundResult.EntryNumber = result.EntryNumber; } } ctx.SaveChanges(); } }
private List <IInShowChallengeResult> GetList <T>(int dogShowId, int challengeId) where T : IInShowChallengeResult, new() { List <IInShowChallengeResult> items = new List <IInShowChallengeResult>(); using (var ctx = new HappyDogShowContext()) { if (challengeId > 0) { var existingData = from r in ctx.InShowChallengeResults where r.DogShow.ID == dogShowId && r.ShowChallenge.ID == challengeId select r; if (existingData.Count() == 0) { List <string> placings = new List <string>(); placings.Add("1st"); placings.Add("2nd"); placings.Add("3rd"); placings.Add("4th"); var newEntries = from ds in ctx.DogShows.Where(d => d.ID == dogShowId) from scc in ctx.ShowChallenges.Where(d => d.ID == challengeId) from p in placings select new { DogShow = ds, ShowChallenge = scc, Placing = p }; foreach (var newEntry in newEntries) { InShowChallengeResult realEntry = new InShowChallengeResult() { DogShow = newEntry.DogShow, ShowChallenge = newEntry.ShowChallenge, Placing = newEntry.Placing, EntryNumber = "" }; ctx.InShowChallengeResults.Add(realEntry); } ctx.SaveChanges(); } } var rawdata = from r in ctx.InShowChallengeResults where r.DogShow.ID == dogShowId select r; if (challengeId > 0) { rawdata = rawdata.Where(r => r.ShowChallenge.ID == challengeId); } var judges = from j in ctx.ShowInShowChallengeJudges where j.DogShow.ID == dogShowId select j; var actualEntries = from r in rawdata join j in judges on r.ShowChallenge.ID equals j.ShowChallenge.ID orderby r.Placing select new T { Id = r.ID, ShowId = r.DogShow.ID, ShowName = r.DogShow.Name, Challenge = r.ShowChallenge.Name, EntryNumber = r.EntryNumber, Placing = r.Placing, Print = false, JudgeName = j.Judge.Name, BreedName = "" }; foreach (var entry in actualEntries.ToList()) { if (entry.EntryNumber != "") { entry.BreedName = ctx.BreedEntries.Include("Dog").Include("Dog.Breed").Where(e => e.Show.ID == dogShowId && e.Number == entry.EntryNumber).First().Dog.Breed.Name; } items.Add(entry); } } return(items); }