/// <summary> /// Execute the process. /// </summary> /// <param name="filePath">File path</param> /// <param name="outFileDirectory">Output file directory</param> public static void ProcessFile(string filePath, string outFileDirectory) { try { _listSalesman = new List <Salesman>(); _listClient = new List <Client>(); _listSales = new List <Sales>(); // Checks if the file is not being used by another process while (SalesAnalysisRepository.IsFileLocked(filePath)) { Thread.Sleep(1500); } string fileName = Path.GetFileNameWithoutExtension(filePath); var lines = SalesAnalysisRepository.ReadFile(filePath); ProcessLines(lines); ProcessResult(string.Concat(outFileDirectory, fileName, ".done.dat")); File.Delete(filePath); } catch (Exception ex) { throw new Exception(ex.Message); } }
/// <summary> /// Execute the process. /// </summary> /// <param name="filePath">File path</param> /// <param name="outFileDirectory">Output file directory</param> private static void ProcessResult(string outFileDirectory) { int qtdClient = _listClient.Count; int qtdSalesman = _listSalesman.Count; int maxIdSale = _listSales.MaxBy(x => x.TotalValueSale).Id; string salesmanName = _listSales.MinBy(x => x.TotalValueSale).SalesmanName; SalesAnalysisRepository.SaveData(outFileDirectory, qtdClient, qtdSalesman, maxIdSale, salesmanName); }