Beispiel #1
0
        private static IEnumerable<FolderFileList> GetFolderAndFiles(SiteInfo si)
        {
            var list = new List<FolderFileList>();

            //get the parent path for this site
            var parentPath = ConfigurationManager.AppSettings["NovaNetUploadPath"];
            parentPath = Path.Combine(parentPath, si.SiteId);

            if (Directory.Exists(parentPath))
            {
                //get the folders (named after the computer name)
                var folders = Directory.EnumerateDirectories(parentPath);
                var newLastDate = new DateTime();

                foreach (var folder in folders)
                {
                    var folderAndFile = new FolderFileList();
                    list.Add(folderAndFile);

                    var di = new DirectoryInfo(folder);
                    folderAndFile.Name = di.Name;

                    DateTime? lastFileDate = null;

                    var lastFolderFileDate = si.FolderFileLastDates.Find(x => x.Name == di.Name);
                    if (lastFolderFileDate == null)
                    {
                        //if the site doesn't have this folder then add it
                        lastFolderFileDate = new FolderFileLastDate { Name = di.Name };
                        si.FolderFileLastDates.Add(lastFolderFileDate);
                    }
                    else
                    {
                        if (lastFolderFileDate.LastFileDate.HasValue)
                        {
                            lastFileDate = lastFolderFileDate.LastFileDate;
                        }
                    }

                    foreach (var file in di.GetFiles())
                    {
                        Console.WriteLine("file name: " + file.FullName);
                        if (!file.Name.ToUpper().StartsWith("PR"))
                        {
                            //skip all files except files that start with pr
                            //maybe archive file
                            continue;
                        }

                        //extract the date from the file name
                        var datePart = file.Name.Substring(2, 6);
                        var sDate = "20" + datePart.Substring(0, 2) + "/" + datePart.Substring(2, 2) + "/" +
                                    datePart.Substring(4, 2);
                        var fileDate = DateTime.Parse(sDate);
                        if (lastFileDate != null && lastFileDate.Value.CompareTo(fileDate) >= 0)
                            continue;

                        folderAndFile.Files.Add(file);

                        if (newLastDate.CompareTo(fileDate) < 0)
                            newLastDate = fileDate;

                    }//foreach (var file in di.GetFiles())

                    if (lastFolderFileDate.LastFileDate == null)
                        lastFolderFileDate.NewLastFileDate = newLastDate;
                    else
                    {
                        if (newLastDate.CompareTo(lastFolderFileDate.LastFileDate.Value) > 0)
                            lastFolderFileDate.NewLastFileDate = newLastDate;
                    }

                }//foreach (var folder in folders)

            }

            return list;
        }
Beispiel #2
0
        private static IEnumerable <FolderFileList> GetFolderAndFiles(SiteInfo si)
        {
            var list = new List <FolderFileList>();

            //get the parent path for this site
            var parentPath = ConfigurationManager.AppSettings["NovaNetUploadPath"];

            parentPath = Path.Combine(parentPath, si.SiteId);

            if (Directory.Exists(parentPath))
            {
                //get the folders (named after the computer name)
                var folders     = Directory.EnumerateDirectories(parentPath);
                var newLastDate = new DateTime();

                foreach (var folder in folders)
                {
                    var folderAndFile = new FolderFileList();
                    list.Add(folderAndFile);

                    var di = new DirectoryInfo(folder);
                    folderAndFile.Name = di.Name;

                    DateTime?lastFileDate = null;

                    var lastFolderFileDate = si.FolderFileLastDates.Find(x => x.Name == di.Name);
                    if (lastFolderFileDate == null)
                    {
                        //if the site doesn't have this folder then add it
                        lastFolderFileDate = new FolderFileLastDate {
                            Name = di.Name
                        };
                        si.FolderFileLastDates.Add(lastFolderFileDate);
                    }
                    else
                    {
                        if (lastFolderFileDate.LastFileDate.HasValue)
                        {
                            lastFileDate = lastFolderFileDate.LastFileDate;
                        }
                    }

                    foreach (var file in di.GetFiles())
                    {
                        Console.WriteLine("file name: " + file.FullName);
                        if (!file.Name.ToUpper().StartsWith("PR"))
                        {
                            //skip all files except files that start with pr
                            //maybe archive file
                            continue;
                        }

                        //extract the date from the file name
                        var datePart = file.Name.Substring(2, 6);
                        var sDate    = "20" + datePart.Substring(0, 2) + "/" + datePart.Substring(2, 2) + "/" +
                                       datePart.Substring(4, 2);
                        var fileDate = DateTime.Parse(sDate);
                        if (lastFileDate != null && lastFileDate.Value.CompareTo(fileDate) >= 0)
                        {
                            continue;
                        }

                        folderAndFile.Files.Add(file);

                        if (newLastDate.CompareTo(fileDate) < 0)
                        {
                            newLastDate = fileDate;
                        }
                    }//foreach (var file in di.GetFiles())

                    if (lastFolderFileDate.LastFileDate == null)
                    {
                        lastFolderFileDate.NewLastFileDate = newLastDate;
                    }
                    else
                    {
                        if (newLastDate.CompareTo(lastFolderFileDate.LastFileDate.Value) > 0)
                        {
                            lastFolderFileDate.NewLastFileDate = newLastDate;
                        }
                    }
                }//foreach (var folder in folders)
            }

            return(list);
        }