// using SollicitantReview.Models; // using SollicitantReview.Services; // using Microsoft.Extensions.Options; // using System; // using System.Collections.Generic; // using System.IO; // using System.Linq; // using System.Text; // using System.Threading; // using System.Threading.Tasks; // namespace SollicitantReview // { // public class SollicitantReview // { // private SollicitantReviewSettings options; // private IWriter writer; // private Queue> exportLineQueue; // public SollicitantReview(IOptions options, IWriter writer) // { // this.options = options.Value; // this.writer = writer; // this.exportLineQueue = new Queue>(); // var processExportLinesThread = new Thread(new ThreadStart(ProcessReviewExportLines)); // processExportLinesThread.Start(); // } // public void RegisterOrder(Order order) // { // DeleteOrder(order); // exportLineQueue.Enqueue(ConvertOrderToExportLines(order)); // } // private string FilterString(string value) // { // return value.Replace(";", ":"); // } // private void DeleteOrder(Order order) // { // var exportLines = new List() // { // new ReviewExportLine() // { // Type = "9", // OrderNumber = FilterString(order.OrderNumber), // Amount = "1", // UserId = FilterString(order.User), // JournalPostIndication = "Y" // } // }; // exportLineQueue.Enqueue(exportLines); // } // private List ConvertOrderToExportLines(Order order, string userId = null) // { // var exportLines = new List(); // foreach (var orderLine in order.OrderLines) // { // exportLines.Add(new ReviewExportLine() // { // OrderNumber = FilterString(order.OrderNumber), // Name = FilterString(orderLine.Name), // Amount = FilterString(orderLine.Amount), // ProductNumber = FilterString(orderLine.Number), // ProductDescription = FilterString(orderLine.Description), // UserId = userId == null ? FilterString(order.User) : userId, // Location = FilterString(orderLine.Location), // JournalPostIndication = "Y" // }); // } // return exportLines; // } // private void ProcessReviewExportLines() // { // while(true) // { // if (exportLineQueue.Any() && IsFolderEmpty(options.ReviewFolderPath)) // { // var exportLines = exportLineQueue.Dequeue(); // var randomStringLength = 7; // writer.OpenFile($"{options.ReviewFolderPath}\\{GenerateRandomString(randomStringLength)}.txt"); // foreach (var exportLine in exportLines) // { // writer.WriteLine($"{exportLine.Type};" + // $"{exportLine.OrderNumber};" + // $"{exportLine.Name};" + // $"{exportLine.Amount};" + // $"{exportLine.ProductNumber};" + // $"{exportLine.ProductDescription};" + // $"{exportLine.UserId};" + // $"{exportLine.Location};" + // $"{exportLine.JournalPostIndication};" + // $"{exportLine.Info2}"); // } // writer.CloseFile(); // } // Thread.Sleep(2000); // } // } // private bool IsFolderEmpty(string path) // { // DirectoryInfo dirInfo = new DirectoryInfo(path); // if (!dirInfo.Exists) // { // throw new CouldNotFindReviewDirectory(); // } // return !dirInfo.GetFiles("*.txt").Any(); // } // private string GenerateRandomString(int length) // { // StringBuilder stringBuilder = new StringBuilder(); // Random random = new Random(); // var ASCIIOffset = 65; // var ASCIIRange = 25; // char letter; // for (int i = 0; i < length; i++) // { // double randomDouble = random.NextDouble(); // int shift = Convert.ToInt32(Math.Floor(ASCIIRange * randomDouble)); // letter = Convert.ToChar(shift + ASCIIOffset); // stringBuilder.Append(letter); // } // return stringBuilder.ToString(); // } // } // }