Exemplo n.º 1
0
        public static ResultViewModel ProcessFile(IFileProcessHandler fileHandler, IDataLogicProcessor datalogic)
        {
            var stream          = fileHandler.GetMemoryStremFromFile();
            var result          = fileHandler.ProcessStreamData(stream);
            var frequencyresult = datalogic.SortNameByFrequencyAndAlphabet(result.Item1);
            var addressresult   = datalogic.SortAddressByAlphabet(result.Item2);

            return(new ResultViewModel()
            {
                FrequencyItem = frequencyresult,
                AddressItem = addressresult
            });
        }
Exemplo n.º 2
0
        public static void Main(string[] args)
        {
            Console.WriteLine("*****************************************************");
            Console.WriteLine("This project using the embeded data.csv file in case no file or location provided");
            Console.WriteLine("*****************************************************");
            DirectoryInfo dirinfo = null;

            FileInfo[] files           = null;
            bool       isCSVFilesExist = false;

            while (!isCSVFilesExist)
            {
                dirinfo = AskFileLocation();
                if (!dirinfo.Exists)
                {
                    Console.WriteLine("Directory {0} does not exist.", dirinfo.FullName);
                    Console.WriteLine();
                    continue;
                }
                files = CheckForCSVFilesInDirectory(dirinfo);
                if (files.Length == 0)
                {
                    Console.WriteLine("no csv file fount at {0}", dirinfo.FullName);
                    Console.WriteLine();
                }
                else
                {
                    isCSVFilesExist = true;
                }
            }
            bool isValidFileSelected = false;
            int  selectedFileId      = -1;

            while (!isValidFileSelected)
            {
                int counter = 1;
                Console.WriteLine("Please enter a number in front of the corrospoding file to select");
                foreach (var file in files)
                {
                    Console.WriteLine("{0} - {1}", counter++, file.Name);
                }
                --counter;//decrease the additonl counter to maintain the index;

                int.TryParse(Console.ReadLine(), out selectedFileId);
                if (selectedFileId > counter || selectedFileId <= 0)
                {
                    continue;
                }
                isValidFileSelected = true;
            }

            var           selectedFile = files[--selectedFileId];
            IFileInfoWrap wrapperFile  = new FileInfoWrap(selectedFile);

            Console.WriteLine("Ok! processing ({0}) file.", selectedFile);
            fileLocation = dirinfo.FullName;

            //IOC Resolver
            var container = UnityResolver.UnityRegisterTypes();
            IFileProcessHandler fileHandler = container.Resolve <IFileProcessHandler>(new ParameterOverride("fileInfo", wrapperFile));
            IDataLogicProcessor datalogic   = container.Resolve <IDataLogicProcessor>();

            var result = ProcessFile(fileHandler, datalogic);

            PrintResultOnCosole(result);
            CreateFile("FrequencyFile.txt", result.FrequencyItem, fileHandler);
            CreateFile("AddressFile.txt", result.AddressItem, fileHandler);
            Console.WriteLine();
            Console.WriteLine("********Files are saved at ({0}).**********", fileLocation);

            Console.ReadLine();
        }