public async Task <IActionResult> PostPronostic([FromBody] Pronostic pronostic)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var identity = HttpContext.User.Identity as ClaimsIdentity;

            if (!CheckClaims.CheckUser(identity, pronostic.User.Id))
            {
                return(BadRequest("It's not you :)"));
            }


            var isAlreadyBet = _context.Pronostic.Any(p => p.Match.Id == pronostic.Match.Id && p.User.Id == pronostic.User.Id);

            if (isAlreadyBet)
            {
                return(BadRequest("A bet already exists for this match/user"));
            }
            if (pronostic.Match.Date <= DateTime.Now)
            {
                return(BadRequest("Cannot bet on already played match"));
            }
            _context.Entry(pronostic.User).State  = EntityState.Unchanged;
            _context.Entry(pronostic.Match).State = EntityState.Unchanged;
            _context.Pronostic.Add(pronostic);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetPronostic", new { id = pronostic.Id }, pronostic));
        }
示例#2
0
        public async Task <IActionResult> GetUser([FromRoute] string id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var identity = HttpContext.User.Identity as ClaimsIdentity;

            if (!CheckClaims.CheckUser(identity, id))
            {
                return(BadRequest("It's not you :)"));
            }

            var user = await _context.User.SingleOrDefaultAsync(m => m.Id == id);

            if (user == null)
            {
                return(NotFound());
            }

            var result = _mapper.Map <UserViewModel>(user);

            return(Ok(result));
        }
        public async Task <IActionResult> PutPronostic([FromRoute] long id, [FromBody] Pronostic pronostic)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != pronostic.Id)
            {
                return(BadRequest());
            }

            var identity = HttpContext.User.Identity as ClaimsIdentity;

            if (!CheckClaims.CheckUser(identity, pronostic.User.Id))
            {
                return(BadRequest("It's not you :)"));
            }


            if (pronostic.Match.Date <= DateTime.Now)
            {
                return(BadRequest("Cannot bet on already played match"));
            }

            _context.Entry(pronostic).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PronosticExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#4
0
        public async Task <IActionResult> PutUser([FromRoute] string id, [FromBody] RegistrationViewModel user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != user.Id)
            {
                return(BadRequest());
            }

            var identity = HttpContext.User.Identity as ClaimsIdentity;

            if (!CheckClaims.CheckUser(identity, id))
            {
                return(BadRequest("It's not you :)"));
            }

            var dbUser = await _userManager.FindByIdAsync(id);

            dbUser.FirstName = user.FirstName;
            dbUser.LastName  = user.LastName;

            var result = await _userManager.UpdateAsync(dbUser);

            if (!result.Succeeded)
            {
                return(new BadRequestObjectResult(Errors.AddErrorsToModelState(result, ModelState)));
            }
            result = await _userManager.RemovePasswordAsync(dbUser);

            if (!result.Succeeded)
            {
                return(new BadRequestObjectResult(Errors.AddErrorsToModelState(result, ModelState)));
            }
            result = await _userManager.AddPasswordAsync(dbUser, user.Password);

            if (!result.Succeeded)
            {
                return(new BadRequestObjectResult(Errors.AddErrorsToModelState(result, ModelState)));
            }

            return(NoContent());
        }
示例#5
0
        public IActionResult GetTodayMatchesWithPronosticFromUser([FromRoute] string id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var identity = HttpContext.User.Identity as ClaimsIdentity;

            if (!CheckClaims.CheckUser(identity, id))
            {
                return(BadRequest("It's not you :)"));
            }

            var result = _matchDAO.GetTodayMatchesWithPronosticFromUser(id);

            if (result == null)
            {
                return(NotFound());
            }

            return(Ok(result));
        }