public virtual IActionResult AddPurchaseCode([FromBody] PurchaseCode purchaseCode) { // TODO ftn: Add validation to the purchaseCode parameter!!! // Return 400 - BadRequest if not valid! if (_context.Codes.FirstOrDefault(c => c.Code == purchaseCode.Code) != null) { return(StatusCode(StatusCodes.Status409Conflict, purchaseCode)); // 409 already exists! } try { _context.Codes.Add(purchaseCode); _context.SaveChanges(); return(Created(Request.Host.ToString(), purchaseCode)); // 201 Created successfuly. } catch (Exception) { _logger.LogError(LoggingEvents.INSERT_ITEM, "AddPurchaseCode({purchaseCode}) NOT ADDED", purchaseCode); 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)); } }
/// <summary> /// Seed database with predefined data. /// </summary> /// <param name="serviceProvider">DI service provider instance.</param> public static void Seed(IServiceProvider serviceProvider) { var context = serviceProvider.GetService <TripAppContext>(); var hasher = serviceProvider.GetService <IPasswordHasher <User> >(); string defaultPass = hasher.HashPassword(null, defaultPassword); string devPass = hasher.HashPassword(null, devPassword); // Users: User admin = new User(1, "admin", "Pera", "Administratovic", "*****@*****.**", defaultPass, "333-123", "administrator", 20.0d); context.Users.Add(admin); User passenger = new User(2, "a", "Darinka", "Putnik", "*****@*****.**", defaultPass, "333-444", "passenger", 25.0d); context.Users.Add(passenger); User controller = new User(3, "ctrl", "Milos", "Nagib", "*****@*****.**", defaultPass, "333-555", "controller", 50.0d); context.Users.Add(controller); User devadmin = new User(4, "dev", "Bill", "Linux Idol", "*****@*****.**", devPass, "123-456", "administrator", 100.0d); context.Users.Add(devadmin); // Purchase codes: PurchaseCode code = new PurchaseCode(1, Guid.Parse("bc495959-9aa7-447d-905d-0dfc74c16188"), 5.0d, DateTime.Now.ToUniversalTime(), null, false, null); PurchaseCode code2 = new PurchaseCode(2, Guid.Parse("e1f80425-7f55-4a2a-b777-f6833c1758ae"), 10.0d, DateTime.Now.ToUniversalTime(), null, false, null); PurchaseCode code3 = new PurchaseCode(3, Guid.Parse("33994bf3-0489-4897-9b87-853c76124ee1"), 25.0d, DateTime.Now.ToUniversalTime(), null, false, null); PurchaseCode code4 = new PurchaseCode(4, Guid.Parse("6d043fbc-5fdc-40a0-9cbb-58bf7aef1744"), 50.0d, DateTime.Now.ToUniversalTime(), null, false, null); PurchaseCode code5 = new PurchaseCode(5, Guid.Parse("6d043fac-5fdc-40a0-9cbb-58bf7aef1741"), 100.0d, DateTime.Now.ToUniversalTime(), null, false, null); PurchaseCode code6 = new PurchaseCode(6, Guid.Parse("d6b11c76-a0f5-4ebf-b840-6d1a7d1b73ba"), 5.0d, DateTime.Now.ToUniversalTime(), null, false, null); PurchaseCode code7 = new PurchaseCode(7, Guid.Parse("ec61f4c7-3f0d-4754-ab27-8756efae6542"), 10.0d, DateTime.Now.ToUniversalTime(), null, false, null); PurchaseCode code8 = new PurchaseCode(8, Guid.Parse("39d3e085-5243-4ef3-a619-7d9765329f29"), 10.0d, DateTime.Now.ToUniversalTime(), null, false, null); PurchaseCode code9 = new PurchaseCode(9, Guid.Parse("4806c7e3-2c2f-4581-b8c1-b82537098ad4"), 10.0d, DateTime.Now.ToUniversalTime(), null, false, null); PurchaseCode code10 = new PurchaseCode(10, Guid.Parse("9999c59f-5827-47f6-a837-d6c6c70ed7a9"), 10.0d, DateTime.Now.ToUniversalTime(), null, false, null); context.Codes.Add(code); context.Codes.Add(code2); context.Codes.Add(code3); context.Codes.Add(code4); context.Codes.Add(code5); context.Codes.Add(code6); context.Codes.Add(code7); context.Codes.Add(code8); context.Codes.Add(code9); context.Codes.Add(code10); // Ticket types: TicketType typeHour = new TicketType(1, "Hourly ticket", 1, 1.2d); TicketType typeDay = new TicketType(2, "Daily ticket", 24, 5d); TicketType typeMonth = new TicketType(4, "Monthly ticket", 24 * 30, 40d); TicketType typeWeek = new TicketType(3, "Weekly ticket", 24 * 7, 16d); context.Types.Add(typeHour); context.Types.Add(typeDay); context.Types.Add(typeMonth); context.Types.Add(typeWeek); // Purchases: TicketPurchase purchase = new TicketPurchase(750, Guid.NewGuid(), 30.0d, DateTime.Now, DateTime.Now.AddMinutes(typeHour.Duration.Value * 60), 1, typeHour, passenger); purchase.UserId = passenger.Id; TicketPurchase purchase2 = new TicketPurchase(751, Guid.NewGuid(), 30.0d, DateTime.Now.AddHours(-3), DateTime.Now.AddHours(-2), 2, typeHour, passenger); purchase2.UserId = passenger.Id; TicketPurchase purchase3 = new TicketPurchase(752, Guid.NewGuid(), 30.0d, DateTime.Now.AddHours(-12), DateTime.Now.AddHours(12), 1, typeDay, passenger); purchase3.UserId = passenger.Id; TicketPurchase purchase4 = new TicketPurchase(753, Guid.NewGuid(), 30.0d, DateTime.Now, DateTime.Now.AddHours(24 * 30), 1, typeMonth, passenger); purchase4.UserId = passenger.Id; context.Purchases.Add(purchase); context.Purchases.Add(purchase2); context.Purchases.Add(purchase3); context.Purchases.Add(purchase4); // Validations: TicketValidation validation = new TicketValidation(1, DateTime.Now.AddMinutes(2).ToUniversalTime(), true, purchase, controller); context.Validations.Add(validation); context.SaveChanges(); }