Beispiel #1
0
 /// <summary>
 /// update operation
 /// </summary>
 private void updateOperation()
 {
     try
     {
         innerFlag = monitorService.UpdateMonitorServer(innerMonitorServer);
         //
         if (innerFlag > -1)
         {
             if (System.IO.Directory.Exists(innerMonitorServer.monitorDrive))
             {
                 int resultForDeleteMonitorServerFolder = imsfs.DeleteMonitorServerFolderByServerId(Int32.Parse(innerMonitorServer.id));
                 if (resultForDeleteMonitorServerFolder > -1)
                 {
                     DirectoryInfo       di  = new DirectoryInfo(innerMonitorServer.monitorDrive);
                     MonitorServerFolder msf = minitorFolderDataFormat(di, "1", Int32.Parse(innerMonitorServer.id));
                     int innerId             = imsfs.InsertMonitorServerFolder(msf);
                     //getChildFolderAndFile(di, maxId)
                 }
             }
             //
             int monitorFileListenForResult = monitorFileListenService.UpdateMonitorServer(innerMonitorServer, monitorServer);
         }
     }
     catch (Exception ex)
     {
         logger.Error(ex.Message);
     }
 }
Beispiel #2
0
        /// <summary>
        /// save operation
        /// </summary>
        private void saveOperation()
        {
            try
            {
                innerFlag = monitorService.InsertMonitorServer(innerMonitorServer);

                if (innerFlag > -1)
                {
                    int    maxId = monitorService.GetMaxId();
                    string sb    = innerMonitorServer.monitorDrive;

                    if (System.IO.File.Exists(sb))
                    {
                        FileInfo file = new FileInfo(sb);
                        if (file.Exists)
                        {
                            MonitorServerFolder msf = minitorFolderDataFormat(file, "1", maxId);
                            int innerId             = imsfs.InsertMonitorServerFolder(msf);
                        }
                    }
                    else if (System.IO.Directory.Exists(sb))
                    {
                        DirectoryInfo       di  = new DirectoryInfo(sb);
                        MonitorServerFolder msf = minitorFolderDataFormat(di, "1", maxId);
                        int innerId             = imsfs.InsertMonitorServerFolder(msf);
                        getChildFolderAndFile(di, maxId);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
            }
        }
Beispiel #3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="MonitorServerFolder"></param>
 /// <param name="conn"></param>
 /// <returns></returns>
 public int InsertMonitorServerFolder(MonitorServerFolder MonitorServerFolder, OdbcConnection conn)
 {
     try
     {
         return(db.insert(MonitorServerFolder, "monitorServerFolder", conn));
     }
     catch (Exception e)
     {
         throw e;
     }
 }
Beispiel #4
0
        public int InsertMonitorServerFolder(MonitorServerFolder MonitorServerFolder)
        {
            OdbcConnection conn;
            int            count = 0;

            using (conn = OdbcHelper.CreateConntion())
            {
                conn.Open();
                count = MonitorServerFolderDal.InsertMonitorServerFolder(MonitorServerFolder, conn);
                conn.Close();
            }
            return(count);
        }
Beispiel #5
0
        /// <summary>
        /// 保存選択の子フォルダ
        /// </summary>
        /// <param name="strFolderPath"></param>
        /// <param name="dt"></param>
        /// <param name="msID"></param>
        /// <returns></returns>
        private int InsertFolder(string strFolderPath, string dt, int msID)
        {
            int result = 0;

            try
            {
                if (Directory.Exists(strFolderPath))
                {
                    DirectoryInfo dirInfo = new DirectoryInfo(strFolderPath);
                    foreach (DirectoryInfo folder in dirInfo.GetDirectories())
                    {
                        MonitorServerFolder model = new MonitorServerFolder();
                        model.createDate      = dt;
                        model.updateDate      = dt;
                        model.creater         = Session["LoginId"].ToString();
                        model.updater         = Session["LoginId"].ToString();
                        model.monitorFlg      = "0";
                        model.deleteFlg       = 0;
                        model.initFlg         = "0";
                        model.monitorServerID = msID;
                        model.monitorFileName = folder.Name;
                        model.monitorFilePath = strFolderPath;
                        model.monitorFileType = "99";
                        result = msFolderService.InsertMonitorServerFolder(model);
                        result = InsertFolder(folder.FullName, dt, msID);
                    }
                    foreach (FileInfo file in dirInfo.GetFiles())
                    {
                        MonitorServerFolder model = new MonitorServerFolder();
                        model.createDate      = dt;
                        model.updateDate      = dt;
                        model.creater         = Session["LoginId"].ToString();
                        model.updater         = Session["LoginId"].ToString();
                        model.monitorFlg      = "1";
                        model.deleteFlg       = 0;
                        model.initFlg         = "0";
                        model.monitorServerID = msID;
                        model.monitorFileName = file.Name;
                        model.monitorFilePath = strFolderPath;
                        model.monitorFileType = file.Extension.ToString();
                        result = msFolderService.InsertMonitorServerFolder(model);
                    }
                }
            }
            catch (Exception ex)
            {
                result = -99;
                logger.Error(ex.Message);
            }
            return(result);
        }
Beispiel #6
0
        private int lists_exist(List <MonitorServerFolder> tempRemoveLists, MonitorServerFolder list)
        {
            int index = -1;

            for (int i = 0; i < tempRemoveLists.Count; i++)
            {
                if (tempRemoveLists[i].monitorServerID == list.monitorServerID &&
                    tempRemoveLists[i].monitorFileName == list.monitorFileName &&
                    tempRemoveLists[i].monitorFilePath == list.monitorFilePath)
                {
                    index = i;
                    break;
                }
            }
            return(index);
        }
Beispiel #7
0
        /// <summary>
        /// get except condition
        /// </summary>
        private void formatListsByFileTypeSet(string monistorId)
        {
            IFileTypeSetService iftss           = BLLFactory.ServiceAccess.CreateFileTypeSetService();
            string monitorServerId              = monistorId;
            IList <FileTypeSet> fileTypeSetList = iftss.GetFileTypeSetByMonitorServerID(monitorServerId);

            foreach (FileTypeSet fileTypeSet in fileTypeSetList)
            {
                if (!Directory.Exists(fileTypeSet.monitorServerFolderName))
                {
                    continue;
                }
                List <string> exList = new List <string>();
                if (fileTypeSet.exceptAttributeFlg1 == "1" && !string.IsNullOrEmpty(fileTypeSet.exceptAttribute1))
                {
                    exList.Add(fileTypeSet.exceptAttribute1);
                }
                if (fileTypeSet.exceptAttributeFlg2 == "1" && !string.IsNullOrEmpty(fileTypeSet.exceptAttribute2))
                {
                    exList.Add(fileTypeSet.exceptAttribute2);
                }
                if (fileTypeSet.exceptAttributeFlg3 == "1" && !string.IsNullOrEmpty(fileTypeSet.exceptAttribute3))
                {
                    exList.Add(fileTypeSet.exceptAttribute3);
                }
                DirectoryInfo dir   = new DirectoryInfo(fileTypeSet.monitorServerFolderName);
                FileInfo[]    files = dir.GetFiles();
                if (files.Count() > 0)
                {
                    foreach (FileInfo fileInfo in files)
                    {
                        string extension = fileInfo.Extension;
                        if (!exList.Contains(extension))
                        {
                            continue;
                        }
                        string fullPath         = fileInfo.FullName.IndexOf('\\') > -1 ? fileInfo.FullName.Substring(0, fileInfo.FullName.LastIndexOf('\\')) : fileInfo.FullName;
                        MonitorServerFolder msf = new MonitorServerFolder();
                        msf.monitorServerID = Convert.ToInt32(monistorId);
                        msf.monitorFilePath = fullPath;
                        msf.monitorFileName = fileInfo.Name;
                        msf.monitorFileType = fileInfo.Extension;
                        formatListsData(msf, monistorId);
                    }
                }
            }
        }
Beispiel #8
0
        private int lists_contain(MonitorServerFolder list)
        {
            int index = -1;

            for (int i = 0; i < globalfolderList.Count; i++)
            {
                if (globalfolderList[i].monitorServerID == list.monitorServerID &&
                    globalfolderList[i].monitorFileName == list.monitorFileName &&
                    globalfolderList[i].monitorFilePath == list.monitorFilePath)
                {
                    index = i;
                    globalfolderList.RemoveAt(i);
                    break;
                }
            }
            return(index);
        }
Beispiel #9
0
 private void getChildFolderAndFile(DirectoryInfo sb, int id)
 {
     try
     {
         IMonitorServerFolderService imsfs = BLLFactory.ServiceAccess.CreateMonitorServerFolderService();
         if (sb is DirectoryInfo)
         {
             FileSystemInfo[] fsis = sb.GetFileSystemInfos();
             if (fsis.Count() > 0)
             {
                 foreach (FileSystemInfo fsi in fsis)
                 {
                     if (fsi is FileInfo)
                     {
                         if (fsi.Exists)
                         {
                             MonitorServerFolder msf = minitorFolderDataFormat(fsi, "0", id);
                             int innerId             = imsfs.InsertMonitorServerFolder(msf);
                         }
                     }
                     else
                     {
                         MonitorServerFolder msf = minitorFolderDataFormat(fsi, "0", id);
                         int innerId             = imsfs.InsertMonitorServerFolder(msf);
                         getChildFolderAndFile((DirectoryInfo)fsi, id);
                     }
                 }
             }
             else
             {
                 return;
             }
         }
         else
         {
             return;
         }
     }
     catch (Exception ex)
     {
         logger.Error(ex.Message);
     }
 }
Beispiel #10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="MonitorServerFolder"></param>
        /// <param name="conn"></param>
        /// <returns></returns>
        public int UpdateMonitorServerFolder(MonitorServerFolder MonitorServerFolder, OdbcConnection conn)
        {
            string sql = @"UPDATE monitorServerFolder
                               SET monitorServerID = ?
                                  ,monitorFileName = ?
                                  ,monitorFilePath = ?
                                  ,monitorFileType = ?
                                  ,monitorFlg = ?
                                  ,updater = ?
                                  ,updateDate = ? 
                             WHERE id=?";

            try
            {
                OdbcParameter[] spvalues = DBTool.GetOdbcPm(MonitorServerFolder);
                return(OdbcHelper.ExecuteNonQuery(conn, System.Data.CommandType.Text, sql, spvalues));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Beispiel #11
0
        private MonitorServerFolder minitorFolderDataFormat(FileSystemInfo fileInfo, string initFlg, int id)
        {
            MonitorServerFolder msf = new MonitorServerFolder();
            // 開始フォルダーのパス
            string startPath = "\\\\" + this.txtMonitorIp.Text.Trim() + "\\" + this.txtMonitorStfile.Text.Trim().TrimEnd('\\');

            msf.monitorServerID = id;
            if (fileInfo is DirectoryInfo)
            {
                if (startPath.Equals(fileInfo.FullName.TrimEnd('\\')))
                {
                    msf.monitorFilePath = startPath;
                    msf.monitorFileName = "";
                }
                else
                {
                    msf.monitorFilePath = fileInfo.FullName.Substring(0, fileInfo.FullName.LastIndexOf("\\"));
                    msf.monitorFileName = fileInfo.Name;
                }
                msf.monitorFileType = "99";
                msf.monitorFlg      = "0";
            }
            else
            {
                msf.monitorFileName = fileInfo.Name;
                int    index    = fileInfo.FullName.LastIndexOf("\\");
                string filePath = fileInfo.FullName.Substring(0, index);
                msf.monitorFilePath = filePath;
                msf.monitorFileType = fileInfo.Extension;
                msf.monitorFlg      = "1";
            }
            msf.initFlg       = initFlg;
            msf.monitorStatus = "未コピー";
            msf.createDate    = CommonUtil.DateTimeNowToString();
            msf.creater       = FrmLogin.userinfo.loginID;
            msf.updateDate    = CommonUtil.DateTimeNowToString();
            msf.updater       = FrmLogin.userinfo.loginID;
            return(msf);
        }
Beispiel #12
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="MonitorServerFolder"></param>
        /// <param name="conn"></param>
        /// <returns></returns>
        public int UpdateMonitorServerFolder(MonitorServerFolder MonitorServerFolder, SqlConnection conn)
        {
            string sql = @"UPDATE monitorServerFolder
                               SET monitorServerID = @monitorServerID
                                  ,monitorFileName = @monitorFileName
                                  ,monitorFilePath = @monitorFilePath
                                  ,monitorFileType = @monitorFileType
                                  ,monitorFlg = @monitorFlg
                                  ,updater = @updater
                                  ,updateDate = @updateDate
                             WHERE id=@id";

            try
            {
                SqlParameter[] spvalues = DBTool.GetSqlPm(MonitorServerFolder);
                return(SqlHelper.ExecuteNonQuery(conn, System.Data.CommandType.Text, sql, spvalues));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Beispiel #13
0
        /// <summary>
        /// 保存選択の子フォルダ
        /// </summary>
        /// <param name="strFolderPath"></param>
        /// <param name="dt"></param>
        /// <param name="msID"></param>
        /// <returns></returns>
        private int InsertFolder(string strFolderPath, string dt, int msID)
        {
            int result = 0;

            try
            {
                if (Directory.Exists(strFolderPath))
                {
                    FileTypeSet   fset    = searchFileTypeSet(msID.ToString(), strFolderPath);
                    DirectoryInfo dirInfo = new DirectoryInfo(strFolderPath);
                    foreach (DirectoryInfo folder in dirInfo.GetDirectories())
                    {
                        if (fset != null)
                        {
                            if (fset.hiddenFileFlg == "1")
                            {//隠しファイル
                                if ((folder.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
                                {
                                    continue;
                                }
                            }
                            if (fset.systemFileFlg == "1")
                            {//システムファイル
                                if ((folder.Attributes & FileAttributes.System) == FileAttributes.System)
                                {
                                    continue;
                                }
                            }
                        }
                        MonitorServerFolder model = new MonitorServerFolder();
                        model.createDate      = dt;
                        model.updateDate      = dt;
                        model.creater         = Session["LoginId"].ToString();
                        model.updater         = Session["LoginId"].ToString();
                        model.monitorFlg      = "0";
                        model.deleteFlg       = 0;
                        model.initFlg         = "0";
                        model.monitorServerID = msID;
                        model.monitorFileName = folder.Name;
                        //model.monitorFilePath = folder.Parent.FullName.ToString();
                        model.monitorFilePath = strFolderPath;
                        model.monitorFileType = "99";
                        result = msFolderService.InsertMonitorServerFolder(model);
                        result = InsertFolder(folder.FullName, dt, msID);
                    }
                    foreach (FileInfo file in dirInfo.GetFiles())
                    {
                        if (fset != null)
                        {
                            string strExceptAttribute1 = string.Empty;
                            string strExceptAttribute2 = string.Empty;
                            string strExceptAttribute3 = string.Empty;
                            if (fset.exceptAttributeFlg1 == "1")
                            {
                                strExceptAttribute1 = fset.exceptAttribute1;
                            }
                            if (fset.exceptAttributeFlg2 == "1")
                            {
                                strExceptAttribute2 = fset.exceptAttribute2;
                            }
                            if (fset.exceptAttributeFlg3 == "1")
                            {
                                strExceptAttribute3 = fset.exceptAttribute3;
                            }
                            if (CommonUtil.IsExceptFile(file.Name, strExceptAttribute1, strExceptAttribute2, strExceptAttribute3))
                            {
                                continue;
                            }
                            if (fset.hiddenFileFlg == "1")
                            {//隠しファイル
                                if ((file.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
                                {
                                    continue;
                                }
                            }
                            if (fset.systemFileFlg == "1")
                            {//システムファイル
                                if ((file.Attributes & FileAttributes.System) == FileAttributes.System)
                                {
                                    continue;
                                }
                            }
                        }
                        MonitorServerFolder model = new MonitorServerFolder();
                        //FileInfo file = new FileInfo(strFolderPath);
                        model.createDate      = dt;
                        model.updateDate      = dt;
                        model.creater         = Session["LoginId"].ToString();
                        model.updater         = Session["LoginId"].ToString();
                        model.monitorFlg      = "1";
                        model.deleteFlg       = 0;
                        model.initFlg         = "0";
                        model.monitorServerID = msID;
                        model.monitorFileName = file.Name;
                        //model.monitorFilePath = file.DirectoryName;
                        model.monitorFilePath = strFolderPath;
                        model.monitorFileType = file.Extension.ToString();
                        result = msFolderService.InsertMonitorServerFolder(model);
                    }
                }
            }
            catch (Exception ex)
            {
                result = -99;
                logger.Error(ex.Message);
            }
            return(result);
        }
Beispiel #14
0
        /// <summary>
        /// format except list and remove
        /// </summary>
        /// <param name="msf"></param>
        private void formatListsData(MonitorServerFolder msf, string monistorId)
        {
            string msfFullPath = msf.monitorFilePath + "\\" + msf.monitorFileName;
            List <MonitorServerFolder> tempLists = new List <MonitorServerFolder>();

            //List<MonitorServerFolder> tempRemoveLists = new List<MonitorServerFolder>();
            if (globalfolderList.Count > 0)
            {
                foreach (MonitorServerFolder innerMsf in globalfolderList)
                {
                    string listFullPath = innerMsf.monitorFilePath + "\\" + innerMsf.monitorFileName;
                    if (msfFullPath.IndexOf(listFullPath) > -1)
                    {
                        if (lists_exist(tempRemoveLists, innerMsf) <= -1)
                        {
                            tempRemoveLists.Add(innerMsf);
                        }
                        if (lists_exist(tempRemoveLists, msf) <= -1)
                        {
                            tempRemoveLists.Add(msf);
                        }
                        if (Directory.Exists(listFullPath))
                        {
                            DirectoryInfo    dir             = new DirectoryInfo(listFullPath);
                            FileSystemInfo[] fileSystemInfos = dir.GetFileSystemInfos();
                            foreach (FileSystemInfo fileSystemInfo in fileSystemInfos)
                            {
                                string fullPath  = fileSystemInfo.FullName.IndexOf('\\') > -1 ? fileSystemInfo.FullName.Substring(0, fileSystemInfo.FullName.LastIndexOf('\\')) : fileSystemInfo.FullName;
                                string extension = fileSystemInfo.Extension;
                                if (Directory.Exists(fileSystemInfo.FullName))
                                {
                                    extension = "99";
                                }
                                MonitorServerFolder msfl = new MonitorServerFolder();
                                msfl.monitorServerID = Convert.ToInt32(monistorId);
                                msfl.monitorFilePath = fullPath;
                                msfl.monitorFileName = fileSystemInfo.Name;
                                msfl.monitorFileType = extension;
                                if (msfFullPath.IndexOf(fileSystemInfo.FullName) > -1 && !Directory.Exists(fileSystemInfo.FullName))
                                {
                                    continue;
                                }
                                else
                                {
                                    tempLists.Add(msfl);
                                }
                            }
                        }
                    }
                }
                if (tempLists.Count > 0)
                {
                    foreach (MonitorServerFolder innerMsf in tempLists)
                    {
                        lists_contain(innerMsf);
                        globalfolderList.Add(innerMsf);
                    }
                }
                if (tempRemoveLists.Count > 0)
                {
                    foreach (MonitorServerFolder innerMsf in tempRemoveLists)
                    {
                        lists_contain(innerMsf);
                    }
                }
            }
        }
Beispiel #15
0
        public ActionResult Add(MonitorServer msModel)
        {
            int result = -1;

            //session获取值
            if (Session["LoginId"] == null)
            {
                result = -99;
            }
            else
            {
                //保存
                try
                {
                    //string strpath = msModel.monitorDrive + ":";
                    string strpath = "\\\\" + msModel.monitorServerIP.Trim() + "\\" + msModel.startFile.Trim().Trim('\\').Replace('/', '\\') + "\\";
                    //if (!Directory.Exists(strpath))
                    //{
                    //    result = -20;
                    //}
                    //else
                    //{
                    string dt = Common.CommonUtil.DateTimeNowToString();
                    msModel.monitorDrive   = strpath.TrimEnd('\\');
                    msModel.monitorDriveP  = msModel.monitorDriveP + ":";
                    msModel.creater        = Session["LoginId"].ToString();
                    msModel.createDate     = dt;
                    msModel.deleteFlg      = 0;
                    msModel.updater        = Session["LoginId"].ToString();
                    msModel.updateDate     = dt;
                    msModel.synchronismFlg = 0;
                    result = msSerivice.InsertMonitorServer(msModel);

                    //maxID
                    int intMonitorServerID = msSerivice.GetMaxId();
                    //if (Directory.Exists(strpath))
                    //{
                    MonitorServerFolder model = new MonitorServerFolder();
                    model.monitorServerID = intMonitorServerID;
                    model.monitorFileType = "99";
                    model.monitorFilePath = strpath.TrimEnd('\\');
                    model.monitorFileName = "";
                    model.createDate      = dt;
                    model.updateDate      = dt;
                    model.creater         = Session["LoginId"].ToString();
                    model.updater         = Session["LoginId"].ToString();
                    model.monitorServerID = intMonitorServerID;
                    model.monitorFileName = "";
                    model.monitorFlg      = "0";
                    model.initFlg         = "1";
                    model.deleteFlg       = 0;
                    model.synchronismFlg  = 0;
                    result = msFolderService.InsertMonitorServerFolder(model);
                    result = InsertFolder(strpath, dt, intMonitorServerID);
                    //}
                    //}
                }
                catch (Exception ex)
                {
                    result = -10;
                    logger.Error(ex.Message);
                }
            }
            Response.Write(result);
            Response.End();
            return(null);
        }
Beispiel #16
0
        /// <summary>
        /// データ更新
        /// </summary>
        /// <param name="msModel"></param>
        /// <returns></returns>
        public ActionResult Update(MonitorServer msModel)
        {
            int result = -1;

            if (Session["LoginId"] == null)
            {
                result = -99;
            }
            else
            {
                try
                {
                    msModel.id = Request.Form["msId"];
                    string        dt            = Common.CommonUtil.DateTimeNowToString();
                    MonitorServer monitorServer = msSerivice.GetMonitorServerById(Convert.ToInt32(msModel.id));
                    msModel.updater    = Session["LoginId"].ToString();
                    msModel.updateDate = dt;
                    if (msModel.memo == null)
                    {
                        msModel.memo = string.Empty;
                    }
                    if (msModel.monitorDriveP == "" || msModel.monitorDriveP == null)
                    {
                        for (char i = 'A'; i <= 'Z'; i++)
                        {
                            if (!Directory.Exists(i + ":"))
                            {
                                msModel.monitorDriveP = i.ToString();
                                break;
                            }
                        }
                    }
                    string strpath = "\\\\" + msModel.monitorServerIP.Trim() + "\\" + msModel.startFile.Trim().Trim('\\').Replace('/', '\\') + "\\";
                    msModel.monitorDrive = strpath.TrimEnd('\\');
                    result = msSerivice.UpdateMonitorServer(msModel);
                    if (result > -1)
                    {
                        if (msModel.monitorDriveP.IndexOf(':') <= -1)
                        {
                            msModel.monitorDriveP = msModel.monitorDriveP + ":";
                        }
                        if (System.IO.Directory.Exists(msModel.monitorDriveP))
                        {
                            int resultForDeleteMonitorServerFolder = msFolderService.DeleteMonitorServerFolderByServerId(Int32.Parse(msModel.id));
                            if (resultForDeleteMonitorServerFolder > -1)
                            {
                                //string strpath = "\\\\" + msModel.monitorServerIP.Trim() + "\\" + msModel.startFile.Trim().Trim('\\').Replace('/', '\\') + "\\";
                                DirectoryInfo       di    = new DirectoryInfo(msModel.monitorDrive);
                                MonitorServerFolder model = new MonitorServerFolder();
                                model.monitorServerID = Convert.ToInt32(msModel.id);
                                model.monitorFileType = "99";
                                model.monitorFilePath = strpath.TrimEnd('\\');
                                model.monitorFileName = "";
                                model.createDate      = dt;
                                model.updateDate      = dt;
                                model.creater         = Session["LoginId"].ToString();
                                model.updater         = Session["LoginId"].ToString();
                                model.monitorFileName = "";
                                model.monitorFlg      = "0";
                                model.initFlg         = "1";
                                model.deleteFlg       = 0;
                                int innerId = msFolderService.InsertMonitorServerFolder(model);
                            }
                        }
                        int monitorFileListenForResult = msFileListenService.UpdateMonitorServer(msModel, monitorServer);
                    }
                }
                catch (Exception ex)
                {
                    result = -10;
                    logger.Error(ex.Message);
                }
            }
            Response.Write(result);
            Response.End();
            return(null);
        }
Beispiel #17
0
        /// <summary>
        /// 变化处理
        /// </summary>
        /// <param name="state"></param>
        private void OnWatchedFileChange(object state)
        {
            IMonitorServerFileService   MonitorServerFileService   = BLLFactory.ServiceAccess.CreateMonitorServerFileService();
            IMonitorServerFolderService MonitorServerFolderService = BLLFactory.ServiceAccess.CreateMonitorServerFolderService();
            // File Info
            SortedList htfilescopy = (SortedList)htfiles.Clone();
            Mutex      mutex       = new Mutex(false, "FSW");

            mutex.WaitOne();
            mutex.ReleaseMutex();

            foreach (DictionaryEntry file in htfilescopy)
            {
                try
                {
                    FileSystemEventArgs fileevent = (FileSystemEventArgs)file.Value;
                    //源路径
                    string filepath = System.IO.Path.GetFullPath(file.Key.ToString());
                    //备份路径
                    string backuppath = Path.Combine(_copydir, fileevent.Name);

                    MonitorServerFile   monitorServerFile   = new MonitorServerFile();
                    MonitorServerFolder monitorServerFolder = new MonitorServerFolder();

                    // copy機能
                    if (fileevent.ChangeType.Equals(WatcherChangeTypes.Created))
                    {
                        // Copy方法変更 2014/01/30 変更
                        //bool result = FileSystem.FileCopy(filepath, backuppath);
                        CopyDirectory fileCopy = new CopyDirectory(filepath, backuppath);
                        fileCopy.StarCopy();
                        //IO問題であれば、次のファイルを処理する
                        if (fileCopy._Errorlist.Count > 0)
                        {
                            foreach (string errorMessage in fileCopy._Errorlist)
                            {
                                logger.Error(errorMessage);
                            }
                            continue;
                        }
                        //if (!result)
                        //{
                        //    continue;
                        //}
                        //判断是否是目录
                        if (Directory.Exists(filepath))
                        {
                            monitorServerFile.monitorFileType   = Path.GetExtension(backuppath);
                            monitorServerFile.monitorFileSize   = "0";
                            monitorServerFile.monitorFileStatus = 1;
                            //---
                            monitorServerFolder.monitorServerID = _id;
                            monitorServerFolder.monitorFileName = Path.GetFileName(fileevent.Name);
                            monitorServerFolder.monitorFilePath = filepath.TrimEnd(("\\" + Path.GetFileName(fileevent.Name)).ToCharArray());
                            monitorServerFolder.monitorFileType = "99";
                            monitorServerFolder.initFlg         = "0";
                            monitorServerFolder.monitorFlg      = "0";
                            monitorServerFolder.creater         = "admin";
                            monitorServerFolder.updater         = "admin";
                            monitorServerFolder.createDate      = CommonUtil.DateTimeNowToString();
                            monitorServerFolder.updateDate      = CommonUtil.DateTimeNowToString();
                        }
                        else
                        {
                            System.IO.FileInfo fileinfo = new System.IO.FileInfo(backuppath);
                            monitorServerFile.monitorFileType   = Path.GetExtension(backuppath);
                            monitorServerFile.monitorFileSize   = fileinfo.Length.ToString();
                            monitorServerFile.monitorFileStatus = 1;
                            //---
                            monitorServerFolder.monitorServerID = _id;
                            monitorServerFolder.monitorFileName = Path.GetFileName(fileevent.Name);
                            monitorServerFolder.monitorFilePath = filepath.TrimEnd(("\\" + Path.GetFileName(fileevent.Name)).ToCharArray());
                            monitorServerFolder.monitorFileType = Path.GetExtension(backuppath);
                            monitorServerFolder.initFlg         = "0";
                            monitorServerFolder.monitorFlg      = "1";
                            monitorServerFolder.creater         = "admin";
                            monitorServerFolder.updater         = "admin";
                            monitorServerFolder.createDate      = CommonUtil.DateTimeNowToString();
                            monitorServerFolder.updateDate      = CommonUtil.DateTimeNowToString();
                        }
                        //新增文件默认为监视,添加check
                        MonitorServerFolderService.InsertMonitorServerFolder(monitorServerFolder);
                    }
                    else if (fileevent.ChangeType.Equals(WatcherChangeTypes.Changed))
                    {
                        System.IO.FileInfo fileinfo = new System.IO.FileInfo(backuppath);
                        if (fileinfo.IsReadOnly)
                        {
                            continue;
                        }
                        fileinfo.IsReadOnly = true;
                        // Copy方法変更 2014/01/30 変更
                        //bool result = FileSystem.FileCopy(filepath, backuppath);
                        CopyDirectory fileCopy = new CopyDirectory(filepath, backuppath);
                        fileCopy.StarCopy();
                        //IO問題であれば、次のファイルを処理する
                        if (fileCopy._Errorlist.Count > 0)
                        {
                            foreach (string errorMessage in fileCopy._Errorlist)
                            {
                                logger.Error(errorMessage);
                            }
                            continue;
                        }
                        //if (!result)
                        //{
                        //    continue;
                        //}
                        //判断是否是目录
                        if (Directory.Exists(filepath))
                        {
                            monitorServerFile.monitorFileType   = Path.GetExtension(backuppath);
                            monitorServerFile.monitorFileSize   = "0";
                            monitorServerFile.monitorFileStatus = 2;
                        }
                        else
                        {
                            monitorServerFile.monitorFileType   = Path.GetExtension(backuppath);
                            monitorServerFile.monitorFileSize   = fileinfo.Length.ToString();
                            monitorServerFile.monitorFileStatus = 2;
                        }
                    }
                    else if (fileevent.ChangeType.Equals(WatcherChangeTypes.Deleted))
                    {
                        //判断被删除的目录是否存在
                        if (Directory.Exists(backuppath))
                        {
                            monitorServerFile.monitorFileType = Path.GetExtension(backuppath);
                            monitorServerFile.monitorFileSize = "0";
                            bool result = FileSystem.FileDelete(backuppath);
                            //如果出现IO冲突,去执行下一个
                            if (!result)
                            {
                                continue;
                            }
                            monitorServerFile.monitorFileStatus = 3;
                        }
                        //判断被删除的文件是否存在
                        else if (File.Exists(backuppath))
                        {
                            System.IO.FileInfo fileinfo = new System.IO.FileInfo(backuppath);
                            fileinfo.IsReadOnly = false;
                            monitorServerFile.monitorFileType = Path.GetExtension(backuppath);
                            monitorServerFile.monitorFileSize = fileinfo.Length.ToString();
                            bool result = FileSystem.FileDelete(backuppath);
                            //如果出现IO冲突,去执行下一个
                            if (!result)
                            {
                                continue;
                            }
                            monitorServerFile.monitorFileStatus = 3;
                        }
                        else
                        {
                            // File Info Remove
                            htfiles.Remove(file.Key);
                            continue;
                        }
                    }
                    else if (fileevent.ChangeType.Equals(WatcherChangeTypes.Renamed))
                    {
                        RenamedEventArgs refileevent = (RenamedEventArgs)file.Value;
                        string           oldfilename = refileevent.OldName.ToString();
                        string           olddir      = Path.Combine(_copydir, oldfilename);
                        if (Path.GetExtension(olddir) == string.Empty)
                        {
                            //old file dir info insert
                            if (Directory.Exists(olddir))
                            {
                                MonitorServerFile monitorServerFile1 = new MonitorServerFile();
                                monitorServerFile1.monitorServerID   = _id;
                                monitorServerFile1.monitorFileName   = Path.GetFileName(oldfilename);
                                monitorServerFile1.monitorFilePath   = olddir;
                                monitorServerFile1.monitorFileType   = Path.GetExtension(olddir);
                                monitorServerFile1.monitorFileSize   = "0";
                                monitorServerFile1.monitorStartTime  = CommonUtil.DateTimeNowToString();
                                monitorServerFile1.monitorFileStatus = 3;
                                monitorServerFile1.transferFlg       = 0;
                                monitorServerFile1.deleteFlg         = 0;
                                monitorServerFile1.creater           = "exe";
                                monitorServerFile1.createDate        = CommonUtil.DateTimeNowToString();
                                monitorServerFile1.updater           = "exe";
                                monitorServerFile1.updateDate        = CommonUtil.DateTimeNowToString();
                                MonitorServerFileService.InsertMonitorServerFile(monitorServerFile1, filepath);
                                bool result = FileSystem.FileDelete(olddir);
                                //如果出现IO冲突,去执行下一个
                                if (!result)
                                {
                                    continue;
                                }
                            }
                            // Copy方法変更 2014/01/30 変更
                            //bool result1 = FileSystem.FileCopy(filepath, backuppath);
                            CopyDirectory fileCopy = new CopyDirectory(filepath, backuppath);
                            fileCopy.StarCopy();
                            //IO問題であれば、次のファイルを処理する
                            if (fileCopy._Errorlist.Count > 0)
                            {
                                foreach (string errorMessage in fileCopy._Errorlist)
                                {
                                    logger.Error(errorMessage);
                                }
                                continue;
                            }
                            //if (!result1)
                            //{
                            //    continue;
                            //}
                            //new file dir info insert
                            monitorServerFile.monitorFileType   = Path.GetExtension(backuppath);
                            monitorServerFile.monitorFileSize   = "0";
                            monitorServerFile.monitorFileStatus = 4;
                            //---
                            monitorServerFolder.monitorServerID = _id;
                            monitorServerFolder.monitorFileName = Path.GetFileName(fileevent.Name);
                            monitorServerFolder.monitorFilePath = filepath.TrimEnd(("\\" + Path.GetFileName(fileevent.Name)).ToCharArray());
                            monitorServerFolder.monitorFileType = "99";
                            monitorServerFolder.initFlg         = "0";
                            monitorServerFolder.monitorFlg      = "0";
                            monitorServerFolder.creater         = "admin";
                            monitorServerFolder.updater         = "admin";
                            monitorServerFolder.createDate      = CommonUtil.DateTimeNowToString();
                            monitorServerFolder.updateDate      = CommonUtil.DateTimeNowToString();
                        }
                        else
                        {
                            //old file info insert
                            if (File.Exists(olddir))
                            {
                                MonitorServerFile monitorServerFile1 = new MonitorServerFile();
                                monitorServerFile1.monitorServerID = _id;
                                monitorServerFile1.monitorFileName = Path.GetFileName(oldfilename);
                                monitorServerFile1.monitorFilePath = olddir;
                                System.IO.FileInfo fileinfo1 = new System.IO.FileInfo(olddir);
                                monitorServerFile1.monitorFileType   = Path.GetExtension(olddir);
                                monitorServerFile1.monitorFileSize   = fileinfo1.Length.ToString();
                                monitorServerFile1.monitorStartTime  = CommonUtil.DateTimeNowToString();
                                monitorServerFile1.monitorFileStatus = 3;
                                monitorServerFile1.transferFlg       = 0;
                                monitorServerFile1.deleteFlg         = 0;
                                monitorServerFile1.creater           = "exe";
                                monitorServerFile1.createDate        = CommonUtil.DateTimeNowToString();
                                monitorServerFile1.updater           = "exe";
                                monitorServerFile1.updateDate        = CommonUtil.DateTimeNowToString();
                                MonitorServerFileService.InsertMonitorServerFile(monitorServerFile1, filepath);
                                fileinfo1.IsReadOnly = false;
                                bool result = FileSystem.FileDelete(olddir);
                                //如果出现IO冲突,去执行下一个
                                if (!result)
                                {
                                    continue;
                                }
                            }
                            // Copy方法変更 2014/01/30 変更
                            //bool result1 = FileSystem.FileCopy(filepath, backuppath);
                            CopyDirectory fileCopy = new CopyDirectory(filepath, backuppath);
                            fileCopy.StarCopy();
                            //IO問題であれば、次のファイルを処理する
                            if (fileCopy._Errorlist.Count > 0)
                            {
                                foreach (string errorMessage in fileCopy._Errorlist)
                                {
                                    logger.Error(errorMessage);
                                }
                                continue;
                            }
                            //if (!result1)
                            //{
                            //    continue;
                            //}
                            //new file info insert
                            System.IO.FileInfo fileinfo = new System.IO.FileInfo(backuppath);
                            monitorServerFile.monitorFileType   = Path.GetExtension(backuppath);
                            monitorServerFile.monitorFileSize   = fileinfo.Length.ToString();
                            monitorServerFile.monitorFileStatus = 4;
                            //---
                            monitorServerFolder.monitorServerID = _id;
                            monitorServerFolder.monitorFileName = Path.GetFileName(fileevent.Name);
                            monitorServerFolder.monitorFilePath = filepath.TrimEnd(("\\" + Path.GetFileName(fileevent.Name)).ToCharArray());
                            monitorServerFolder.monitorFileType = Path.GetExtension(backuppath);
                            monitorServerFolder.initFlg         = "0";
                            monitorServerFolder.monitorFlg      = "1";
                            monitorServerFolder.creater         = "admin";
                            monitorServerFolder.updater         = "admin";
                            monitorServerFolder.createDate      = CommonUtil.DateTimeNowToString();
                            monitorServerFolder.updateDate      = CommonUtil.DateTimeNowToString();
                        }
                        //重命名后文件默认为监视,添加check
                        MonitorServerFolderService.InsertMonitorServerFolder(monitorServerFolder);
                    }
                    //insert database
                    monitorServerFile.monitorServerID  = _id;
                    monitorServerFile.monitorFileName  = Path.GetFileName(fileevent.Name);
                    monitorServerFile.monitorFilePath  = backuppath;
                    monitorServerFile.monitorStartTime = CommonUtil.DateTimeNowToString();
                    monitorServerFile.transferFlg      = 0;
                    monitorServerFile.deleteFlg        = 0;
                    monitorServerFile.creater          = "exe";
                    monitorServerFile.createDate       = CommonUtil.DateTimeNowToString();
                    monitorServerFile.updater          = "exe";
                    monitorServerFile.updateDate       = CommonUtil.DateTimeNowToString();
                    MonitorServerFileService.InsertMonitorServerFile(monitorServerFile, filepath);
                    // File Info Remove
                    htfiles.Remove(file.Key);
                }
                catch (Exception e)
                {
                    logger.Error(e.Message);
                    continue;
                }
            }
        }