Пример #1
0
 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;
     }
 }
Пример #2
0
        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());
            }
        }
Пример #3
0
 public void SetValue(PackageQuestion q, List <PackageAnswer> l)
 {
     dict[q] = l;
 }
Пример #4
0
 public bool ContainKey(PackageQuestion question)
 {
     return(dict.ContainsKey(question));
 }
Пример #5
0
 public List <PackageAnswer> Get(PackageQuestion question)
 {
     return(dict[question]);
 }