예제 #1
0
        public List <DiskInformation> GetInformationDisk(string title)
        {
            List <DiskInformation> lstDiskInformation = new List <DiskInformation>();

            TitleDisk titleDisk = _context.TitleDisks.Find(title);

            if (titleDisk != null)
            {
                List <DiskInformation> lstDiskRented = (from disk in titleDisk.Disks
                                                        join detail in _context.RentalRecordDetails
                                                        on disk.DiskID equals detail.DiskID
                                                        join record in _context.RentalRecords
                                                        on detail.RentalRecordID equals record.RentalRecordID
                                                        orderby detail.DateReturn
                                                        where disk.Status.Equals(StatusOfDisk.RENTED) &&
                                                        detail.LateCharge is null &&
                                                        detail.DateReturnActual is null
                                                        select(
                                                            new DiskInformation
                {
                    DiskID = disk.DiskID,
                    Status = disk.Status,
                    CustomerName = record.Customer.Name,
                    DateReturn = detail.DateReturn,
                    DateResevartion = null
                })).ToList();

                List <DiskInformation> lstDiskOn_Hold = (from disk in titleDisk.Disks
                                                         join res in _context.Reservations
                                                         on disk.DiskID equals res.DiskID
                                                         orderby res.DateReservation
                                                         where disk.Status.Equals(StatusOfDisk.ON_HOLD)
                                                         select(
                                                             new DiskInformation
                {
                    DiskID = disk.DiskID,
                    Status = disk.Status,
                    CustomerName = res.Customer.Name,
                    DateReturn = null,
                    DateResevartion = res.DateReservation
                })).ToList();
                List <DiskInformation> lstDiskOn_Shelf = (from disk in titleDisk.Disks
                                                          where disk.Status.Equals(StatusOfDisk.ON_SHELF)
                                                          select(
                                                              new DiskInformation
                {
                    DiskID = disk.DiskID,
                    Status = disk.Status,
                    CustomerName = null,
                    DateReturn = null,
                    DateResevartion = null
                })).ToList();

                lstDiskInformation = lstDiskRented;
                lstDiskInformation.AddRange(lstDiskOn_Shelf);
                lstDiskInformation.AddRange(lstDiskOn_Hold);
            }
            return(lstDiskInformation.OrderBy(x => x.DiskID).Where(w => w.Status != StatusOfDisk.DELETE).ToList());
        }
예제 #2
0
 /// <summary>
 /// Kiểm tra xóa tựa đề
 /// </summary>
 /// <param name="title"></param>
 /// <returns>true : tựa đề không có đĩa quá hạn hoặc đang cho thuê</returns>
 /// <returns>false : tựa đề có đĩa quá hạn hoặc đang cho thuê</returns>
 ///
 public bool IsDelete(TitleDisk title)
 {
     if (titleResponsitory.IsDelete(title.Title))
     {
         return(true);
     }
     return(false);
 }
예제 #3
0
        public void AddReservation(Customer customer, TitleDisk titleDisk)
        {
            Reservation reservation = new Reservation();

            reservation.CustomerID      = customer.CustomerID;
            reservation.DateReservation = DateTime.Now;
            reservation.Title           = titleDisk.Title;
            reservationRepository.AddReservation(reservation);
        }
예제 #4
0
 /// <summary>
 /// Thêm tựa đề
 /// </summary>
 /// <param name="title">tựa đề</param>
 public void AddTitle(TitleDisk title)
 {
     titleResponsitory.Insert(title);
 }