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