コード例 #1
0
        public IEnumerable <IGrouping <DateTime, Source> > GetNewSetsOfFiles(IList <string> listOfFiles)
        {
            var bookingFileName   = Globals.BookingFileName;
            var passengerFileName = Globals.PassengerFileName;
            var chargesFileName   = Globals.ChargesFileName;

            var fileList = new List <IGrouping <DateTime, Source> >(3);

            var filesGroupedByDate = _csvFileManager
                                     .PopulateModel(listOfFiles)
                                     .GroupBy(f => f.Date).ToList().OrderBy(x => x.Key);

            FileSetsWithMissingFiles.Clear();
            FileSetsNonChronological.Clear();

            foreach (var fileSet in filesGroupedByDate)
            {
                //If all three needed csv files is present
                if (fileSet.Any(b => b.Identification == bookingFileName &&
                                fileSet.Any(p => p.Identification == passengerFileName) &&
                                fileSet.Any(c => c.Identification == chargesFileName)))
                {
                    fileList.Add(fileSet);
                }
                else
                {
                    foreach (var source in fileSet)
                    {
                        FileSetsWithMissingFiles.Add(
                            new Source
                        {
                            Date           = source.Date,
                            Identification = source.Identification,
                            Path           = source.Path
                        });
                    }
                }
            }

            return(fileList.OrderBy(f => f.Key).ToList());
        }