public ActionResult DeletePost(int id) { VehicleAvailability vehicleavailability = context.vehicleAvailabilityC.SingleOrDefault(x => x.AvailabilityId == id); context.vehicleAvailabilityC.Remove(vehicleavailability); context.SaveChanges(); return(RedirectToAction("Index1", "ManageAvailability", new { id = Session["vid"].ToString() })); }
public ActionResult Create(VehicleAvailability vehicleavailability) { if (ModelState.IsValid) { vehicleavailability.VehicleId = Session["vid"].ToString(); context.vehicleAvailabilityC.Add(vehicleavailability); context.SaveChanges(); return(RedirectToAction("Index1", "ManageAvailability", new { id = Session["vid"].ToString() })); } return(View(vehicleavailability)); }
public ActionResult maping(VehicleAvailability available) { Debug.WriteLine(available.latitude); var find = db.vehicleAvailabilityC.Where(x => x.latitude <= available.latitude + 0.3 && x.longitude <= available.longitude || x.latitude >= available.latitude - 0.3 && x.latitude <= available.latitude).ToList(); if (find != null) { string marker = "["; foreach (var item in find) { marker += "{"; marker += "title:'" + item.VehicleId.ToString() + "',"; marker += "lat:" + item.latitude + ","; marker += "lng:" + item.longitude + ","; marker += "},"; } marker += "]"; Debug.WriteLine(marker); return(RedirectToAction("findresult", new { mark = marker.ToString() })); } return(View()); }
public async Task <IActionResult> BookIt([FromBody] AvailableVehicleModelView data) { POJOMsgs POJOmodel = new POJOMsgs(); string currentUserId = _userManager.GetUserId(HttpContext.User);//Get UserId if (currentUserId != null) { //get the current location of the car // VehicleCurrentLocation _VehicleCurrentLocation = await _context.VehicleCurrentLocations.FirstOrDefaultAsync(car =>car.VehicleId==data.VehicleId); try { //GEt the user email var _User = await _context.Users.FindAsync(currentUserId); //GEt the vehicle details Vehicle _Vehicle = await _context.Vehicles.FindAsync(data.VehicleId); //Get the total hours and price double TotalPrice = _Vehicle.PricePerHour * (Convert.ToInt32(data.DropOffTime) - Convert.ToInt32(data.PickUpTime)); // string currentUserId = _userManager.GetUserId(HttpContext.User);//Get UserId Reservation model = new Reservation { VehicleId = data.VehicleId, PickUpLocationLatitue = data.PickLatitue, // car current location PickUpLocationLongitute = data.PickLongitute, // car current location ReturnLocationLatitue = data.DropoffLatitue, ReturnLocationLongitute = data.DropoffLongitute, PickUpDate = Convert.ToDateTime(data.PickUpDate), // DropOffDate = Convert.ToDateTime(data.DropOffDate), PickUpTime = data.PickUpTime, DropOffTime = data.DropOffTime, UserId = currentUserId, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, Amount = TotalPrice }; //Adding New Reservation await _context.Reservations.AddAsync(model); await _context.SaveChangesAsync(); int _ReservationId = model.Id; //to add/or update VehicleAvailabilities tb (5,2) VehicleAvailability _AvailableVehicle = await _context.VehicleAvailabilities.FirstOrDefaultAsync(a => a.VehicleId == model.VehicleId && a.Date == model.PickUpDate); //if avail just update it if (_AvailableVehicle != null) { string TempBookingTime = _AvailableVehicle.BookingTime + "," + model.PickUpTime + "," + model.DropOffTime; _AvailableVehicle.BookingTime = TempBookingTime; _AvailableVehicle.UpdateTime = DateTime.Now; _AvailableVehicle.UserId = currentUserId; //update VehicleAvailabilities _context.VehicleAvailabilities.Update(_AvailableVehicle); await _context.SaveChangesAsync(); } else { VehicleAvailability _availableVehicle = new VehicleAvailability { VehicleId = data.VehicleId, Date = model.PickUpDate, BookingTime = model.PickUpTime + "," + model.DropOffTime, UserId = currentUserId, CreateTime = DateTime.Now, UpdateTime = DateTime.Now }; //Add new VehicleAvailabilities await _context.VehicleAvailabilities.AddAsync(_availableVehicle); await _context.SaveChangesAsync(); } //after create order after booking Order _Order = new Order { VehicleId = data.VehicleId, UserId = currentUserId, PickUpDate = Convert.ToDateTime(data.PickUpDate), // DropOffDate = Convert.ToDateTime(data.DropOffDate), PickUpTime = data.PickUpTime, DropOffTime = data.DropOffTime, ReservationId = _ReservationId }; _Order.TotalAmount = TotalPrice; //Need the total hours _Order.IsPaid = false; //before pay _Order.CreateDate = DateTime.Now; _Order.UpdateDate = DateTime.Now; await _context.Orders.AddAsync(_Order); await _context.SaveChangesAsync(); POJOmodel.Flag = true; POJOmodel.Msg = _Order.Id.ToString(); //Do Job IJobDetail _JobDeleteUnpaid = JobBuilder.Create <JobDeleteUnpaid>() .UsingJobData("Id", _Order.Id.ToString()) .UsingJobData("Email", _User.Email) .WithIdentity("simplejob" + _Order.Id.ToString(), "quartzexapmle" + _Order.Id.ToString()) .Build(); ITrigger _JobDeleteUnpaid_triger = TriggerBuilder.Create() .WithIdentity("testtrigger" + _Order.Id.ToString(), "quartzexapmle" + _Order.Id.ToString()) .StartNow() .WithSimpleSchedule(x => x.WithIntervalInMinutes(3).WithRepeatCount(2)) .Build(); await _scheduler.ScheduleJob(_JobDeleteUnpaid, _JobDeleteUnpaid_triger); // } catch (Exception e) { POJOmodel.Flag = false; POJOmodel.Msg = e.ToString(); } } else { POJOmodel.Flag = false; POJOmodel.Msg = "Plase, Login or Regiester...."; } return(Json(POJOmodel)); }
public ActionResult Delete(int id) { VehicleAvailability vehicleavailability = context.vehicleAvailabilityC.SingleOrDefault(x => x.AvailabilityId == id); return(View(vehicleavailability)); }
public async Task Execute(IJobExecutionContext context) { JobDataMap _data = context.JobDetail.JobDataMap; string Id = _data.GetString("Id"); string UserEmail = _data.GetString("Email");; Debug.WriteLine($"From Delte {Id} his email {UserEmail}"); var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>(); optionsBuilder.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")); using (var _context = new ApplicationDbContext(optionsBuilder.Options)) { int MyId = Convert.ToInt32(Id); //Check, if still not paid delete it Reservation _DeleteReservation = await _context.Reservations.FirstOrDefaultAsync(r => r.Id == MyId && r.IsConfirmed == false); if (_DeleteReservation != null) { var StartTime = DateTime.Now; var Sub = StartTime.Subtract(_DeleteReservation.CreateTime); //time need to delete after 2 min as test... var FromNow = TimeSpan.FromMinutes(2); if (Sub >= FromNow) { //remove order, booking and reservation. Order _order = await _context.Orders.FirstOrDefaultAsync(ord => ord.ReservationId == _DeleteReservation.Id); string TimesToDelete = _DeleteReservation.PickUpTime + "," + _DeleteReservation.DropOffTime; //Booking Table VehicleAvailability _VehicleAvailability = await _context.VehicleAvailabilities .FirstOrDefaultAsync(va => va.Date == _DeleteReservation.PickUpDate && va.VehicleId == _DeleteReservation.VehicleId); string Times = _VehicleAvailability.BookingTime; string NewTimes = string.Empty; if (Times.Contains(TimesToDelete)) { NewTimes = Times.Remove(Times.IndexOf(TimesToDelete), TimesToDelete.Length); } //Send the New Time Table _VehicleAvailability.BookingTime = NewTimes; _context.VehicleAvailabilities.Update(_VehicleAvailability); _context.Orders.Remove(_order); //should remve to, if no will be show in predected result _context.Reservations.Remove(_DeleteReservation); await _context.SaveChangesAsync(); //Need Update the Availabiltiy tb too(after workin).. Debug.WriteLine($"Reservation has been Deleted: {Id} "); //Send Email to inform the user the booking has been cancceld await _emailSender.SendEmailAsync(UserEmail, "Car Share Service", $" Dear User, Your Booking Num# {Id} has been canceled..."); } }//End of not null //IQueryable<Reservation> _Unpaid = _context.Reservations.Where(r => r.IsConfirmed == false); //foreach (var item in _Unpaid) //{ // var StartTime = DateTime.Now; // var Sub = StartTime.Subtract(item.CreateTime); // var FromNow = TimeSpan.FromMinutes(30); // if (Sub >= FromNow) // { // Reservation _DeleteReservation = await _context.Reservations.FindAsync(item.Id); // _context.Reservations.Remove(_DeleteReservation); // await _context.SaveChangesAsync(); // //Need Update the Availabiltiy tb too(after workin).. // Debug.WriteLine($"Deleted {item.Id} "); // } //} _context.Dispose(); } }