public GolfClubInformation GetGolfClubById(Guid id) { const string message = "Could not get golf club by id."; try { GolfClubInformation newClub = null; using (var context = new GolfTrackerContext()) { var golfClub = context.GolfClub .AsNoTracking() .Include("GolfCourses.Tees") .FirstOrDefault(c => c.Id == id); if (golfClub != null) { newClub = mapEntityToInformation(golfClub); } return(newClub); } } catch (Exception ex) { var exMessage = ExceptionHelper.ExceptionToString(ex, message); _logger.LogCritical(exMessage); return(null); } }
public GolferInformation GetGolferById(Guid id) { const string message = "Could not get golfer by id."; try { using (var context = new GolfTrackerContext()) { var golferResult = context.Golfer .AsNoTracking() .Include("Rounds.GolfCoursePlayed.TeesPlayed") .FirstOrDefault(c => c.Id == id); var golfer = mapEntityToInformation(golferResult); return(golfer); } } catch (Exception ex) { var exMessage = ExceptionHelper.ExceptionToString(ex, message); _logger.LogCritical(exMessage); return(null); } }
public List <GolfClubInformation> GetGolfClubs() { const string message = "Could not save golf clubs."; try { using (var context = new GolfTrackerContext()) { var golfClubResults = context.GolfClub .AsNoTracking() .Include("GolfCourses.Tees") .OrderBy(c => c.Name) .ToList(); var clubs = new List <GolfClubInformation>(); foreach (var club in golfClubResults) { var golfClubInfo = mapEntityToInformation(club); clubs.Add(golfClubInfo); } return(clubs); } } catch (Exception ex) { var exMessage = ExceptionHelper.ExceptionToString(ex, message); _logger.LogCritical(exMessage); return(null); } }
public List <GolferInformation> GetGolfers() { const string message = "Could not get golfers."; try { using (var context = new GolfTrackerContext()) { var golferResults = context.Golfer .AsNoTracking() .Include("Rounds.GolfCoursePlayed.TeesPlayed") .OrderBy(g => g.Name) .ToList(); var golfers = new List <GolferInformation>(); foreach (var golfer in golferResults) { var golferInfo = mapEntityToInformation(golfer); golfers.Add(golferInfo); } return(golfers); } } catch (Exception ex) { var exMessage = ExceptionHelper.ExceptionToString(ex, message); _logger.LogCritical(exMessage); return(null); } }
public GolfClubInformation SaveGolfClub([FromBody] GolfClubInformation golfClubToSave) { const string message = "Could not save golf club."; try { using (var context = new GolfTrackerContext()) { if (golfClubToSave.Id == Guid.Empty) { golfClubToSave.Id = Guid.NewGuid(); } var golfClub = context.GolfClub .Include("GolfCourses.Tees") .FirstOrDefault(c => c.Id == golfClubToSave.Id); if (golfClub == null) { golfClub = new GolfClub { Id = golfClubToSave.Id }; context.GolfClub.Add(golfClub); } mapInformationToEntity(golfClubToSave, golfClub, context); context.SaveChanges(); return(mapEntityToInformation(golfClub)); } } catch (Exception ex) { var exMessage = ExceptionHelper.ExceptionToString(ex, message); _logger.LogCritical(exMessage); return(null); } }
public GolferInformation SaveGolfer([FromBody] GolferInformation golferToSave) { const string message = "Could not save golfer."; try { using (var context = new GolfTrackerContext()) { if (golferToSave.Id == Guid.Empty) { golferToSave.Id = Guid.NewGuid(); } var golfer = context.Golfer .Include("Rounds.GolfCoursePlayed.TeesPlayed") .FirstOrDefault(g => g.Id == golferToSave.Id); if (golfer == null) { golfer = new Golfer { Id = golferToSave.Id }; context.Golfer.Add(golfer); } mapInformationToEntity(golferToSave, golfer, context); context.SaveChanges(); return(mapEntityToInformation(golfer)); } } catch (Exception ex) { var exMessage = ExceptionHelper.ExceptionToString(ex, message); _logger.LogCritical(exMessage); return(null); } }
public void DeleteGolfClub(Guid id) { const string message = "Could not delete golf club."; try { using (var context = new GolfTrackerContext()) { var golfClub = context.GolfClub .FirstOrDefault(c => c.Id == id); if (golfClub != null) { context.GolfClub.Remove(golfClub); context.SaveChanges(); } } } catch (Exception ex) { var exMessage = ExceptionHelper.ExceptionToString(ex, message); _logger.LogCritical(exMessage); } }
private static void mapInformationToEntity(GolfClubInformation golfClubToSave, GolfClub golfClub, GolfTrackerContext context) { golfClub.Name = golfClubToSave.Name; golfClub.Location = golfClubToSave.Location; foreach (var courseToSave in golfClubToSave.GolfCourses) { if (courseToSave.Id == Guid.Empty) { courseToSave.Id = Guid.NewGuid(); } var course = golfClub.GolfCourses .FirstOrDefault(c => c.Id == courseToSave.Id); if (course == null) { course = new GolfCourse { Id = courseToSave.Id }; golfClub.GolfCourses.Add(course); } course.GolfClubId = golfClub.Id; course.Name = courseToSave.Name; foreach (var teeToSave in courseToSave.Tees) { if (teeToSave.Id == Guid.Empty) { teeToSave.Id = Guid.NewGuid(); } var tee = course.Tees .FirstOrDefault(t => t.Id == teeToSave.Id); if (tee == null) { tee = new Tee { Id = teeToSave.Id }; course.Tees.Add(tee); } tee.GolfCourseId = course.Id; tee.TeeName = teeToSave.TeeName; tee.Gender = teeToSave.Gender; tee.Length = teeToSave.Length; tee.Par = teeToSave.Par; tee.Rating = teeToSave.Rating; tee.Slope = teeToSave.Slope; } //remove deleted tees; foreach (var tee in course.Tees) { if (!courseToSave.Tees.Any(t => t.Id == tee.Id)) { context.Entry(tee).State = EntityState.Deleted; } } } //remove deleted courses foreach (var course in golfClub.GolfCourses) { if (!golfClubToSave.GolfCourses.Any(c => c.Id == course.Id)) { context.Entry(course).State = EntityState.Deleted; } } }
private void mapInformationToEntity(GolferInformation golferToSave, Golfer golfer, GolfTrackerContext context) { golfer.Name = golferToSave.Name; golfer.UserName = golferToSave.UserName; golfer.IsPlus = golferToSave.IsPlus; golfer.Handicap = golferToSave.Handicap; foreach (var roundToSave in golferToSave.Rounds) { if (roundToSave.Id == Guid.Empty) { roundToSave.Id = Guid.NewGuid(); } var round = golfer.Rounds .FirstOrDefault(r => r.Id == roundToSave.Id); if (round == null) { round = new Round { Id = roundToSave.Id }; golfer.Rounds.Add(round); } round.GolferId = golfer.Id; round.DatePlayed = roundToSave.DatePlayed; round.Score = roundToSave.Score; round.NetScore = roundToSave.NetScore; //Save course played var coursePlayedToSave = roundToSave.GolfCourse; if (coursePlayedToSave.Id == Guid.Empty) { coursePlayedToSave.Id = Guid.NewGuid(); } var coursePlayed = round.GolfCoursePlayed; if (coursePlayed == null) { coursePlayed = new GolfCoursePlayed { Id = coursePlayedToSave.Id }; round.GolfCoursePlayed = coursePlayed; round.GolfCoursePlayedId = coursePlayed.Id; } coursePlayed.GolfClubName = roundToSave.GolfCourse.GolfClubName; coursePlayed.GolfCourseName = roundToSave.GolfCourse.GolfCourseName; //Save tee played var teePlayedToSave = coursePlayedToSave.TeePlayed; if (teePlayedToSave.Id == Guid.Empty) { teePlayedToSave.Id = Guid.NewGuid(); } var teePlayed = coursePlayed.TeesPlayed.FirstOrDefault(); if (teePlayed == null) { teePlayed = new TeePlayed { Id = teePlayedToSave.Id }; coursePlayed.TeesPlayed.Add(teePlayed); } teePlayed.GolfCoursePlayedId = coursePlayed.Id; teePlayed.TeeName = teePlayedToSave.TeeName; teePlayed.Gender = teePlayedToSave.Gender; teePlayed.Length = teePlayedToSave.Length; teePlayed.Slope = teePlayedToSave.Slope; teePlayed.Rating = teePlayedToSave.Rating; teePlayed.Par = teePlayedToSave.Par; } }