Esempio n. 1
0
 /// <summary>
 /// Initializes SreFileSystemWatcher with a file watcher to keep an eye on specific pull folder(taken from keys)
 /// </summary>
 /// <param name="dataSourceId">DataSource Id</param>
 /// <param name="keys">The keys of data source</param>
 public SreFileSystemWatcher(int dataSourceId, List <IdpeKey> keys)
 {
     this.DataSourceId = dataSourceId;
     this.Keys         = keys;
     this.LocalFileSystemFolderPullFolder = DataSource.GetPullFolder(dataSourceId, keys);
     this.LocalFileSystemFolderArchive    = DataSource.GetArchiveFolder(dataSourceId, keys);
 }
Esempio n. 2
0
        /// <summary>
        /// This method will get called for each file found within the zip file.
        /// </summary>
        /// <param name="unzippedFileName">Un zipped full file name</param>
        /// <param name="onlyFileName">Un zipped file name</param>
        /// <param name="extension">file extension</param>
        /// <param name="fileStatus">file status</param>
        public virtual void Handle(string unzippedFileName, string onlyFileName, string extension, FileStatus fileStatus)
        {
            string destFileName = string.Empty;
            string zipId        = string.Empty;

            unzippedFileName = ExtractActualFileName(unzippedFileName);
            zipId            = ExtractUniqueId(onlyFileName);

            ExtensionMethods.TraceInformation("Actual name = '{0}', zip id = '{1}', extension = '{2}', and status = '{3}'",
                                              Path.GetFileName(unzippedFileName), zipId, extension, fileStatus);


            switch (fileStatus)
            {
            case FileStatus.Process:

                destFileName = Path.Combine(DataSource.GetArchiveFolder(DataSourceId, DataSourceKeys), onlyFileName);
                Registry.Instance.Pullers._LocalFileSystemWatcher.Process(unzippedFileName, onlyFileName, this.DataSourceId);
                break;

            case FileStatus.IgnoreMoveToOutput:

                AddIgnoredFileCountToZipFileInfo(zipId);
                //moving to output
                string myOutputFolder = Path.Combine(DataSource.GetOutputFolder(DataSourceId, DataSourceKeys), zipId);
                if (!Directory.Exists(myOutputFolder))
                {
                    Directory.CreateDirectory(myOutputFolder);
                }

                destFileName = string.Format("{0}\\{1}", myOutputFolder, onlyFileName);
                destFileName = ExtractActualFileName(destFileName);

                if (File.Exists(destFileName))
                {
                    string buName = Path.Combine(OutputFolder, string.Format("{0}_{1}", RenamedToIdentifier, onlyFileName));
                    new FileUtility().FileCopy(destFileName, buName, true);     //backup existing
                }

                new FileUtility().FileCopy(unzippedFileName, destFileName, false);      //ignored and copied to output folder
                List <IdpeKey> appKeys = _datasourceKeys;
                if (appKeys == null)
                {
                    appKeys = Cache.Instance.Bag[DataSourceId + ".keys"] as List <IdpeKey>;
                }
                Registry.Instance.Pullers.InvokeFileProcessed(this.DataSourceId, string.Empty, appKeys,
                                                              destFileName, DataSource.GetOutputFolder(DataSourceId, DataSourceKeys), this.ZipUniqueId);

                break;

            case FileStatus.Ignore:

                AddIgnoredFileCountToZipFileInfo(zipId);
                break;

            default:
                throw new Exception("'fileStatus' can be set either to 'Ignore' or 'IgnoreMoveToOutput'!");
            }
        }
Esempio n. 3
0
        public void Process()
        {
            string onlyFileName = string.Format("{0}{1}", Path.GetFileNameWithoutExtension(FileName), ".csv");
            string flatFileName = Path.Combine(DataSource.GetArchiveFolder(DataSource.Id, DataSource.Keys), onlyFileName);

            TransformEDIToFlat(flatFileName);
            Registry.Instance.Pullers._LocalFileSystemWatcher.Process(flatFileName, onlyFileName, DataSource.Id, false);
        }