Пример #1
0
        static void Main(string[] args)
        {
            //Check required parameters
            if (CheckRequiredParameters())
            {
                // Searches all files .dat and process them
                string pathIn = Environment.ExpandEnvironmentVariables(ConfigurationManager.AppSettings["FolderIn"]);

                if (Directory.Exists(pathIn))
                {
                    var dir = new DirectoryInfo(pathIn);

                    var files = dir.GetFiles("*dat", SearchOption.AllDirectories);

                    // Collections files data
                    List <Consumer> consumers = new List <Consumer>();
                    List <Salesman> salesman  = new List <Salesman>();
                    List <Sale>     sales     = new List <Sale>();

                    Salesman modelSalesman = new Salesman(ConfigurationManager.AppSettings["FieldSeparator"]);
                    Consumer modelConsumer = new Consumer(ConfigurationManager.AppSettings["FieldSeparator"]);
                    Sale     modelSale     = new Sale(ConfigurationManager.AppSettings["FieldSeparator"]);

                    foreach (var file in files)
                    {
                        try
                        {
                            var fileContent = File.ReadAllText(file.FullName);
                            var lines       = fileContent.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);

                            if (lines.Length > 0)
                            {
                                var linesSalesmans = lines.Where(x => x.Substring(0, 3) == "001");
                                modelSalesman.PopulateSalesman(linesSalesmans, ref salesman);

                                var linesConsumers = lines.Where(x => x.Substring(0, 3) == "002");
                                modelConsumer.PopulateConsumer(linesConsumers, ref consumers);

                                var linesSales = lines.Where(x => x.Substring(0, 3) == "003");
                                modelSale.PopulateSale(linesSales, ref sales);

                                CreateFileResult(file.Name.Replace(file.Extension, ""), consumers, salesman, sales);

                                // Move file to processed path
                                if (!Directory.Exists(pathIn + "\\processed\\"))
                                {
                                    Directory.CreateDirectory(pathIn + "\\processed\\");
                                }
                                file.MoveTo(pathIn + "\\processed\\" + file.Name);
                            }
                        } catch (Exception error)
                        {
                            // Move file to error path
                            if (!Directory.Exists(pathIn + "\\error\\"))
                            {
                                Directory.CreateDirectory(pathIn + "\\error\\");
                            }
                            file.MoveTo(pathIn + "\\error\\" + file.Name);

                            ErrorWrite();
                        }
                    }
                }
            }
            else
            {
                ErrorWrite();
            }
        }