public IActionResult Index(TournamentVM tvm)
        {
            tvm.ArabicMonthName = ArabicMonthName(tvm.Month) + "  " + tvm.Year;
            tvm.DDlYear         = GenerateYearsDDL(tvm.Year);
            tvm.DDlMonth        = GenerateMonthsDDL(tvm.Month);
            var shootingField = _context.ShootingFields.Find(tvm.ShootingFieldId);

            if (shootingField == null)
            {
                return(Redirect("/Error/404"));
            }
            tvm.DDLShootingField = new SelectList(_context.ShootingFields.OrderByDescending(i => i.Id).ToList(), "Id", "ShootingName", tvm.ShootingFieldId);

            if (tvm.ShootingFieldId == 1008)
            {
                tvm.Tournaments = _context.Tournaments.Where(t => t.TournamentDate.Year == tvm.Year && t.TournamentDate.Month == tvm.Month && t.ShootingFieldId != tvm.ShootingFieldId).Include(t => t.ShootingField).OrderBy(t => t.TournamentDate).ToList();
            }
            else
            {
                tvm.Tournaments = _context.Tournaments.Where(t => t.TournamentDate.Year == tvm.Year && t.TournamentDate.Month == tvm.Month && t.ShootingFieldId == tvm.ShootingFieldId).Include(t => t.ShootingField).OrderBy(t => t.TournamentDate).ToList();
            }
            foreach (var item in tvm.Tournaments)
            {
                int IndexOfWeek = (int)item.TournamentDate.DayOfWeek;
                item.ArabicDayName = array_of_day[IndexOfWeek].ToString();
            }

            return(View(tvm));
        }
Пример #2
0
        public async Task <ActionResult <ApiResult <string> > > PostNewTournament(TournamentVM p)
        {
            Tournament t = new Tournament
            {
                TournamentID         = p.TournamentID,
                Event                = _context.Events.Where(x => x.EventID.Equals(1)).FirstOrDefault(),
                EventID              = 2,
                Organiser            = _context.Organisers.Where(x => x.OrganiserID.Equals(1)).FirstOrDefault(),
                Venue                = _context.Venues.Where(x => x.VenueID.Equals(2)).FirstOrDefault(),
                Product              = _context.Products.Where(x => x.ProductID.Equals(1)).FirstOrDefault(),
                TournamentType       = _context.TournamentTypes.Where(x => x.TournamentTypeID.Equals(1)).FirstOrDefault(),
                Format               = _context.Formats.Where(x => x.FormatID.Equals(1)).FirstOrDefault(),
                TournamentName       = p.TournamentName,
                Description          = p.Description,
                SanctionID           = p.SanctionID,
                RegistrationRequired = p.RegistrationRequired
            };

            _context.Tournaments.Add(t);
            _context.SaveChanges();

            return(new ApiResult <string> {
                IsValid = true, Result = "Tournament '" + t.TournamentName + "' was successfully uploaded!"
            });
        }
        public IActionResult Index()
        {
            TournamentVM tvm = new TournamentVM();


            DateTime CurrentDate = DateTime.Now;

            tvm.Year             = CurrentDate.Year;
            tvm.Month            = CurrentDate.Month;
            tvm.DDlYear          = GenerateYearsDDL(tvm.Year);
            tvm.DDlMonth         = GenerateMonthsDDL(tvm.Month);
            tvm.DDLShootingField = new SelectList(_context.ShootingFields.OrderByDescending(i => i.Id).ToList(), "Id", "ShootingName");
            tvm.ArabicMonthName  = ArabicMonthName(tvm.Month) + "  " + tvm.Year;

            tvm.Tournaments = _context.Tournaments.Where(t => t.TournamentDate.Year == CurrentDate.Year && t.TournamentDate.Month == CurrentDate.Month && t.ShootingFieldId != 1008).Include(t => t.ShootingField).OrderBy(t => t.TournamentDate).ToList();
            foreach (var item in tvm.Tournaments)
            {
                int IndexOfWeek = (int)item.TournamentDate.DayOfWeek;
                item.ArabicDayName = array_of_day[IndexOfWeek].ToString();
            }

            ViewBag.IndexDayOfWeek = (int)CurrentDate.DayOfWeek;


            return(View(tvm));
        }
        static bool Prefix(TournamentVM __instance, ref bool __result)
        {
            bool failed = false;

            try
            {
                if (bettedAmountFieldInfo == null)
                {
                    GetFieldInfo();
                }
                bool result = false;
                if (__instance.IsTournamentIncomplete)
                {
                    int  thisRoundBettedAmount = (int)bettedAmountFieldInfo.GetValue(__instance);
                    bool flag = __instance.Tournament.CurrentMatch.Participants.Any((TournamentParticipant x) => x.Character == CharacterObject.PlayerCharacter);
                    if (flag && thisRoundBettedAmount < Settings.Instance.TournamentMaxBetAmount)
                    {
                        result = Hero.MainHero.Gold > 0;
                    }
                }
                __result = result;
            }
            catch (Exception ex)
            {
                failed = true;
                MessageBox.Show($"An error occurred while trying to get IsBetButtonEnabled. Reverting to original...\n\n{ex.ToStringFull()}");
            }
            return(failed);
        }
        // GET: Tournaments/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var tournament = await _context.Tournaments.FindAsync(id);

            //create TournamentVM

            if (tournament == null)
            {
                return(NotFound());
            }
            TournamentVM tournamentVM = new TournamentVM()
            {
                Name = tournament.Name,
                Note = tournament.Note,
                ExistingTournamentImage = tournament.TournamentImage,
                IsActive = tournament.IsActive
            };

            return(View(tournamentVM));
        }
Пример #6
0
        public static Tournament MapFromVM(TournamentVM tournamentVM)
        {
            Tournament tournament = new Tournament()
            {
                Name         = tournamentVM.Name,
                TournamentId = tournamentVM.TournamentId
            };

            return(tournament);
        }
        static void Postfix(TournamentVM __instance)
        {
            if (bettedAmountFieldInfo == null)
            {
                GetFieldInfo();
            }
            int thisRoundBettedAmount = (int)bettedAmountFieldInfo.GetValue(__instance);

            __instance.MaximumBetValue = Math.Min(Settings.Instance.TournamentMaxBetAmount - thisRoundBettedAmount, Hero.MainHero.Gold);
        }
Пример #8
0
        public static TournamentVM MapToVM(Tournament tournament)
        {
            TournamentVM tournamentVM = new TournamentVM()
            {
                Name         = tournament.Name,
                TournamentId = tournament.TournamentId
            };

            return(tournamentVM);
        }
        static void Postfix(TournamentVM __instance)
        {
            int num = BannerlordTweaksSettings.Instance is { } settings?settings.TournamentMaxBetAmount : __instance.MaximumBetValue;

            if (Hero.MainHero.GetPerkValue(DefaultPerks.Roguery.DeepPockets))
            {
                num *= (int)DefaultPerks.Roguery.DeepPockets.PrimaryBonus;
            }
            GameTexts.SetVariable("MAX_AMOUNT", num);
            __instance.BetDescriptionText = GameTexts.FindText("str_tournament_bet_description").ToString();
        }
Пример #10
0
 private static void Postfix(TournamentVM __instance)
 {
     try
     {
         var info = TournamentsXPandedBehavior.GetTournamentInfo(__instance.Tournament.TournamentGame.Town);
         if (!string.IsNullOrWhiteSpace(info.SelectedPrizeStringId))
         {
             var ire = info.SelectedPrizeItem.ToItemRosterElement();
             __instance.PrizeVisual   = new ImageIdentifierVM(ire);
             __instance.PrizeItemName = ire.EquipmentElement.GetModifiedItemName().ToString();
         }
     }
     catch (Exception)
     {
     }
 }
Пример #11
0
        private static void Postfix(TournamentVM __instance)
        {
            try
            {
                var currentPool = TournamentPrizePoolBehavior.GetTournamentPrizePool(__instance.Tournament.TournamentGame.Town.Settlement);
                if (!string.IsNullOrWhiteSpace(currentPool.SelectedPrizeStringId))
                {
                    var ire = currentPool.Prizes.Where(x => x.EquipmentElement.Item.StringId == currentPool.SelectedPrizeStringId).First();

                    __instance.PrizeVisual   = new ImageIdentifierVM(ire);
                    __instance.PrizeItemName = ire.EquipmentElement.GetModifiedItemName().ToString();
                }
            }
            catch (Exception ex)
            {
            }
        }
        static void Postfix(TournamentVM __instance)
        {
            if (!(BannerlordTweaksSettings.Instance is { } settings))
            {
                return;
            }

            if (bettedAmountFieldInfo == null)
            {
                GetFieldInfo();
            }
            int thisRoundBettedAmount = !(bettedAmountFieldInfo is null) ? (int)bettedAmountFieldInfo.GetValue(__instance) : 0;
            int num = settings.TournamentMaxBetAmount;

            if (Hero.MainHero.GetPerkValue(DefaultPerks.Roguery.DeepPockets))
            {
                num *= (int)DefaultPerks.Roguery.DeepPockets.PrimaryBonus;
            }
            __instance.MaximumBetValue = Math.Min(num - thisRoundBettedAmount, Hero.MainHero.Gold);
        }
        public async Task <IActionResult> Create(TournamentVM tournamentVM)
        {
            if (ModelState.IsValid)
            {
                string image = "default_tournament_image.jpg";
                _fileManagementController = new FileManagementController(_appEnvironment);

                #region Image
                //if we uploaded an image
                if (tournamentVM.TournamentImage != null)
                {
                    //  #region File Upload Validation
                    bool fileUploadError = _fileManagementController.ValidateFileUploadExtensionAndSize(ModelState, tournamentVM.TournamentImage, FileType.Image, 2);
                    //return error if there is a file upload Error
                    if (fileUploadError)
                    {
                        TempData["message"] = NotificationSystem.AddMessage("لقد حصل خطأ في تحميل الملف", NotificationType.Danger.Value);
                        return(View(tournamentVM));
                    }
                    // upload and remove existing
                    image = _fileManagementController.UploadFile(tournamentVM.TournamentImage, "Media/Tournament");
                }
                #endregion

                // create tournament
                Tournament tournament = new Tournament()
                {
                    TournamentImage = image,
                    Name            = tournamentVM.Name,
                    Note            = tournamentVM.Note,
                    CreationDate    = DateTime.Now.Date,
                    IsActive        = true
                };

                _context.Add(tournament);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(tournamentVM));
        }
Пример #14
0
        public bool Insert(TournamentVM tournamentVM)
        {
            using (var scope = new TransactionScope())
            {
                var tournamentId = _tournament.Insert(tournamentVM);

                if (tournamentId == 0)
                {
                    scope.Dispose();
                    return(false);
                }

                if (!_workDay.MakeFixture(tournamentVM.Players, tournamentId))
                {
                    scope.Dispose();
                    return(false);
                }

                scope.Complete();
                return(true);
            }
        }
Пример #15
0
        public List <PositionTable> GetPositionTable(TournamentVM tournament)
        {
            var workDays        = tournament.WorkDays;
            var availableTables = new List <PositionTable>();
            var positionTables  = new List <PositionTable>();

            tournament.Players.ForEach(x => availableTables.Add(new PositionTable()
            {
                PlayerId = x.PlayerId, Player = x
            }));

            foreach (var workDay in workDays)
            {
                foreach (var match in workDay.Matches)
                {
                    if (match.Played)
                    {
                        var homePosition = new PositionTable();
                        var awayPosition = new PositionTable();

                        homePosition.LostMatch = match.HomeGoal < match.AwayGoal ? 1 : 0;
                        homePosition.TiedMatch = match.HomeGoal == match.AwayGoal ? 1 : 0;
                        homePosition.MatchWon  = match.HomeGoal > match.AwayGoal ? 1 : 0;

                        positionTables.Add(GetTables(match.AwayGoal, match.HomeGoal, homePosition.LostMatch, homePosition.MatchWon, homePosition.TiedMatch, match.HomePlayerId));


                        awayPosition.LostMatch = match.HomeGoal > match.AwayGoal ? 1 : 0;
                        awayPosition.TiedMatch = match.HomeGoal == match.AwayGoal ? 1 : 0;
                        awayPosition.MatchWon  = match.HomeGoal < match.AwayGoal ? 1 : 0;

                        positionTables.Add(GetTables(match.HomeGoal, match.AwayGoal, awayPosition.LostMatch, awayPosition.MatchWon, awayPosition.TiedMatch, match.AwayPlayerId));
                    }
                }
            }

            return(FinishTable(positionTables, tournament.Players));
        }
        public async Task <IActionResult> Edit(int id, TournamentVM tournamentVM)
        {
            if (id != tournamentVM.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    List <Officer> officers = _context.Officers.Where(t => t.TournamentId == tournamentVM.Id).ToList();

                    if (!tournamentVM.IsActive)
                    {
                        foreach (var item in officers)
                        {
                            item.IsActive = false;
                            _context.Officers.Update(item);
                        }
                    }
                    else
                    {
                        foreach (var item in officers)
                        {
                            item.IsActive = true;
                            _context.Officers.Update(item);
                        }
                    }

                    string image = "default_tournament_image.jpg";
                    _fileManagementController = new FileManagementController(_appEnvironment);

                    #region Image
                    //if we uploaded an image
                    if (tournamentVM.TournamentImage != null)
                    {
                        //  #region File Upload Validation
                        bool fileUploadError = _fileManagementController.ValidateFileUploadExtensionAndSize(ModelState, tournamentVM.TournamentImage, FileType.Image, 2);
                        //return error if there is a file upload Error
                        if (fileUploadError)
                        {
                            TempData["message"] = NotificationSystem.AddMessage("لقد حصل خطأ في تحميل الملف", NotificationType.Danger.Value);
                            return(View(tournamentVM));
                        }
                        // upload and remove existing
                        image = _fileManagementController.UploadFile(tournamentVM.TournamentImage, "Media/Tournament");
                    }
                    else
                    {
                        image = tournamentVM.ExistingTournamentImage;
                    }
                    #endregion

                    Tournament tournament = _context.Tournaments.Find(tournamentVM.Id);
                    tournament.IsActive        = tournamentVM.IsActive;
                    tournament.Name            = tournamentVM.Name;
                    tournament.Note            = tournamentVM.Note;
                    tournament.TournamentImage = image;
                    _context.Update(tournament);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TournamentExists(tournamentVM.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                TempData["message"] = NotificationSystem.AddMessage("تم تعديل الدورة بنجاح", NotificationType.Success.Value);

                return(RedirectToAction(nameof(Index)));
            }
            return(View(tournamentVM));
        }
 static void Postfix(TournamentVM __instance)
 {
     GameTexts.SetVariable("MAX_AMOUNT", Settings.Instance.TournamentMaxBetAmount);
     __instance.BetDescriptionText = GameTexts.FindText("str_tournament_bet_description").ToString();
 }
Пример #18
0
        public static void Postfix(TournamentVM __instance)
        {
            XmlNode settings = ClanTweakerSubModule.settings.xmlSettings.ChildNodes[1].SelectSingleNode("TournamentSettings");

            typeof(TournamentVM).GetProperty("MaximumBetValue").SetValue(__instance, Math.Min(int.Parse(settings.SelectSingleNode("MaximumBet").InnerText), Hero.MainHero.Gold));
        }
Пример #19
0
        static void Postfix(TournamentVM __instance)
        {
            int thisRoundBettedAmount = (int)(typeof(TournamentVM).GetField("_thisRoundBettedAmount", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic)).GetValue(__instance);

            __instance.MaximumBetValue = Math.Min(Settings.Instance.TournamentMaxBetAmount - thisRoundBettedAmount, Hero.MainHero.Gold);
        }
        public int Insert(TournamentVM tournamentVM)
        {
            var tournament = Mapper.MapFromVM(tournamentVM);

            return(Repository.Insert(tournament));
        }