public async Task <string> DownloadImage(DateTime date, bool fixDate = true)
        {
            date = fixDate ? timeService.FixDate(date, "Tokyo Standard Time") : date;

            List <string> partialImages = new List <string>();

            for (int i = 0; i < Quality; i++)
            {
                for (int j = 0; j < Quality; j++)
                {
                    try
                    {
                        string path = await downloadService.Get(GetUrl(date, i, j), ($"{configService.BaseFolder}{i}_{j}.png"));

                        partialImages.Add(path);
                    }
                    catch (Exception e)
                    {
                        throw e;
                    }
                }
            }

            return(imageService.Merge(Quality, Quality, partialImages.ToArray()));
        }
        public void TestFixDate()
        {
            IServiceCollection services = new ServiceCollection();

            services.AddScoped <ISateliteTimeService, SateliteTimeService>();
            ServiceProvider.Init(services);

            ISateliteTimeService sateliteService = ServiceProvider.Locator.GetService <ISateliteTimeService>();

            DateTime now       = DateTime.Now;
            DateTime fixedDate = sateliteService.FixDate(now, "A");

            Assert.IsTrue(fixedDate.Minute % 10 == 0);
        }