Exemplo n.º 1
0
        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();
                }
            }
        }
Exemplo n.º 2
0
        //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;
        }
Exemplo n.º 3
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;
        }