public async Task <IActionResult> Create(RentalDTO rentalDTO) { try { rentalDTO.AppUser = await _applicationUserService.GetCurrentUserAsync(HttpContext); rentalDTO.Car = await _carService.GetAsync(rentalDTO.CarId); if (ModelState.IsValid) { await _rentalService.CreateAsync(rentalDTO); return(RedirectToAction(nameof(Index))); } var errors = ModelState .Where(x => x.Value.Errors.Count > 0) .Select(x => new { x.Key, x.Value.Errors }) .ToArray(); } catch (DbUpdateException /* ex */) { //Log the error (uncomment ex variable name and write a log. ModelState.AddModelError("", "Unable to save changes. " + "Try again, and if the problem persists " + "see your system administrator."); } // return View(rentalDTO); return(RedirectToAction("Rent")); }
public IHttpActionResult ReturnRental(RentalDTO rentals) { var customer = _context.Customers.Single( c => c.Id == rentals.CustomerId); if (customer == null) { return(BadRequest()); } var customerRentals = _context.Rentals .Include(r => r.Movie) .Where(r => r.DateReturned == null) .Where(r => rentals.ids.Contains(r.Id)); foreach (var rental in customerRentals) { if (rental.DateReturned != null) { return(BadRequest("Cannot return movie, already returned.")); } rental.Movie.NumberAvailable++; rental.DateReturned = DateTime.Now; } _context.SaveChanges(); return(Ok()); }
private void btnSave_Click(object sender, EventArgs e) { using (RentalService rentalService = new RentalService()) { DialogResult dr = MessageBox.Show("Güncellemek istediğinize emin misiniz?", "Onay", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (dr == DialogResult.Yes) { RentalDTO rental = new RentalDTO { RentalId = (int)lstBoxRental.SelectedValue, CustomerId = (int)cmbCustomer.SelectedValue, MovieId = (int)cmbMovieName.SelectedValue, BeginDate = dtpBegin.Value, EndDate = dtpBegin.Value, TotalPrice = Convert.ToDecimal(txtPrice.Text), CreatedBy = 2, RecordStatusId = Convert.ToByte(cbRecordStatus.SelectedValue) }; var result = rentalService.Update(rental); lstBoxRental.DataSource = rentalService.List(); if (result) { MessageBox.Show("Güncelleme başarılı", "Durum", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Güncelleme sırasında bir hata oluştu", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
public IHttpActionResult CreateRental(RentalDTO rentalDto) { var customer = _context.Customers .Single(c => c.Id == rentalDto.CustomerID); //Load Multiple Movies var movies = _context.Movies .Where(m => rentalDto.MovieIds.Contains(m.Id)).ToList(); //Check Availability foreach (var movie in movies) { if (movie.NumberAvailable == 0) { return(BadRequest("Movie is NOT available.")); } movie.NumberAvailable--; var rental = new Rental { Customer = customer, Movie = movie, DateRented = DateTime.Now }; _context.Rentals.Add(rental); } _context.SaveChanges(); return(Ok()); }
public IHttpActionResult CreateNewRentals(RentalDTO newRental) { var customer = _DBContext.Customers.Single(c => c.Id == newRental.CustomerID); var movies = _DBContext.Movies.Where(m => newRental.MovieIDs.Contains(m.Id)).ToList(); foreach (var movie in movies) { if (movie.NumberAvailable == 0) { return(BadRequest("Movie is not available")); } movie.NumberAvailable--; var rental = new Rental { Customer = customer, Movie = movie, DateRented = DateTime.Now }; _DBContext.Rentals.Add(rental); } _DBContext.SaveChanges(); return(Ok()); }
public void ShouldSendRentalViewModelMessageWithContinueRentalPropertyIfDriverHasActiveRental() { //assign var driverId = Guid.NewGuid(); var driverViewModel = new DriverViewModel() { Id = driverId }; var activeRentalDto = new RentalDTO(); _rentalServiceMock.GetActiveRentalForDriver(driverId).Returns(activeRentalDto); var activeRentalViewModel = new RentalViewModel(); _rentalViewModelMapperMock.Map(activeRentalDto).Returns(activeRentalViewModel); //act var sut = new RentCarViewModel(_carServiceMock, _rentalServiceMock, _carViewModelMapperMock, _rentalViewModelMapperMock, _messengerServiceMock); sut.AssignLoggedInDriver(driverViewModel); //assert _messengerServiceMock.Received().Send(Arg.Is <RentalViewModelMessage>(message => message.RentalViewModel == activeRentalViewModel && message.MessageType == RentalViewModelMessageType.ContinueRental)); _messengerServiceMock.Received().Send(Arg.Is <NotificationMessage>(message => message.Notification == "Start Car Rental")); }
private void btnSave_Click(object sender, EventArgs e) { using (RentalService rentalService = new RentalService()) { DialogResult dr = MessageBox.Show("Kaydetmek istediğinize emin misiniz?", "Onay", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (dr == DialogResult.Yes) { RentalDTO rental = new RentalDTO { CustomerId = (int)(cmbCustomer.SelectedValue), MovieId = (int)(cmbMovieName.SelectedValue), BeginDate = dtpBegin.Value, EndDate = dtpEnd.Value, TotalPrice = Convert.ToDecimal(txtPrice.Text), CreatedBy = 2, }; var result = rentalService.Add(rental); if (result != null) { MessageBox.Show("Kayıt başarılı", "Durum", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Kayıt sırasında bir hata oluştu", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
private void AssignAdditionalValues(RentalDTO rentalDto) { var driver = _unitOfWork.DriverRepository.Get(rentalDto.DriverId); var car = _unitOfWork.CarRepository.Get(rentalDto.CarId); rentalDto.DriverName = driver.FirstName + " " + driver.LastName; rentalDto.RegistrationNumber = car.RegistrationNumber; rentalDto.PricePerMinute = car.PricePerMinute.Amount; }
private static Rental CreateRentalFromDTO(RentalDTO rental) { return(Rental.Create( rental.CarId, rental.AppUserId, rental.StartCarRentalDate, rental.EndCarRentalDate, rental.PricePerDay)); }
public ActionResult <RentalDTO> RentABook([FromBody] RentalDTO bookToLend) { var rental = _rentalService.RentABook(_rentalMapper.FromRentalDTOToRental(bookToLend)); if (rental == null) { return(BadRequest("bad input")); } return(Ok(_rentalMapper.FromRentalToRentalDTO(rental))); }
public IHttpActionResult UpdateRental([FromBody] RentalDTO rd) { bool b = Bl.RentalBL.UpdateRental(rd); if (b) { return(Ok()); } return(BadRequest()); }
public Rental FromRentalDTOToRental(RentalDTO rentalDTO) { return(new Rental { Isbn = rentalDTO.Isbn, RentalId = rentalDTO.UniqueRentalId, UserId = rentalDTO.UserIdNumber, EndDate = rentalDTO.EndDate }); }
public IActionResult Search(RentalDTO rental) { var startDate = rental.StartCarRentalDate; var endDate = rental.EndCarRentalDate; return(RedirectToAction("Index", "Cars", new { StartDate = startDate, EndDate = endDate })); }
public ActionResult ReturnBook(RentalDTO model) { if (model == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var rental = DependencyResolver.Current.GetService <IRental>(); Mapper.Map(model, rental); _rentalServices.ReturnBook(rental); return(RedirectToAction("Index")); }
public RentalViewModel Map(RentalDTO rentalDto) { return(new RentalViewModel() { RentalId = rentalDto.Id, DriverName = rentalDto.DriverName, PricePerMinute = $"{rentalDto.PricePerMinute:0.00}", RegistrationNumber = rentalDto.RegistrationNumber, StartDateTime = rentalDto.StartDateTime, StopDateTime = rentalDto.StopDateTime, Total = rentalDto.Total }); }
public IHttpActionResult CreateRental(RentalDTO rentalDto) { if (!ModelState.IsValid) { return(BadRequest("Model is not valid")); } var customer = db.Customers.SingleOrDefault (c => c.Id == rentalDto.CustomerId); if (customer == null) { return(BadRequest("CustomerId is not valid")); } if (rentalDto.MovieIds == null || rentalDto.MovieIds.Count == 0) { return(BadRequest("No MoviesIds have been given.")); } // SELECT * FROM Movies WHERE Id IN (1,2,3): var movies = db.Movies.Where (m => rentalDto.MovieIds.Contains(m.Id)).ToList(); if (movies.Count != rentalDto.MovieIds.Count) { return(BadRequest("One or more MovieIds are invalid.")); } foreach (var movie in movies) { if (movie.NumberAvailable == 0) { return(BadRequest("'" + movie.Name + "' is not Available")); } movie.NumberAvailable--; var rental = new Rental { Customer = customer, Movie = movie, DateRented = DateTime.Now }; db.Rental.Add(rental); } db.SaveChanges(); return(Created("Rental(s) created successfully", "")); }
public async Task CreateAsync(RentalDTO rental) { var rentalToCheck = await _rentalRepository.GetAsync(rental.Id); if (rentalToCheck != null) { throw new Exception($"Rental with id: {rental.Id} already exists."); } var rentalToAdd = CreateRentalFromDTO(rental); await _rentalRepository.AddAsync(rentalToAdd); await _rentalRepository.SaveAsync(); }
public IHttpActionResult CreateRental(RentalDTO rental) { if (rental.movieids.Count == 0) { return(BadRequest("No movies selected")); } var customer = context.Customers.SingleOrDefault( c => c.Id == rental.customerid); if (customer == null) { return(BadRequest("Customer is not valid")); } var movies = context.Movies.Where( m => rental.movieids.Contains(m.Id)).ToList(); if (movies.Count != rental.movieids.Count) { return(BadRequest("One or more movies are invalid")); } foreach (var movie in movies) { if (movie.NumberAvailable == 0) { return(BadRequest($"Movie {movie.Name} is not available.")); } movie.NumberAvailable--; var newRental = new Rental { Customer = customer, Movie = movie, DateRented = DateTime.Now }; context.Rentals.Add(newRental); } context.SaveChanges(); return(Ok()); }
public void Update() { RentalDTO rental = new RentalDTO { RentalId = 1, CustomerId = 1, MovieId = 1, BeginDate = new DateTime(2019, 03, 15), EndDate = new DateTime(2019, 03, 30), TotalPrice = 15, CreatedDate = DateTime.Now, CreatedBy = 2, RecordStatusId = 2 }; var result = rentalService.Update(rental); Assert.IsNotNull(result); }
public IHttpActionResult RentMovie(RentalDTO rental) { var customer = _context.Customers.SingleOrDefault(c => c.ID == rental.CustomerID); var movies = _context.Movies.Where(m => rental.MovieID.Contains(m.ID)).ToList(); if (customer == null) { return(BadRequest("CustomerID is not valid.")); } if (movies.Count <= 0) { return(BadRequest("No Movies Found.")); } ; if (movies.Count != rental.MovieID.Count()) { return(BadRequest("One or More Movie has an invalid ID")); } foreach (var movie in movies) { if (movie.NoAvailable == 0) { return(BadRequest(movie.Name + " is not available")); } movie.NumberInStock--; var newRental = new Rental { Customer = customer, Movie = movie, DateRented = DateTime.Now }; _context.Rentals.Add(newRental); } _context.SaveChanges(); return(Ok()); }
public static bool UpdateRental(RentalDTO rd) { using (ArgamanExpressEntities db = new ArgamanExpressEntities()) { Rental r = db.Rentals.Find(rd.RentalID); r.PropertyID = rd.PropertyID; r.SubPropertyID = rd.SubPropertyID; r.UserID = rd.UserID; r.RentPayment = rd.RentPayment; r.PaymentTypeID = rd.PaymentTypeID; r.EnteryDate = rd.EnteryDate; r.EndDate = rd.EndDate; if (r.ContactRenew != rd.ContactRenew) { if (rd.ContactRenew == true && rd.EndDate.Value < DateTime.Today.AddMonths(3)) { Bl.TaskBL.AddRenewTask(rd.PropertyID, rd.SubPropertyID); } else { getAllTasks_Result task = db.getAllTasks().Where(t => t.PropertyID == rd.PropertyID && t.TaskTypeId == 2 && t.status == true && t.SubPropertyID == rd.SubPropertyID).FirstOrDefault(); if (task != null) { Bl.TaskBL.DeleteTask(task.TaskID); } } } r.ContactRenew = rd.ContactRenew; if (rd.Dock != null) { Document doc = new Document(); doc.DocCoding = rd.Dock; doc.DocUser = rd.RentalID; doc.type = 3; doc.DocName = rd.DocName; DocumentBL.AddUserDocuments(new DocumentDTO(doc)); } db.SaveChanges(); return(true); } return(false); }
public IHttpActionResult CreateRental(RentalDTO rentalDto) { if (rentalDto.MovieIds.Count == 0) { return(BadRequest("No movies were sent in the rental request")); } var customer = _context.Customers.SingleOrDefault(c => c.Id == rentalDto.CustomerId); if (customer == null) { return(BadRequest("Customer ID is invalid")); } var movies = _context.Movies.Where(m => rentalDto.MovieIds.Contains(m.Id)).ToList(); if (movies.Count != rentalDto.MovieIds.Count) { return(BadRequest("One or more movie ids are invalid")); } foreach (var movie in movies) { if (movie.NumberAvailable == 0) { return(BadRequest(movie.Name + " is unavailable")); } movie.NumberAvailable--; var rental = new Rental() { Customer = customer, DateRented = DateTime.Now, Movie = movie }; _context.Rentals.Add(rental); } _context.SaveChanges(); return(Ok()); }
public IHttpActionResult CreateNewRentals(RentalDTO rental) { if (rental.MovieIds.Count == 0) { return(BadRequest("No Movies are selected")); } var customer = _context.Customers.SingleOrDefault(c => c.Id == rental.CustomerId); if (customer == null) { return(BadRequest("Customer Id is invalid")); } var movies = _context.Movies.Where(M => rental.MovieIds.Contains(M.Id)).ToList(); if (movies.Count != rental.MovieIds.Count) { return(BadRequest("One Or More Movie Ids are invalid")); } foreach (var movie in movies) { if (movie.NumberAvailable == 0) { return(BadRequest("This Movie'" + movie.Name + "'Isn't available")); } movie.NumberAvailable--; var newRental = new Rental { Customer = customer, Movie = movie, DateRented = DateTime.Now }; _context.Rentals.Add(newRental); } _context.SaveChanges(); return(Ok()); }
public IHttpActionResult CreateNewRentals(RentalDTO newRental) { var customer = _context.Customers.Single( c => c.Id == newRental.CustomerId); var movie = _context.Movies.Single( m => m.Id == newRental.MovieIds); //var movies = _context.Movies.Where( // m => newRental.MoviesIds.Contains(m.Id)).ToList(); /*foreach (var movie in movies) * { * //if (movie.NumberAvailable == 0) * // return BadRequest("Movie is not available."); * * // movie.NumberAvailable--; * * var rental = new Rental * { * Customer = customer, * Movie = movie, * DateRented = DateTime.Now * }; * * _context.Rental.Add(rental); * }*/ var rental = new Rental { Customer = customer, Movie = movie, DateRented = DateTime.Now }; _context.Rental.Add(rental); _context.SaveChanges(); return(Ok()); }
public IHttpActionResult NewRental(RentalDTO rentalDto) { if (!ModelState.IsValid) { return(BadRequest()); } foreach (var rentDetail in rentalDto.RentalDetails) { if (UOW.MovieRepository.Find(m => m.ID == rentDetail.MovieID) .SingleOrDefault().NumberInStock < rentDetail.quantity) { return(BadRequest("Movie is not available")); } } UOW.RentalRepository.Add(ObjectMapper.Mapper.Map <RentalDTO, Rental>(rentalDto)); UOW.Complete(); UOW.Dispose(); return(Ok()); }
public IHttpActionResult CreateNewRentals(RentalDTO newRental) { if (newRental.MovieIds.Count == 0) { return(BadRequest("No Movie Ids have been given")); } var customer = _context.Customers.Single(c => c.id == newRental.CustomerId); var movies = _context.Movies.Where(m => newRental.MovieIds.Contains(m.Id)).ToList(); if (movies.Count != newRental.MovieIds.Count) { return(BadRequest("One or more MovieIds are invalid")); } foreach (var movie in movies) { if (movie.NumberAvailable == 0) { return(BadRequest("Movie is not available")); } movie.NumberAvailable--; var rental = new Rental { customer = customer, movie = movie, DateRented = DateTime.Now }; _context.Rentals.Add(rental); } _context.SaveChanges(); return(Ok()); }
public ObjectResponse <List <RentalDTO> > GetRentals(RentalFilters rentalFilters) { try { var response = _unitOfWork.RentalsRepository.GetAll().Include(x => x.copy).Include(x => x.copy.movy).Include(y => y.client); if (rentalFilters.ClientId.HasValue) { response = response.Where(x => x.client_id == rentalFilters.ClientId.Value); } if (rentalFilters.RentalDateFrom.HasValue) { var datefrom = rentalFilters.RentalDateFrom.Value.Date; response = response.Where(x => x.date_of_rental.Value.CompareTo(datefrom) >= 0); } if (rentalFilters.RentalDateTo.HasValue) { var dateTo = rentalFilters.RentalDateTo.Value.Date.AddDays(1); response = response.Where(x => x.date_of_rental.Value.CompareTo(dateTo) < 0); } if (rentalFilters.DaysOverDue > 0) { response = response.Where(x => DbFunctions.DiffDays(x.date_of_rental.Value, DateTime.Now) >= rentalFilters.DaysOverDue && !x.date_of_return.HasValue); } return(new ObjectResponse <List <RentalDTO> > { Success = true, Data = response.ToList()?.Select(x => RentalDTO.Create(x))?.ToList() }); } catch (Exception ex) { return(new ObjectResponse <List <RentalDTO> > { Success = false, Error = ex.GetBaseException().Message, Info = DB_GET_ERROR }); } }
public async Task <IActionResult> Rent(int carId, DateTime startDate, DateTime endDate) { int daysBetween = CountDaysBetween(startDate, endDate); var car = await _carService.GetAsync(carId); var price = daysBetween * car.Price; var appUserId = await _applicationUserService.GetCurrentUserIdAsync(HttpContext); var rentalDTO = new RentalDTO { CarId = carId, Car = car, AppUserId = appUserId, StartCarRentalDate = startDate, EndCarRentalDate = endDate, PricePerDay = car.Price, FullPrice = price, RentalInDays = daysBetween, }; return(View(rentalDTO)); }
public RentalDTO toDTO() { RentalDTO dto = new RentalDTO() { RentalID = this.RentalID, LentOn = this.LentOn, DueDate = this.DueDate, Price = this.Price, ReturnedOn = this.ReturnedOn, ClientID = this.ClientID, ClientName = this.Client.FirstMidName + " " + this.Client.LastName, CopyID = this.CopyID, GameTitle = (this.Copy.Game.Title + " (" + this.Copy.Game.Year.Year + ", " + this.Copy.Game.Publisher.Name + ")"), GameID = this.Copy.GameID, GameValue = this.Copy.Game.Value }; return(dto); }
public static bool AddRental(RentalDTO rd) { Rental r = RentalDTO.ToDal(rd); int id = RentalDAL.AddRental(r); if (id != 0) { if (rd.Dock != null) { Document doc = new Document(); doc.DocCoding = rd.Dock; doc.DocUser = id; doc.type = 3; doc.DocName = rd.DocName; DocumentBL.AddUserDocuments(new DocumentDTO(doc)); } if (rd.ContactRenew == true && (rd.EndDate).Value < DateTime.Today.AddMonths(3)) { Bl.TaskBL.AddRenewTask(rd.PropertyID, rd.SubPropertyID); } return(true); } return(false); }