Esempio n. 1
0
        private GolferInformation mapEntityToInformation(Golfer golfer)
        {
            var newGolfer = new GolferInformation
            {
                Id       = golfer.Id,
                UserName = golfer.UserName,
                Name     = golfer.Name,
                Handicap = golfer.Handicap,
                IsPlus   = golfer.IsPlus,
            };

            foreach (var round in golfer.Rounds)
            {
                var newRound = new RoundInformation
                {
                    Id         = round.Id,
                    DatePlayed = round.DatePlayed,
                    Score      = round.Score,
                    NetScore   = round.NetScore,
                    GolfCourse = new GolfCoursePlayedInformation
                    {
                        Id             = round.GolfCoursePlayedId,
                        GolfClubName   = round.GolfCoursePlayed.GolfClubName,
                        GolfCourseName = round.GolfCoursePlayed.GolfCourseName,
                        TeePlayed      = new TeePlayedInformation
                        {
                            Id      = round.GolfCoursePlayed.TeesPlayed.FirstOrDefault().Id,
                            TeeName = round.GolfCoursePlayed.TeesPlayed.FirstOrDefault().TeeName,
                            Gender  = round.GolfCoursePlayed.TeesPlayed.FirstOrDefault().Gender,
                            Length  = round.GolfCoursePlayed.TeesPlayed.FirstOrDefault().Length,
                            Slope   = round.GolfCoursePlayed.TeesPlayed.FirstOrDefault().Slope,
                            Rating  = round.GolfCoursePlayed.TeesPlayed.FirstOrDefault().Rating,
                            Par     = round.GolfCoursePlayed.TeesPlayed.FirstOrDefault().Par,
                        }
                    }
                };
                newGolfer.Rounds.Add(newRound);
            }

            return(newGolfer);
        }
Esempio n. 2
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);
            }
        }
Esempio n. 3
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;
            }
        }