public void Add(PackageQuestion question, List <PackageAnswer> answer) { if (dict.ContainsKey(question)) { dict[question].AddRange(answer); events[DateTime.Now.AddSeconds(answer.First().TTL)] = question; } else { dict.Add(question, answer); events[DateTime.Now.AddSeconds(answer.First().TTL)] = question; } }
public static Storage GetStorage() { if (!File.Exists(StorageFileName)) { return(new Storage()); } try { var storage = new Storage(); var lines = File.ReadAllLines(StorageFileName); var keys = JsonConvert.DeserializeObject <List <PackageQuestion> >(lines[0]); var values = JsonConvert.DeserializeObject <List <List <PackageAnswer> > >(lines[1]); foreach (var key in keys.Select((x, i) => new KeyValuePair <PackageQuestion, List <PackageAnswer> >(x, values[i]))) { storage.Add(key.Key, key.Value); } storage.events = JsonConvert.DeserializeObject <Dictionary <DateTime, PackageQuestion> >(lines[2]); return(storage); var dictCount = int.Parse(lines[0]); for (int i = 1; i < dictCount + 1; i++) { var answerss = lines[i].Split('=').Last().Split(new[] { "&" }, StringSplitOptions.RemoveEmptyEntries); var answersss = answerss.Select(x => Encoding.UTF8.GetBytes(x)); var answers = answersss.Select(x => PackageAnswer.FromArray(x, 0)); storage.Add(PackageQuestion.FromArray(Encoding.UTF8.GetBytes(lines[i].Split('=').First()).ToArray(), 0), answers.ToList()); } var eventsCount = int.Parse(lines[dictCount + 1]); for (int i = dictCount + 2; i < eventsCount + dictCount + 2; i++) { storage.events.Add(DateTime.Parse(lines[i].Split('=').First()), PackageQuestion.FromArray(Encoding.UTF8.GetBytes(lines[i].Split('=').Last()).ToArray(), 0)); } return(storage); } catch (Exception) { throw; return(new Storage()); } }
public void SetValue(PackageQuestion q, List <PackageAnswer> l) { dict[q] = l; }
public bool ContainKey(PackageQuestion question) { return(dict.ContainsKey(question)); }
public List <PackageAnswer> Get(PackageQuestion question) { return(dict[question]); }