private static void GetFolderFilesLastDate(SiteInfo si) { var strConn = ConfigurationManager.ConnectionStrings["Halfpint"].ToString(); SqlDataReader rdr = null; using (var conn = new SqlConnection(strConn)) { try { var cmd = new SqlCommand { Connection = conn, CommandText = "GetNovanetLastFileDates", CommandType = CommandType.StoredProcedure }; var param = new SqlParameter("@siteId", si.Id); cmd.Parameters.Add(param); conn.Open(); rdr = cmd.ExecuteReader(); si.FolderFileLastDates = new List<FolderFileLastDate>(); while (rdr.Read()) { var ffld = new FolderFileLastDate(); int pos = rdr.GetOrdinal("Id"); ffld.Id = rdr.GetInt32(pos); pos = rdr.GetOrdinal("MachineName"); ffld.Name = rdr.GetString(pos); pos = rdr.GetOrdinal("LastFileDate"); ffld.LastFileDate = rdr.IsDBNull(pos) ? (DateTime?)null : rdr.GetDateTime(pos); si.FolderFileLastDates.Add(ffld); } rdr.Close(); } catch (Exception ex) { Logger.Error(ex); } finally { if (rdr != null) rdr.Close(); } } }
//private static IEnumerable<FileInfo> GetFileList(SiteInfo si, ref DateTime newLastDate) //{ // var list = new List<FileInfo>(); // //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); // foreach (var folder in folders) // { // Console.WriteLine("Folder: " + folder); // var di = new DirectoryInfo(folder); // 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); // Console.WriteLine(fileDate); // if (si.LastFileDate.HasValue) // { // //if the last date is greater than the file date // if (si.LastFileDate.Value.CompareTo(fileDate) >= 0) // continue; // } // if (newLastDate.CompareTo(fileDate) < 0) // newLastDate = fileDate; // list.Add(file); // } // } // } // //get the file list // return list; //} private static IEnumerable<SiteInfo> GetSites() { var sil = new List<SiteInfo>(); String strConn = ConfigurationManager.ConnectionStrings["Halfpint"].ToString(); SqlDataReader rdr = null; using (var conn = new SqlConnection(strConn)) { try { var cmd = new SqlCommand("", conn) { CommandType = CommandType.StoredProcedure, CommandText = "GetSitesActive" }; conn.Open(); rdr = cmd.ExecuteReader(); while (rdr.Read()) { var si = new SiteInfo(); var pos = rdr.GetOrdinal("ID"); si.Id = rdr.GetInt32(pos); pos = rdr.GetOrdinal("Name"); si.Name = rdr.GetString(pos); pos = rdr.GetOrdinal("SiteID"); si.SiteId = rdr.GetString(pos); //pos = rdr.GetOrdinal("LastNovanetFileDateImported"); //si.LastFileDate = rdr.IsDBNull(pos) ? (DateTime?)null : rdr.GetDateTime(pos); sil.Add(si); } rdr.Close(); } catch (Exception ex) { Logger.Error(ex); } finally { if (rdr != null) rdr.Close(); } } return sil; }
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; }