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); }
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))); }
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)); }
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); }