public async Task LoanVehicle(LoanOrderViewModel input) { var user = this.userService.GetCurrentUsers(input.UserId); if (user != null) { VehicleType vehicle; Enum.TryParse <VehicleType>(input.VehicleType, out vehicle); await this.ChangeVehicleAvailable(input.VehicleId, vehicle); await this.userService.UpdateUserFirstAndLastName(input.UserId, input.FirstName, input.LastName); var orders = new Order() { VehicleType = vehicle, VehicleId = input.VehicleId, Address = input.Address, PriceForHour = input.PriceForHour, DateFrom = input.DateFrom, Status = StatusType.Wait, ImageUrl = this.GetVehicleImage(input.VehicleId, vehicle), User = this.userService.GetCurrentUsers(input.UserId), }; user.Orders.Add(orders); await this.db.SaveChangesAsync(); } }
public async Task LoanVehicle() { var options = new DbContextOptionsBuilder <ApplicationDbContext>().UseInMemoryDatabase("Database_For_Tests").Options; var dbContext = new ApplicationDbContext(options); var userService = new UserService(dbContext); var orderService = new OrderService(dbContext, userService); var imageService = new ImageService(dbContext); var bicycleService = new BicycleService(dbContext, imageService); AutoMapperConfig.RegisterMappings(typeof(LoanOrderViewModel).Assembly, typeof(Order).Assembly); var vehicle = new Bicycle() { Id = 1, Type = BicycleType.Mountain, Made = "Something", Speeds = 21, Size = BicycleSize.M, SizeOfTires = 21, PriceForHour = 21, Description = "Something", ImageUrl = "Test", }; var user = new ApplicationUser() { Id = "Test", FirstName = "Petroslav", LastName = "Gochev", Email = "*****@*****.**", PhoneNumber = "0889636768", Age = 24, }; dbContext.Add <ApplicationUser>(user); dbContext.Add <Bicycle>(vehicle); var orders = new LoanOrderViewModel() { VehicleId = 1, VehicleType = BicycleType.Mountain.ToString(), UserId = "Test", Address = "Stara Planina", DateFrom = DateTime.Now, UserName = "******", FirstName = "Petroslav", LastName = "Gochev", Email = "*****@*****.**", ImageUrl = "Gochev", }; await orderService.LoanVehicle(orders); Assert.Empty(user.Orders); }
public async Task <IActionResult> LoanVehicle(VehicleDataViewModel input) { var user = await this.userManager.GetUserAsync(this.User); var loan = new LoanOrderViewModel() { VehicleId = input.VehicleId, VehicleType = input.Type.ToString(), PriceForHour = input.PriceForHour, DateFrom = DateTime.Now, UserId = user.Id, ImageUrl = input.ImageUrl, FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, }; return(this.View(loan)); }
public async Task <IActionResult> LoanVehicle(LoanOrderViewModel input) { await this.orderService.LoanVehicle(input); return(this.RedirectToAction(nameof(this.UserOrders))); }