public IDataResult <RentalDetailDto> GetRentalDetail(int id) { using (CarRentalContext context = new CarRentalContext()) { var result = from r in context.Rentals join c in context.Cars on r.CarId equals c.Id join b in context.Brands on c.BrandId equals b.Id join cu in context.Customers on r.CustomerId equals cu.Id join u in context.Users on cu.UserId equals u.Id where r.Id == id select new RentalDetailDto { Id = c.Id, Customer = u.FirstName + " " + u.LastName, Car = b.BrandName, RentDate = r.RentDate, ReturnDate = r.ReturnDate }; RentalDetailDto rental = result.FirstOrDefault(); if (rental == null) { return(new ErrorDataResult <RentalDetailDto>("İstenilen kiralama ögesi bulunamadığı için kiralama detayları listelenemedi.")); } return(new SuccessDataResult <RentalDetailDto>(rental, "İstenilen kiralama ögesi bulunamadığı için kiralama detayları listelenemedi.")); } }
public IActionResult Update(RentalDetailDto rental) { var result = _rentalService.Update(rental); if (result.Success) { return(Ok(result)); } return(BadRequest(result)); }
public IResult Delete(RentalDetailDto rentalDto) { var result = _rentalDal.Get(a => a.Id == rentalDto.Id); if (result != null) { var rental = _mapper.Map <Rental>(rentalDto); _rentalDal.Delete(rental); return(new SuccessResult(Messages.Rental.Delete())); } return(new ErrorResult(Messages.NotFound())); }
public IResult Add(RentalDetailDto rentalDto) { var result = _rentalDal.Any(r => r.CarId == rentalDto.CarId && (r.ReturnDate == null || r.ReturnDate >= rentalDto.RentDate)); if (!result) { var rental = _mapper.Map <Rental>(rentalDto); _rentalDal.Add(rental); return(new SuccessResult(Messages.Rental.Add())); } return(new ErrorResult(Messages.Rental.Exists())); }
public IResult Update(Rental rental) { RentalDetailDto rentalDetailDto = _rentalDal.GetRentalDetailsByCarId(rental.CarId); rental.CarId = (int)rentalDetailDto.CarId; rental.CustomerId = (int)rentalDetailDto.CustomerId; rental.RentDate = rentalDetailDto.RentDate; rental.ReturnDate = DateTime.Now; rental.Id = rentalDetailDto.Id; _rentalDal.Update(rental); return(new SuccessResult(Messages.UpdatedSuccess)); }
public void Show(List <IUserInterface> userInterfaces = null) { int command; List <RentalDetailDto> rentalDetails = new List <RentalDetailDto> { null }; Rental rental = new Rental(); Console.Clear(); do { Console.WriteLine("1.Kira Kayıtlarını Listele"); Console.WriteLine("2.Araç Kirala"); Console.WriteLine("3.Araç Teslimi"); Console.WriteLine("0.Ana Menüye Dön"); command = Convert.ToInt32(RequestDecimal()); switch (command) { case 1: rentalDetails = ListRentals(); break; case 2: NewRental(rental); break; case 3: EndRental(ref rentalDetails); break; default: Console.WriteLine("Unsupported Request!"); break; } } while (command != 0); void NewRental(Rental rental) { Console.Clear(); Console.WriteLine("ARAÇ KİRALAMA MENÜSÜ"); Console.WriteLine("###################\n"); Console.WriteLine("Araç kiralayacak müşteri idsi:"); rental.CustomerId = Convert.ToInt32(RequestDecimal()); Console.WriteLine("Kiralanacak araç idsi:"); rental.CarId = Convert.ToInt32(RequestDecimal()); rental.RentDate = DateTime.Today; Console.WriteLine("Kiralama Başlangıç tarihi:{0}", rental.RentDate); if (rentalManager.Add(rental).Success) { Console.WriteLine("Araç kiralandı"); } else { Console.WriteLine("Araç şu anda başkası tarafından kiralanmış durumda"); } } List <RentalDetailDto> ListRentals() { List <RentalDetailDto> rentalDetails = rentalManager.GetRentalDetails().Data; Console.WriteLine("{0} Kayıt Listeleniyor", rentalDetails.Count); foreach (var rental in rentalDetails) { Console.WriteLine("kayıt id:{0}\tcustomerId:{1}\tname:{2}\tsurname:{3}\tdailyPrice:{4}\tRent Date:{5}\tReturn Date:{6}", rental.RentalId, rental.CustomerId, rental.CustomerName, rental.CustomerSurname, rental.DailyPrice, rental.RentDate, rental.ReturnDate); } return(rentalDetails); } void EndRental(ref List <RentalDetailDto> rentalDetails) { int id; Console.Clear(); Console.WriteLine("ARAÇ TESLİM ETME MENÜSÜ"); Console.WriteLine("#######################\n"); Console.WriteLine("Teslim edilecek araç idsi:"); id = Convert.ToInt32(RequestDecimal()); bool result = rentalManager.EndRental(id).Success; if (result) { rentalDetails = rentalManager.GetRentalDetails().Data; RentalDetailDto rentalDetail = new RentalDetailDto(); rentalDetail = rentalDetails.SingleOrDefault(r => r.RentalId == id); decimal borc = rentalDetail.DailyPrice * CountDays(rentalDetail.RentDate, (DateTime)rentalDetail.ReturnDate); Console.Clear(); Console.WriteLine("Borcunuz: ", borc); } else { Console.Clear(); Console.WriteLine("Araç teslimi YAPILAMADI. Yeni bir id ile tekrar deneyiniz"); } } }