Esempio n. 1
0
 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()));
        }
Esempio n. 5
0
        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");
                }
            }
        }