Exemplo n.º 1
0
        protected void linkSave_Click(object sender, EventArgs e)
        {
            var raceId  = Convert.ToInt32(hiddenRaceID.Value);
            var fleetId = Convert.ToInt32(listFleet.SelectedValue);
            var ctx     = new SailTallyDataContext();

            // Delete the existing scores
            var scoredBoats = from s in ctx.SS_Scores
                              join b in ctx.SS_Boats on s.BoatID equals b.BoatID
                              where s.RaceID == raceId && b.FleetID == fleetId
                              select s;

            var raceFleets = from rf in ctx.SS_RaceFleets
                             where rf.RaceID == raceId && rf.FleetID == fleetId
                             select rf;

            ctx.SS_Scores.DeleteAllOnSubmit(scoredBoats);
            ctx.SS_RaceFleets.DeleteAllOnSubmit(raceFleets);
            ctx.SubmitChanges();

            // Save the scores
            var raceFleet = new SS_RaceFleet
            {
                RaceID        = raceId,
                FleetID       = fleetId,
                IsAbandoned   = checkAbandoned.Checked,
                Course        = textCourse.Text,
                Distance      = CentralLibrary.ConvertToDouble(textDistance.Text, 0),
                DistanceUnits = textDistanceUnits.Text
            };

            ctx.SS_RaceFleets.InsertOnSubmit(raceFleet);
            // ReSharper disable once LoopCanBePartlyConvertedToQuery
            foreach (var boatScore in _boatScores)
            {
                var score = new SS_Score
                {
                    RaceID      = raceId,
                    BoatID      = boatScore.BoatId,
                    PenaltyID   = boatScore.PenaltyId,
                    FinishPlace = boatScore.FinishPosition
                };
                ctx.SS_Scores.InsertOnSubmit(score);
            }
            ctx.SubmitChanges();

            ShowDetail(true);
            ShowRaces();
        }