예제 #1
0
 public void AddImageInCache(CachedElement element)
 {
     if (currentIndex >= cachedElements.Length)
     {
         currentIndex = 0;
     }
     cachedElements[currentIndex++] = element;
 }
예제 #2
0
 public ImageCache(int size)
 {
     cachedElements = new CachedElement[size];
     for (int i = 0; i < cachedElements.Length; i++)
     {
         cachedElements[i] = new CachedElement();
     }
     currentIndex = 0;
 }
예제 #3
0
        public CachedElement FindImage(ulong id)
        {
            CachedElement result = null;

            for (int i = 0; i < cachedElements.Length && result == null; i++)
            {
                if (cachedElements[i].MessageId == id)
                {
                    result = cachedElements[i];
                }
            }
            return(result);
        }
예제 #4
0
 public static async Task CacheImageAsync(List <string> urls, List <string> fileNames, ulong messageId)
 {
     if (fileNames.Count == urls.Count)
     {
         CachedElement result = new CachedElement()
         {
             MessageId = messageId
         };
         for (int i = 0; i < fileNames.Count; i++)
         {
             result.Files.Add(new CachedFile()
             {
                 File = ConvertImageTo64(await DownloadImageAsync(urls[i])), FileName = fileNames[i]
             });
         }
         cache.AddImageInCache(result);
     }
 }