コード例 #1
0
ファイル: FlightTrackCore.cs プロジェクト: jecus/Cas
        public List <FlightTrackRecord> GetAllFlightUnScheduleRecordsForPeriod(DateTime from, DateTime to, bool loadChild = false)
        {
            var flNumberIds           = _newLoader.GetSelectColumnOnly <FlightNumberDTO>(new [] { new Filter("FlightType", FlightType.Schedule.ItemId) }, "ItemId");
            var flightNumberPeriodIds = _newLoader.GetSelectColumnOnly <FlightNumberPeriodDTO>(new List <Filter>()
            {
                new Filter("FlightNumberId", flNumberIds),
                new Filter("DepartureDate", FilterType.GratherOrEqual, from),
                new Filter("DepartureDate", FilterType.LessOrEqual, to)
            }, "ItemId");

            var tripRecords = _newLoader.GetObjectListAll <FlightTrackRecordDTO, FlightTrackRecord>(new Filter("FlightPeriodId", flightNumberPeriodIds), loadChild).ToList();

            if (loadChild)
            {
                loadChildTrackRecords(tripRecords);
            }

            return(tripRecords);
        }
コード例 #2
0
        /// <summary>
        /// Возвращает все NonRoutineJobs воздушного судна
        /// </summary>
        /// <returns></returns>
        public NonRoutineJob[] GetNonRoutineJobsStatus(Aircraft aircraft)
        {
            var preJobs = _nonRoutineJobDataAccess.GetNonRoutineJobDTOsFromAircraftWorkPackages(aircraft.ItemId);

            //поиск всех записей о использовании нерутинных работ в рабочих пакетах данного самолета
            var wpIds   = _newLoader.GetSelectColumnOnly <WorkPackageDTO>(new [] { new Filter("ParentId", aircraft.ItemId) }, "ItemId");
            var wprList = _newLoader.GetObjectListAll <WorkPackageRecordDTO, WorkPackageRecord>(new List <Filter>()
            {
                new Filter("WorkPackageItemType", SmartCoreType.NonRoutineJob.ItemId),
                new Filter("WorkPakageId", wpIds)
            });

            //загрузка всех рабочих пакетов заданного самолета
            var wpList = _workPackageCore.GetWorkPackages(aircraft);

            var preJobsDict = preJobs.Select(j => NonRoutineJobHelper.Convert(j, _casEnvironment)).ToDictionary(p => p.ItemId);

            //связывание нерутинных работ с рабочими пакетами
            var resultJobs = new List <NonRoutineJob>();

            foreach (var wpr in wprList)
            {
                var nonRoutineJob = preJobsDict[wpr.DirectiveId];

                resultJobs.Add(nonRoutineJob);
                nonRoutineJob.WorkPackageRecord = wpr;

                //поиск рабочего пакета
                var wp = wpList.FirstOrDefault(w => w.ItemId == wpr.WorkPakageId);
                if (wp != null)
                {
                    wpr.WorkPackage = wp;
                    nonRoutineJob.ParentWorkPackage = wp;
                }
            }
            return(resultJobs.ToArray());
        }
コード例 #3
0
ファイル: TransferRecordCore.cs プロジェクト: jecus/Cas
        /// <summary>
        /// Возвращает все записи о перемешении агрегатов на переданное ВС
        /// </summary>
        /// <returns></returns>
        public IEnumerable <TransferRecord> GetTransferRecordsFromAndTo(Aircraft aircraft, Store s)
        {
            if (aircraft == null && s == null)
            {
                return(null);
            }
            string baseStatement = "";

            var collection = new List <TransferRecord>();

            if (aircraft != null)
            {
                var parentIds = _newLoader.GetSelectColumnOnly <TransferRecordDTO>(new List <Filter>()
                {
                    new Filter("DestinationObjectID", aircraft.ItemId),
                    new Filter("DestinationObjectType", aircraft.SmartCoreObjectType.ItemId),
                }, "ParentID");

                collection.AddRange(_newLoader.GetObjectListAll <TransferRecordDTO, TransferRecord>(new List <Filter>()
                {
                    new Filter("FromAircraftID", aircraft.ItemId),
                    new Filter("FromStoreID", 0),
                }, true).OrderByDescending(t => t.TransferDate));

                collection.AddRange(_newLoader.GetObjectListAll <TransferRecordDTO, TransferRecord>(new List <Filter>()
                {
                    new Filter("DestinationObjectID", aircraft.ItemId),
                    new Filter("DestinationObjectType", aircraft.SmartCoreObjectType.ItemId),
                }, true).OrderByDescending(t => t.TransferDate));

                if (parentIds != null)
                {
                    collection.AddRange(_newLoader.GetObjectListAll <TransferRecordDTO, TransferRecord>(new Filter("DestinationObjectID", parentIds), true).OrderByDescending(t => t.TransferDate));
                }
            }
            else
            {
                var parentIds = _newLoader.GetSelectColumnOnly <TransferRecordDTO>(new List <Filter>()
                {
                    new Filter("DestinationObjectID", s.ItemId),
                    new Filter("DestinationObjectType", s.SmartCoreObjectType.ItemId),
                }, "ParentID");

                collection.AddRange(_newLoader.GetObjectListAll <TransferRecordDTO, TransferRecord>(new Filter("FromStoreID", s.ItemId), true).OrderByDescending(t => t.TransferDate));

                collection.AddRange(_newLoader.GetObjectListAll <TransferRecordDTO, TransferRecord>(new List <Filter>()
                {
                    new Filter("DestinationObjectID", s.ItemId),
                    new Filter("DestinationObjectType", s.SmartCoreObjectType.ItemId),
                }, true).OrderByDescending(t => t.TransferDate));


                if (parentIds != null)
                {
                    collection.AddRange(_newLoader.GetObjectListAll <TransferRecordDTO, TransferRecord>(new Filter("DestinationObjectID", parentIds), true).OrderByDescending(t => t.TransferDate));
                }
            }


            var ids        = collection.Select(a => a.ParentId);
            var components = _newLoader.GetObjectListAll <ComponentDTO, Entities.General.Accessory.Component>(new List <Filter>()
            {
                new Filter("IsBaseComponent", false),
                new Filter("ItemId", ids)
            }, true, true);

            var transferRecordIds = collection.Select(t => t.ItemId).ToList();
            var filesDict         = _filesDataAccess.GetItemFileLinks(transferRecordIds, SmartCoreType.TransferRecord.ItemId).ToDictionary(d => d.ParentId);

            var suppliersIds = collection.Select(t => t.FromSupplierId).ToList();

            suppliersIds.AddRange(collection.Where(t => t.DestinationObjectType == SmartCoreType.Supplier).Select(t => t.DestinationObjectId).ToArray());
            var suppliers = _newLoader.GetObjectListAll <SupplierDTO, Supplier>(new Filter("ItemId", suppliersIds));

            var specialistIds = new List <int>();

            specialistIds.AddRange(collection.Where(t => t.DestinationObjectType == SmartCoreType.Employee).Select(t => t.DestinationObjectId));
            specialistIds.AddRange(collection.Select(t => t.FromSpecialistId));
            var specialists = _newLoader.GetObjectListAll <SpecialistDTO, Specialist>(new Filter("ItemId", specialistIds));

            foreach (var transferRecord in collection)
            {
                if (filesDict.ContainsKey(transferRecord.ItemId))
                {
                    transferRecord.Files.Add(filesDict[transferRecord.ItemId]);
                }


                #region  одительский объект

                if (transferRecord.ParentType == SmartCoreType.BaseComponent)
                {
                    var bd = _componentCore.GetBaseComponentById(transferRecord.ParentId) ??
                             new BaseComponent
                    {
                        ItemId       = transferRecord.ParentId,
                        IsDeleted    = true,
                        Description  = "Can't Find Base Component with id = " + transferRecord.ParentId,
                        PartNumber   = "Unknown",
                        SerialNumber = "Unknown"
                    };

                    transferRecord.ParentComponent = bd;
                }
                else if (transferRecord.ParentType == SmartCoreType.Component)
                {
                    var d = components.GetItemById(transferRecord.ParentId) ??
                            new Entities.General.Accessory.Component
                    {
                        ItemId       = transferRecord.ParentId,
                        IsDeleted    = true,
                        Description  = "Can't Find Component with id = " + transferRecord.ParentId,
                        PartNumber   = "Unknown",
                        SerialNumber = "Unknown"
                    };
                    transferRecord.ParentComponent = d;
                }
                else
                {
                    var d = new Entities.General.Accessory.Component
                    {
                        ItemId       = transferRecord.ParentId,
                        IsDeleted    = true,
                        Description  = "Can't Find object with type = " + transferRecord.ParentType,
                        PartNumber   = "Unknown",
                        SerialNumber = "Unknown"
                    };
                    transferRecord.ParentComponent = d;
                }

                #endregion

                #region Откуда перемещен

                if (transferRecord.FromAircraftId > 0)
                {
                    var a = _aircraftsCore.GetAircraftById(transferRecord.FromAircraftId) ??
                            new Aircraft
                    {
                        ItemId             = transferRecord.FromAircraftId,
                        IsDeleted          = true,
                        RegistrationNumber = "Can't Find Aircraft with id = " + transferRecord.FromAircraftId
                    };
                    transferRecord.FromAircraft = a;
                }

                if (transferRecord.FromBaseComponentId > 0)
                {
                    var bd = _componentCore.GetBaseComponentById(transferRecord.FromBaseComponentId) ??
                             new BaseComponent
                    {
                        ItemId       = transferRecord.FromBaseComponentId,
                        IsDeleted    = true,
                        Description  = "Can't Find Base Component with id = " + transferRecord.FromBaseComponentId,
                        PartNumber   = "Unknown",
                        SerialNumber = "Unknown"
                    };

                    var a = _aircraftsCore.GetAircraftById(bd.ParentAircraftId);
                    if (a != null)
                    {
                        bd.Aircraft = a.ToString();
                    }

                    transferRecord.FromBaseComponent = bd;
                }

                if (transferRecord.FromStoreId > 0)
                {
                    var store = _storeCore.GetStoreById(transferRecord.FromStoreId) ??
                                new Store
                    {
                        ItemId    = transferRecord.FromStoreId,
                        IsDeleted = true,
                        Name      = "Can't Find Store with id = " + transferRecord.FromStoreId,
                    };

                    transferRecord.FromStore = store;
                }

                if (transferRecord.FromSupplierId > 0)
                {
                    var supplier = suppliers.FirstOrDefault(x => x.ItemId == transferRecord.FromSupplierId) ??
                                   new Supplier
                    {
                        ItemId    = transferRecord.FromSupplierId,
                        IsDeleted = true,
                        Name      = "Can't Find Supplier with id = " + transferRecord.FromSupplierId
                    };

                    transferRecord.FromSupplier = supplier;
                }

                if (transferRecord.FromSpecialistId > 0)
                {
                    var specialist = specialists.FirstOrDefault(x => x.ItemId == transferRecord.FromSpecialistId) ??
                                     new Specialist
                    {
                        ItemId    = transferRecord.FromSpecialistId,
                        IsDeleted = true,
                        FirstName = "Can't Find Specialist with id = " + transferRecord.FromSpecialistId
                    };

                    transferRecord.FromSpecialist = specialist;
                }

                #endregion

                #region Куда перемещен
                if (transferRecord.DestinationObjectType == SmartCoreType.Store)
                {
                    var store = _storeCore.GetStoreById(transferRecord.DestinationObjectId) ??
                                new Store
                    {
                        ItemId    = transferRecord.DestinationObjectId,
                        IsDeleted = true,
                        Name      = "Can't Find Store with id = " + transferRecord.DestinationObjectId,
                    };

                    transferRecord.DestinationObject = store;
                }

                if (transferRecord.DestinationObjectType == SmartCoreType.BaseComponent)
                {
                    var bd = _componentCore.GetBaseComponentById(transferRecord.DestinationObjectId) ??
                             new BaseComponent
                    {
                        ItemId       = transferRecord.DestinationObjectId,
                        IsDeleted    = true,
                        Description  = "Can't Find Base Component with id = " + transferRecord.DestinationObjectId,
                        PartNumber   = "Unknown",
                        SerialNumber = "Unknown"
                    };

                    var a = _aircraftsCore.GetAircraftById(bd.ParentAircraftId);
                    if (a != null)
                    {
                        bd.Aircraft = a.ToString();
                    }

                    transferRecord.DestinationObject = bd;
                }
                if (transferRecord.DestinationObjectType == SmartCoreType.Aircraft)
                {
                    var a = _aircraftsCore.GetAircraftById(transferRecord.DestinationObjectId) ??
                            new Aircraft
                    {
                        ItemId             = transferRecord.DestinationObjectId,
                        IsDeleted          = true,
                        RegistrationNumber = "Can't Find Aircraft with id = " + transferRecord.DestinationObjectId
                    };
                    transferRecord.DestinationObject = a;
                }

                if (transferRecord.DestinationObjectType == SmartCoreType.Supplier)
                {
                    var supplier = suppliers.FirstOrDefault(x => x.ItemId == transferRecord.DestinationObjectId) ??
                                   new Supplier
                    {
                        ItemId    = transferRecord.FromSupplierId,
                        IsDeleted = true,
                        Name      = "Can't Find Supplier with id = " + transferRecord.DestinationObjectId
                    };

                    transferRecord.DestinationObject = supplier;
                }

                if (transferRecord.DestinationObjectType == SmartCoreType.Employee)
                {
                    var specialist = specialists.FirstOrDefault(x => x.ItemId == transferRecord.DestinationObjectId) ??
                                     new Specialist
                    {
                        ItemId    = transferRecord.FromSpecialistId,
                        IsDeleted = true,
                        FirstName = "Can't Find Specialist with id = " + transferRecord.DestinationObjectId
                    };

                    transferRecord.DestinationObject = specialist;
                }
                #endregion
            }
            // возвращаем результат
            //SetParents(collection);
            return(collection);
        }