Beispiel #1
0
        /// <summary>
        /// Рассчитать результат участника гонки
        /// </summary>
        static UserRaceResult GetRaceResult(GroupRaceParticipant raceParticipant)
        {
            var     user    = raceParticipant.User;
            UserCar userCar = raceParticipant.UserCar;

            return(new UserRaceResult()
            {
                User = user, Speed = GetSpeed(user, userCar)
            });
        }
Beispiel #2
0
        /// <summary>
        /// Добавление участника в гону
        /// </summary>
        public static void JoinToRace(OnMessageReceivedArgs e, Bot bot)
        {
            using (var context = new AppDbContext())
            {
                var user = context.Users.Get(e.ChatMessage.UserId);
                if (user == null)
                {
                    return;
                }

                var userCar = context.Cars.GetUserCar(user);
                if (userCar == null)
                {
                    return;
                }

                var groupRace = context.GroupRaces.GetNotFinished();
                if (groupRace == null)
                {
                    return;
                }

                if (context.GroupRaceParticipant.Any(x => x.GroupRace.Id == groupRace.Id && x.User.Id == user.Id))
                {
                    return;
                }
                if (!groupRace.RaceDivision.CanJoin(user))
                {
                    return;
                }
                user.Login  = e.ChatMessage.Username;
                user.Money -= groupRace.RaceDivision.GetJoinCost();
                var s = new GroupRaceParticipant()
                {
                    GroupRace = groupRace, User = user, UserCar = userCar
                };
                context.GroupRaceParticipant.Add(s);
                context.SaveChanges();
            }
        }