using System; using System.Collections.Generic; using System.Configuration; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using TrackerLibrary.Models; namespace TrackerLibrary.DataAccess.TextHelpers { public static class TextConnectorProcessor { public static string FullFilePath(this string fileName) // PrizeModel.csv { return $"{ConfigurationManager.AppSettings["filePath"]}\\{fileName}"; } public static List LoadFile(this string file) { if (!File.Exists(file)) { return new List(); } return File.ReadAllLines(file).ToList(); } public static List ConvertToPrizeModels(this List lines) { List output = new List(); foreach (string line in lines) { string[] cols = line.Split(','); PrizeModel p = new PrizeModel(); p.Id = int.Parse(cols[0]); p.PlaceNumber = int.Parse(cols[1]); p.PlaceName = cols[2]; p.PrizeAmount = decimal.Parse(cols[3]); p.PrizePercentage = double.Parse(cols[4]); output.Add(p); } return output; } public static List ConvertToPersonModels(this List lines) { List output = new List(); foreach(string line in lines) { string[] cols = line.Split(','); PersonModel p = new PersonModel(); p.Id = int.Parse(cols[0]); p.FirstName = cols[1]; p.LastName = cols[2]; p.EmailAddress = cols[3]; p.CellPhoneNumber = cols[4]; output.Add(p); } return output; } public static void SaveToPrizeFile(this List models, string fileName) { List lines = new List(); foreach (PrizeModel p in models) { lines.Add($"{p.Id},{p.PlaceNumber},{p.PlaceName}, {p.PrizeAmount}, {p.PrizePercentage}"); } File.WriteAllLines(fileName.FullFilePath(), lines); } public static void SaveToPeopleFile(this List models, string fileName) { List lines = new List(); foreach(PersonModel p in models) { lines.Add($"{p.Id},{p.FirstName},{p.LastName},{p.EmailAddress},{p.CellPhoneNumber}"); } File.WriteAllLines(fileName.FullFilePath(), lines); } } }