コード例 #1
0
        public async Task <IEnumerable <CarsDisplayViewModel> > Get([FromQuery] KernelCars.Models.Shared.PaginationDTO pagination, string searchString = null)
        {
            string _searchString = "";

            if (searchString != null)
            {
                _searchString = searchString;
            }

            var quaryable = _context.Cars
                            .Include(c => c.CarModel).ThenInclude(c => c.Manufacturer)
                            .Include(c => c.CarUsers).ThenInclude(c => c.Employee)
                            .Include(c => c.CarStatuses).ThenInclude(c => c.Unit).ThenInclude(c => c.Firm).ThenInclude(c => c.Employee);
            //.Where(c => c.RegistrationNumber.IndexOf(_searchString) > -1  );
            //_context.Cars.AsQueryable();


            //await HttpContext.InsertPaginationParameterInResponse(quaryable. double count = await queyable.CountAsync();, pagination.QuantityPerPage);

            //var carsQuery = quaryable.Paginate(pagination);


            ///_context.Cars
            //    .Include(c => c.CarModel).ThenInclude(c => c.Manufacturer)
            //    .Include(c=>c.CarUsers).ThenInclude(c=>c.Employee)
            //    .Include(c=>c.CarStatuses).ThenInclude(c=>c.Unit).ThenInclude(c=>c.Firm).ThenInclude(c=>c.Employee).Where(c=>c.RegistrationNumber.IndexOf(searchString)>-1)
            //    .Paginate(pagination);

            List <CarsDisplayViewModel> carsList = new List <CarsDisplayViewModel>();
            int count = 0;

            //try
            //{
            foreach (var item in quaryable)
            {
                count++;
                var carUser = (from u in item.CarUsers
                               select u).LastOrDefault();
                var status = (from s in item.CarStatuses
                              select s).LastOrDefault();

                string carUserName      = carUser != null ? carUser.Employee.FullName : "Не закреплён";
                string carFirmToDisplay = status != null ? status.Unit.Firm.Employee.FullName : "Не указана";
                bool   isEnableService  = status != null ? status.IsEnableService : false;
                if (carUserName.ToUpper().IndexOf(_searchString.ToUpper()) >= 0 || item.RegistrationNumber.ToUpper().IndexOf(_searchString.ToUpper()) >= 0)
                {
                    carsList.Add(
                        new CarsDisplayViewModel
                    {
                        Id = item.Id,
                        RegistrationNumber = item.RegistrationNumber,
                        CarModel           = item.CarModel.Manufacturer.Name + " " + item.CarModel.Model,
                        CarUser            = carUserName,
                        Firm          = carFirmToDisplay,
                        EnableService = isEnableService
                    });
                }
            }


            //}
            //catch (Exception)
            //{

            //    throw;
            //}


            await HttpContext.InsertPaginationParameterInResponse(carsList.AsQueryable(), pagination.QuantityPerPage);

            //var carsList = carsList.AsQueryable().Paginate(pagination);



            return(carsList.AsQueryable().Paginate(pagination));
        }
コード例 #2
0
        public async Task <IEnumerable <LeaseListViewModel> > Get([FromQuery] KernelCars.Models.Shared.PaginationDTO pagination, string searchString = null, string contrstatus = null)
        {
            string _searchString = "";
            string _contrstatus; //= "Отсутствующие";
            int    leaseContractId = 0;;

            if (searchString != null)
            {
                _searchString = searchString;
            }
            if (contrstatus != null)
            {
                _contrstatus = contrstatus;
            }
            else
            {
                _contrstatus = "Отсутствующие";
            }


            var carNeedLeaseContract = _context.Cars
                                       .Include(c => c.CarOwner)
                                       .Include(c => c.CarModel).ThenInclude(cm => cm.Manufacturer)
                                       .Include(c => c.CarStatuses).ThenInclude(c => c.Unit).ThenInclude(c => c.Firm).ThenInclude(c => c.Employee);



            List <Car> carNeedLeaseContractList = new List <Car>();
            List <LeaseListViewModel> carsList  = new List <LeaseListViewModel>();


            foreach (var item in carNeedLeaseContract)
            {
                if (item.IsRentCar)
                {
                    string contractState = "Не заключён";

                    var leaseQuery = _context.LeaseContracts
                                     .Include(c => c.Car).Where(lc => lc.CarId == item.Id).ToArray();

                    if (leaseQuery != null && leaseQuery.Count() > 0)
                    {
                        if (leaseQuery.Last().EndDate != null)
                        {
                            if (((DateTime)leaseQuery.Last().EndDate).CompareTo(DateTime.Now) <= 0)
                            {
                                contractState   = $"Не действует с {((DateTime)leaseQuery.Last().EndDate).ToShortDateString()}";
                                leaseContractId = leaseQuery.Last().ID;
                            }
                            else
                            {
                                contractState   = $"Действует до {((DateTime)leaseQuery.Last().EndDate).ToShortDateString()}";
                                leaseContractId = leaseQuery.Last().ID;
                            }
                        }
                        else
                        {
                            if (((DateTime)leaseQuery.Last().ToDate).CompareTo(DateTime.Now) <= 0)
                            {
                                contractState   = $"Не действует с {((DateTime)leaseQuery.Last().ToDate).ToShortDateString()}";
                                leaseContractId = leaseQuery.Last().ID;
                            }
                            else
                            {
                                contractState   = $"Действует до {((DateTime)leaseQuery.Last().ToDate).ToShortDateString()}";
                                leaseContractId = leaseQuery.Last().ID;
                            }
                        }
                    }

                    var status = (from s in item.CarStatuses
                                  select s).LastOrDefault();
                    string carFirmToDisplay = status != null ? status.Unit.Firm.Employee.FullName : "Не указана";

                    switch (_contrstatus)
                    {
                    case "Отсутствующие":
                        if (contractState == "Не заключён")
                        {
                            carsList.Add(new LeaseListViewModel
                            {
                                CarID = item.Id,
                                RegistrationNumber = item.RegistrationNumber,
                                CarModel           = $"{item.CarModel.Manufacturer.Name} {item.CarModel.Model}",
                                LandLord           = item.CarOwner.FullName,
                                Renter             = carFirmToDisplay,
                                ContrState         = contractState
                            });
                        }
                        break;

                    case "Действующие":
                        if (contractState.IndexOf("Действует до") == 0)
                        {
                            carsList.Add(new LeaseListViewModel
                            {
                                Id    = leaseContractId,
                                CarID = item.Id,
                                RegistrationNumber = item.RegistrationNumber,
                                CarModel           = $"{item.CarModel.Manufacturer.Name} {item.CarModel.Model}",
                                LandLord           = item.CarOwner.FullName,
                                Renter             = carFirmToDisplay,
                                ContrState         = contractState
                            });
                        }
                        break;

                    case "Закрытые":
                        if (contractState.IndexOf("Не действует с") == 0)
                        {
                            carsList.Add(new LeaseListViewModel
                            {
                                Id    = leaseContractId,
                                CarID = item.Id,
                                RegistrationNumber = item.RegistrationNumber,
                                CarModel           = $"{item.CarModel.Manufacturer.Name} {item.CarModel.Model}",
                                LandLord           = item.CarOwner.FullName,
                                Renter             = carFirmToDisplay,
                                ContrState         = contractState
                            });
                        }
                        break;

                    default:
                        carsList.Add(new LeaseListViewModel
                        {
                            Id    = leaseContractId,
                            CarID = item.Id,
                            RegistrationNumber = item.RegistrationNumber,
                            CarModel           = $"{item.CarModel.Manufacturer.Name} {item.CarModel.Model}",
                            LandLord           = item.CarOwner.FullName,
                            Renter             = carFirmToDisplay,
                            ContrState         = contractState
                        });
                        break;
                    }
                }
            }

            //var quaryable = _context.LeaseContracts
            //    .Include(lc=>lc.Car)
            //    .ThenInclude(lc=>lc.CarOwner)
            //    .Include(lc=>lc.Car).ThenInclude(c=>c.CarModel).ThenInclude(cm=>cm.Manufacturer)
            //    //.Include(lc=>lc.Car).ThenInclude(c=>c.CarUsers).ThenInclude(cu=>cu.Employee)
            //    .Include(lc => lc.Car).ThenInclude(c => c.CarStatuses).ThenInclude(c => c.Unit).ThenInclude(c => c.Firm).ThenInclude(c => c.Employee); ;

            //.Cars
            //    .Include(c => c.CarModel).ThenInclude(c => c.Manufacturer)
            //    .Include(c => c.CarUsers).ThenInclude(c => c.Employee)
            //    .Include(c => c.CarStatuses).ThenInclude(c => c.Unit).ThenInclude(c => c.Firm).ThenInclude(c => c.Employee);
            ////.Where(c => c.RegistrationNumber.IndexOf(_searchString) > -1  );
            //_context.Cars.AsQueryable();


            //await HttpContext.InsertPaginationParameterInResponse(quaryable. double count = await queyable.CountAsync();, pagination.QuantityPerPage);

            //var carsQuery = quaryable.Paginate(pagination);


            ///_context.Cars
            //    .Include(c => c.CarModel).ThenInclude(c => c.Manufacturer)
            //    .Include(c=>c.CarUsers).ThenInclude(c=>c.Employee)
            //    .Include(c=>c.CarStatuses).ThenInclude(c=>c.Unit).ThenInclude(c=>c.Firm).ThenInclude(c=>c.Employee).Where(c=>c.RegistrationNumber.IndexOf(searchString)>-1)
            //    .Paginate(pagination);

            //List<LeaseListViewModel> carsList = new List<LeaseListViewModel>();
            ////int count = 0;
            //foreach (var item in quaryable)
            //{
            //    //count++;

            //    var status = (from s in item.Car.CarStatuses
            //                  select s).LastOrDefault();

            //    string carFirmToDisplay = status != null ? status.Unit.Firm.Employee.FullName : "Не указана";
            //    string carModel = $"{item.Car.CarModel.Manufacturer.Name} {item.Car.CarModel.Model}";

            //    //if (carUserName.ToUpper().IndexOf(_searchString.ToUpper()) >= 0 || item.Car.RegistrationNumber.ToUpper().IndexOf(_searchString.ToUpper()) >= 0)
            //    if (item.Car.RegistrationNumber.ToUpper().IndexOf(_searchString.ToUpper()) >= 0)
            //    {


            //        carsList.Add(new LeaseListViewModel
            //        {
            //            Id = item.ID,
            //            RegistrationNumber = item.Car.RegistrationNumber,
            //            CarModel=carModel,
            //            LandLord=item.Car.CarOwner.FullName,
            //            Renter=carFirmToDisplay
            //        });
            //    }
            //}
            //try
            //{
            //////////////foreach (var item in quaryable)
            //////////////{
            //////////////    count++;
            //////////////    var carUser = (from u in item.CarUsers
            //////////////                   select u).LastOrDefault();
            //////////////    var status = (from s in item.CarStatuses
            //////////////                  select s).LastOrDefault();

            //////////////    string carUserName = carUser != null ? carUser.Employee.FullName : "Не закреплён";
            //////////////    string carFirmToDisplay = status != null ? status.Unit.Firm.Employee.FullName : "Не указана";
            //////////////    bool isEnableService = status != null ? status.IsEnableService : false;
            //////////////    if (carUserName.ToUpper().IndexOf(_searchString.ToUpper()) >= 0 || item.RegistrationNumber.ToUpper().IndexOf(_searchString.ToUpper()) >= 0)
            //////////////    {
            //////////////        carsList.Add(
            //////////////        new CarsDisplayViewModel
            //////////////        {
            //////////////            Id = item.Id,
            //////////////            RegistrationNumber = item.RegistrationNumber,
            //////////////            CarModel = item.CarModel.Manufacturer.Name + " " + item.CarModel.Model,
            //////////////            CarUser = carUserName,
            //////////////            Firm = carFirmToDisplay,
            //////////////            EnableService = isEnableService
            //////////////        });
            //////////////    }
            //////////////}


            //}
            //catch (Exception)
            //{

            //    throw;
            //}


            await HttpContext.InsertPaginationParameterInResponse(carsList.AsQueryable(), pagination.QuantityPerPage);

            //var carsList = carsList.AsQueryable().Paginate(pagination);



            return(carsList.AsQueryable().Paginate(pagination));
        }
コード例 #3
0
        public async Task <IEnumerable <ServiceListViewModel> > Get([FromQuery] KernelCars.Models.Shared.PaginationDTO pagination, string searchString = null, string status = null)
        {
            string _searchString = "";

            if (searchString != null)
            {
                _searchString = searchString;
            }

            var quaryable = _context.CarServices
                            .Include(c => c.Car).ThenInclude(c => c.CarModel).ThenInclude(c => c.Manufacturer)
                            .Include(c => c.Car).ThenInclude(c => c.CarUsers).ThenInclude(c => c.Employee)
                            .Include(c => c.ServiceStation);
            //.Include(c => c.Car).ThenInclude(c => c.CarStatuses);

            List <CarService> quaryableList = new List <CarService>();

            //Завершенные
            switch (status)
            {
            case "Открытые":
                quaryableList = quaryable.Where(c => c.CompleteDate == null).ToList();
                break;

            case "Завершенные":
                quaryableList = quaryable.Where(c => c.CompleteDate != null).ToList();
                break;

            default:
                quaryableList = quaryable.ToList();
                break;
            }


            List <ServiceListViewModel> servicesList = new List <ServiceListViewModel>();
            int count = 0;

            //try
            //{
            foreach (var item in quaryableList)
            {
                count++;
                var carUser = (from u in item.Car.CarUsers
                               select u).LastOrDefault();

                //var status = (from s in item.CarStatuses
                //              select s).LastOrDefault();

                string carUserName          = carUser != null ? carUser.Employee.LastName + " " + carUser.Employee.FullName : "Не закреплён";
                string carUserNameToDisplay = "";

                if (carUser == null)
                {
                    carUserName = "******";
                }
                else
                {
                    string name = "";
                    if (carUser.Employee.FirstName.Length > 1)
                    {
                        name = carUser.Employee.FirstName.Substring(0, 1) + ".";
                    }
                    string surname = "";
                    if (carUser.Employee.MiddleName.Length > 1)
                    {
                        surname = carUser.Employee.MiddleName.Substring(0, 1) + ".";
                    }
                    carUserNameToDisplay = $"{carUser.Employee.LastName} {name} {surname}";
                }


                //string carFirmToDisplay = status != null ? status.Unit.Firm.Employee.FullName : "Не указана";
                //bool isEnableService = status != null ? status.IsEnableService : false;
                if (carUserName.ToUpper().IndexOf(_searchString.ToUpper()) >= 0 || item.Car.RegistrationNumber.ToUpper().IndexOf(_searchString.ToUpper()) >= 0)
                {
                    servicesList.Add(
                        new ServiceListViewModel
                    {
                        Id = item.ID,
                        RegistrationNumber = item.Car.RegistrationNumber,
                        CarModel           = item.Car.CarModel.Manufacturer.Name + " " + item.Car.CarModel.Model,
                        CarUser            = carUserNameToDisplay,
                        ServiceStation     = item.ServiceStation.Name,
                        StartDate          = item.OpenDate,
                        DateOfCompletion   = item.CompleteDate,
                        Comments           = item.ServiceDescription
                    });
                }
            }


            await HttpContext.InsertPaginationParameterInResponse(servicesList.AsQueryable(), pagination.QuantityPerPage);


            return(servicesList.AsQueryable().Paginate(pagination));
        }