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 <IActionResult> RemoveContest([FromBody] ContestRequestModel contestResponse) { try { await _contestsService.RemoveContest(contestResponse.Id); return(Ok(contestResponse.Id)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <IActionResult> RejectContestRequest([FromBody] ContestRequestModel requestModel) { try { var userId = _httpUserContext.GetUserId(); var request = await _requestsService.RejectRequest(requestModel.Id, userId); return(Ok(request)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <IActionResult> SaveContestRequest([FromBody] ContestRequestModel requestModel) { try { var user = await _httpUserContext.GetUser(); requestModel.InstitutionId = requestModel.InstitutionId ?? user.InstitutionId; var request = await _requestsService.SaveRequest(requestModel); return(Ok(request)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }