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);
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 6
0
        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;
                }
            }
        }
Esempio n. 9
0
        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;
            }
        }