public IEnumerable <Person> ReadAll() { if (_cachePeople.Count > 0) { return(_cachePeople); } var text = File.ReadAllText(CSVFilePath); ; //just a hack, not suitable to be honest. var members = text.Split(",").Select(x => x.Trim()).ToList(); int counter = 0; string[] items = new string[6]; for (int i = 0; i < members.Count(); i++) { var j = i % 4; switch (j) { case 0: items[0] = members[i]; break; case 1: items[1] = members[i]; break; case 2: items[2] = members[i].Split(" ")[0]; items[3] = members[i].Split(" ")[1]; break; case 3: { if (members[i].Contains("\r\n")) { var val = members[i]; int index = members.IndexOf(val); members.Insert(index, val.Split("\r\n")[0]); members[index + 1] = val.Split("\r\n")[1]; } items[4] = (members[i]); items[5] = counter++.ToString(); _cachePeople.Add(UtilPerson.FromString(items[5], items[1], items[0], items[2], items[3], items[4])); } break; } } return(_cachePeople); }
public bool WriteAll(IEnumerable <Person> people) { StringBuilder sb = new StringBuilder(); foreach (var item in people) { item.Id = -1; item.FavColour = UtilColor.Colors.FirstOrDefault(f => f.Id == item.FavColourId); //just to keep things in sync with Entity, Dumb hack sb.Append(UtilPerson.FromPerson(item)); } File.AppendAllText(CSVFilePath, sb.ToString()); _cachePeople.Clear(); return(true); }