public async Task <ContestRequestModel> SaveRequest(ContestRequestModel requestModel)
        {
            var existedRequests = await _contestRequestsRepository.Find(r =>
                                                                        r.Type != ContestRoleType.Judge &&
                                                                        r.UserId == requestModel.UserId &&
                                                                        r.Type == requestModel.Type && r.Id != requestModel.Id &&
                                                                        r.ContestId == requestModel.ContestId);

            if (existedRequests.Any())
            {
                throw new Exception("The same request is already added");
            }

            ContestRequest requestEntity = await _contestRequestsRepository.Get(requestModel.Id) ?? new ContestRequest
            {
                IssueDate = DateTime.UtcNow
            };

            requestEntity.ContestId         = requestModel.ContestId;
            requestEntity.ContestCategoryId = requestModel.ContestCategoryId;
            requestEntity.InstitutionId     = requestModel.InstitutionId;
            requestEntity.Status            = requestModel.Status;
            requestEntity.Type   = requestModel.Type;
            requestEntity.UserId = requestModel.UserId;

            await _contestRequestsRepository.Save(requestEntity);

            var request = await _contestRequestsRepository.Get(requestEntity.Id);

            return(_mapper.Map <ContestRequest, ContestRequestModel>(request));
        }
        public async Task RemoveRequest(int requestId)
        {
            ContestRequest requestEntity = await _contestRequestsRepository.Get(requestId);

            if (requestEntity == null)
            {
                throw new Exception("Request not found");
            }

            await _contestRequestsRepository.Remove(requestEntity);
        }
        public override bool IsJudgeAppropriated(ContestRequest request, Fight fight, List <Fight> contestFights)
        {
            var isJudgeAppropriated = _judgeSelector.IsJudgeAppropriated(request, fight, contestFights);

            if (fight.BlueAthlete.Gender != Female)
            {
                return(isJudgeAppropriated);
            }

            return(isJudgeAppropriated && request.User.Gender == Female);
        }
        public List <ContestDetailsResp> GetFullContestDetails(ContestRequest req)
        {
            List <ContestDetailsResp> contestLst = new List <ContestDetailsResp>();
            string json = "{\"returnType\": \"response\",\"query\": \"query Contests( $site: String! $tourId: Int! $matchId: Int! $joiningAmount: CompareInt $category: ContestCategory $sectionIds: [Int]) { me { isGuestUser showOnboarding } site(slug: $site) { showWalletIcon maxTeamsAllowed tour(id: $tourId) { match(id: $matchId) { contests( category: $category joiningAmount: $joiningAmount contestSectionIds: $sectionIds ) { contestCategory contestSize currentSize entryFee { amount symbol } hasJoined id inviteCode isInfiniteEntry isGuaranteed isMultipleEntry numberOfWinners prizeAmount { amount symbol } showInvite isFreeEntry match { id status } tour { id name } site } name guru startTime status squads { shortName } } } }}\",\"variables\": {\"tourId\": " + req.TourId + ",\"matchId\": " + req.MatchId + ",\"site\": \"cricket\",\"sectionIds\": [" + req.SectionId + "]}}";
            Dictionary <string, ContestDetails> dict     = _contestRepo.ConstructContestDetailsJson(json);
            List <ContestAdditionalDetails>     addOnLst = MapFullContestDetailsFromDict(dict);
            ContestDetailsResp contest = new ContestDetailsResp();

            contest.AddonList = addOnLst;
            contestLst.Add(contest);
            return(contestLst);
        }
Exemple #5
0
        public virtual bool IsJudgeAppropriated(ContestRequest request, Fight fight, List <Fight> contestFights)
        {
            var fightDuration = FightDurationCalculator.CalculateFightDuration(fight.Structure.Round);

            var assignedFights = contestFights.Where(f =>
                                                     f.FightJudgesMappings != null && f.FightJudgesMappings.Any(m => m.JudgeId == request.UserId) ||
                                                     f.RefereeId == request.UserId || f.TimeKeeperId == request.UserId).ToArray();

            return(assignedFights.Length == 0 || assignedFights.All(f =>
                                                                    f.StartDate < fight.StartDate?.Add(-fightDuration) &&
                                                                    f.StartDate > fight.StartDate?.Add(fightDuration)));
        }
Exemple #6
0
        public Task Save(ContestRequest request)
        {
            if (request.Id == 0)
            {
                _context.ContestRequests.AddAsync(request);
            }
            else
            {
                _context.ContestRequests.Attach(request);
            }

            return(_context.SaveChangesAsync());
        }
        private static async Task WriteToBlobAsync(ContestRequest request, IList <ContestResponse> contests)
        {
            BlobApi blobApi = await BlobApi.Instance;

            // Writes the blob to storage
            BlobContents contents = new BlobContents
            {
                BaseInputs = request,
                Contests   = contests
            };
            string jsonString = JsonConvert.SerializeObject(contents);
            string fileName   = $"{request.Mstpid}-{DateTime.Now:yyyy-MM}-{Guid.NewGuid()}";
            await blobApi.UploadToBlobAsync(jsonString, fileName);
        }
        public async Task <ContestRequestModel> AllocateJudge(ContestJudgeAllocationModel allocationModel)
        {
            ContestRequest requestEntity = await _contestRequestsRepository.Get(allocationModel.RequestId);

            if (requestEntity == null)
            {
                throw new Exception("Request not found");
            }

            requestEntity.JudgeType = allocationModel.JudgeType;

            await _contestRequestsRepository.Save(requestEntity);

            return(_mapper.Map <ContestRequestModel>(requestEntity));
        }
        public async Task <ContestRequestModel> RejectRequest(int requestId, string acceptedByUser)
        {
            ContestRequest requestEntity = await _contestRequestsRepository.Get(requestId);

            if (requestEntity == null)
            {
                throw new Exception("Request not found");
            }

            requestEntity.Status           = ContestRoleRequestStatus.Rejected;
            requestEntity.AcceptedByUserId = acceptedByUser;
            requestEntity.AcceptanceDate   = DateTime.UtcNow;

            await _contestRequestsRepository.Save(requestEntity);

            return(_mapper.Map <ContestRequest, ContestRequestModel>(requestEntity));
        }
        public IActionResult ContestDetail(string contestName)
        {
            ContestDetails contest = new ContestDetails();

            contest.flagNameOne  = HttpContext.Session.GetString("flagNameWithNameOne");
            contest.flagNameTwo  = HttpContext.Session.GetString("flagNameWithNameTwo");
            contest.startingTime = HttpContext.Session.GetString("StartingTime");

            ContestRequest play = new ContestRequest()
            {
                MatchId   = Convert.ToInt32(HttpContext.Session.GetString("MatchId")),
                TourId    = Convert.ToInt32(HttpContext.Session.GetString("tourId")),
                SectionId = ContestHelper.GetContestSection(contestName)
            };
            List <ContestDetailsResp> contestLst = _contestService.GetFullContestDetails(play);

            contest.ContestAdditionalLst = contestLst[0].AddonList;
            return(View(contest));
        }
Exemple #11
0
 public Task Remove(ContestRequest request)
 {
     _context.ContestRequests.Remove(request);
     return(_context.SaveChangesAsync());
 }
 public override bool IsJudgeAppropriated(ContestRequest request, Fight fight, List <Fight> contestFights)
 {
     return(base.IsJudgeAppropriated(request, fight, contestFights) &&
            fight.RedAthlete?.InstitutionId != request.InstitutionId &&
            fight.BlueAthlete?.InstitutionId != request.InstitutionId);
 }