Пример #1
0
        public virtual IActionResult UpdateUser([FromRoute] string username, [FromBody] User user)
        {
            // TODO ftn: Add validation to the user parameter!!!
            // Return 400 - BadRequest if not valid!
            var existingUser = _context.Users.FirstOrDefault(u => u.Username == username);

            if (existingUser == null)
            {
                return(StatusCode(StatusCodes.Status404NotFound, username)); // 400 not found!
            }

            try
            {
                user.Password = _hasher.HashPassword(null, user.Password);
                // Ensure token is changed:
                user.RefreshToken = Guid.NewGuid();
                _context.Entry(existingUser).CurrentValues.SetValues(user);
                _context.SaveChanges();
                return(Ok(user));
            }
            catch (Exception)
            {
                _logger.LogError(LoggingEvents.UPDATE_ITEM, "UpdateUser({username}) NOT UPDATED", username);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
Пример #2
0
        public virtual IActionResult UpdatePurchaseCode([FromBody] PurchaseCode purchaseCode)
        {
            // TODO ftn: Add validation to the purchaseCode parameter!!!
            // Return 400 - BadRequest if not valid!
            PurchaseCode code = _context.Codes.FirstOrDefault(c => c.Code == purchaseCode.Code);

            if (code == null)
            {
                //return StatusCode(StatusCodes.Status404NotFound, purchaseCode); // 400 not found!
                return(new ObjectResult(false));
            }

            if (code.Used == null)
            {
                return(new ObjectResult(false));
            }

            if ((bool)code.Used)
            {
                return(new ObjectResult(false));
            }

            try
            {
                code.Used                       = true;
                code.User                       = _context.Users.FirstOrDefault(u => u.Id == purchaseCode.UserId);
                code.UsageDateTime              = DateTime.Now.ToUniversalTime();
                code.User.Balance              += code.Value;
                _context.Entry(code).State      = EntityState.Modified;
                _context.Entry(code.User).State = EntityState.Modified;
                _context.SaveChanges();
                return(new ObjectResult(true));
                //return Ok(purchaseCode);
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
Пример #3
0
        public virtual IActionResult AddTicketValidation([FromBody] TicketValidation ticketValidation)
        {
            // TODO ftn: Add validation to the ticketValidation parameter!!!
            // Return 400 - BadRequest if not valid!

            if (_context.Validations.FirstOrDefault(t => t.Id == ticketValidation.Id) != null)
            {
                return(StatusCode(StatusCodes.Status409Conflict)); // 409 already exists!
            }

            TicketPurchase ticket = _context.Purchases.FirstOrDefault(p => p.Code == ticketValidation.Ticket.Code);

            if (ticket == null)
            {
                return(StatusCode(StatusCodes.Status404NotFound));
            }

            if (ticket.EndDateTime < DateTime.Now)
            {
                return(StatusCode(StatusCodes.Status406NotAcceptable, ticket));
            }

            try
            {
                ticketValidation.Ticket             = ticket;
                ticketValidation.IsValid            = true;
                ticketValidation.ValidationDateTime = DateTime.Now.ToUniversalTime();

                Random r    = new Random();
                int    rInt = r.Next(1, 1000000000);
                ticketValidation.Id = rInt;

                _context.Validations.Add(ticketValidation);
                _context.Entry(ticketValidation.Controller).State = Microsoft.EntityFrameworkCore.EntityState.Unchanged;
                _context.SaveChanges();
                return(new ObjectResult(ticket));
                //return Created(Request.Host.ToString(), ticketValidation); // 201 Created successfuly.
            }
            catch (Exception)
            {
                _logger.LogError(LoggingEvents.INSERT_ITEM, "AddTicketType({ticketValidation}) NOT ADDED", ticketValidation);
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }