private RaceData CreateRaceData(Domain.Race race, IEnumerable <Domain.Bet> bets)
        {
            RaceData raceData = new RaceData
            {
                Id     = race.Id,
                Status = race.Status.GetDescription()
            };

            IEnumerable <Bet> betsOnRace = bets?.Where(b => b.Race?.Id == race.Id);

            raceData.TotalMoneyOnRace = betsOnRace.Sum(b => b.Stake);

            if (race.Horses != null)
            {
                IList <HorseData> horsesData = new List <HorseData>();

                foreach (Horse horse in race.Horses)
                {
                    HorseData horseData = new HorseData
                    {
                        Id           = horse.Id,
                        Name         = horse.Name,
                        NumberOfBets = bets?.Where(b => b.Horse?.Id == horse.Id).Count() ?? 0
                    };
                    horseData.PayoutIfWon = horseData.NumberOfBets * horse.Odds;

                    horsesData.Add(horseData);
                }

                raceData.Horses = horsesData;
            }

            return(raceData);
        }
Exemple #2
0
        private void racerAdd_Click(object sender, EventArgs e)
        {
            try
            {
                Networking.gRPC.Racer racer = new Networking.gRPC.Racer {
                    Name = Nume.Text, Team = (Networking.gRPC.Team)Enum.Parse(typeof(Networking.gRPC.Team), ((Domain.Team)team.SelectedItem).ToString(), true), Engine = (Networking.gRPC.Engine)Enum.Parse(typeof(Networking.gRPC.Engine), ((Domain.Engine)racerEngine.SelectedItem).ToString(), true)
                };
                Domain.Race          race  = (Domain.Race)racesSelector.SelectedItem;
                Networking.gRPC.Race race1 = new Networking.gRPC.Race {
                    Id = race.id, NoRacers = (uint)race.NoRacers, Date = race.Date.ToString("yyyy-MM-dd").Split()[0], Engine = (Networking.gRPC.Engine)Enum.Parse(typeof(Networking.gRPC.Engine), race.Engine.ToString(), true)
                };
                streamWriter.WriteAsync(new Request {
                    Type = Request.Types.Type.Add, Race = race1, Racer = racer
                });
            }
            catch (NullReferenceException ex1)
            {
                Console.WriteLine(ex1.Message);
                MessageBox.Show("All input fields must be selected and completed", "Ups", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Ups", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            Nume.Text          = "Name";
            team.Text          = "Team";
            racerEngine.Text   = "Engine";
            racesSelector.Text = "Races";
        }
        public void Create(Domain.Race race)
        {
            var entityRace = Convert(race);

            this._dbContext.Races.Add(entityRace);
            this._dbContext.SaveChanges();
        }
        public void Create(Domain.Race race)
        {
            var mongoRace = Convert(race);

            var collection = this._db.GetCollection <Race>(CollectionName);

            collection.InsertOne(mongoRace);
        }
        public void Update(Domain.Race race)
        {
            var existing = this._dbContext.Races.Single(x => x.RaceId == race.Id);

            Update(existing, race);

            this._dbContext.SaveChanges();
        }
        private static Domain.Race Convert(Race race)
        {
            var result = new Domain.Race(race.Name, race.LapDistanceInMeters, race.ChipIds);

            result.SetPropertyValue("End", race.End);
            result.SetPropertyValue("Start", race.Start);
            result.SetPropertyValue("Id", new Guid(race.RaceId));
            result.SetPropertyValue("TeamIds", race.TeamIds);

            return(result);
        }
        public void Update(Domain.Race race)
        {
            var collection   = this._db.GetCollection <Race>(CollectionName);
            var existingRace = collection.Find(x => x.RaceId == race.Id.ToString()).ToCursorAsync().Result.Single();

            var replacement = Convert(race);

            replacement.Id = existingRace.Id;

            collection.ReplaceOne(x => x.RaceId == race.Id.ToString(), replacement);
        }
        private static Race Update(Race existingRace, Domain.Race race)
        {
            existingRace.ChipIds             = string.Join(";", race.ChipIds);
            existingRace.End                 = race.End;
            existingRace.Start               = race.Start;
            existingRace.LapDistanceInMeters = race.LapDistanceInMeters;
            existingRace.Name                = race.Name;
            existingRace.TeamIds             = string.Join(";", race.TeamIds);

            return(existingRace);
        }
        private static Race Convert(Domain.Race race)
        {
            var result = new Race
            {
                RaceId              = race.Id.ToString(),
                ChipIds             = race.ChipIds,
                End                 = race.End,
                LapDistanceInMeters = race.LapDistanceInMeters,
                Name                = race.Name,
                Start               = race.Start,
                TeamIds             = race.TeamIds.ToList()
            };

            return(result);
        }
        private static Race Convert(Domain.Race race)
        {
            var result = new Race
            {
                RaceId              = race.Id,
                ChipIds             = string.Join(";", race.ChipIds),
                End                 = race.End,
                LapDistanceInMeters = race.LapDistanceInMeters,
                Name                = race.Name,
                Start               = race.Start,
                TeamIds             = string.Join(";", race.TeamIds)
            };

            return(result);
        }
        private static Domain.Race Convert(Race race)
        {
            var result = new Domain.Race(race.Name, race.LapDistanceInMeters, race.ChipIds.Split(';').ToList());

            if (!string.IsNullOrWhiteSpace(race.TeamIds))
            {
                var split = race.TeamIds.Split(';');

                if (split.Any())
                {
                    var blop = split.Select(x => new Guid(x)).ToList();
                    result.SetPropertyValue("TeamIds", new ReadOnlyCollection <Guid>(blop));
                }
            }

            result.SetPropertyValue("End", race.End);
            result.SetPropertyValue("Start", race.Start);
            result.SetPropertyValue("Id", race.RaceId);

            return(result);
        }