Пример #1
0
        public async Task <bool> AddWorkAsync(AddWorkRequest request)
        {
            var contest = await _dbContext.Contests
                          .Include(x => x.Users)
                          .FirstOrDefaultAsync(x => x.Id == int.Parse(request.ContestId));

            if (contest.IsOpen || contest.Users.Any(x => x.UserId == request.UserId))
            {
                await _dbContext.AddAsync(new Work
                {
                    UserId      = request.UserId,
                    ContestId   = int.Parse(request.ContestId),
                    Description = request.Description,
                    Title       = request.Title,
                    State       = ModelState.Active,
                    Source      = request.Source,
                    WorkStatus  = WorkState.Unmarked
                });

                await _dbContext.SaveChangesAsync();

                return(true);
            }

            return(false);
        }
Пример #2
0
        public async Task <ActionResult> AddWork(AddWorkRequest work)
        {
            try
            {
                work.UserId = _contextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;

                var result = await _contestService.AddWorkAsync(work);

                return(Result.Ok(result));
            }
            catch (Exception ex)
            {
                return(Result.Error(ex));
            }
        }