async Task CheckAppConfiguration()
 {
     //try to get configuration
     configuration = appServices.GetConfiguration();
     // init configuration if it's empty ( use default api key & user current location etc ..)
     if (string.IsNullOrEmpty(configuration.APIKey))
     {
         await appServices.InitConfiguration(configuration);
     }
     //run synchronization if exist
     if (configuration.synchronization)
     {
         refreshTimer = new Timer(async(e) =>
         {
             if (canRefresh)
             {
                 await vm.BuildCompleteViewModel();
             }
             canRefresh = true;
         }, null, 0, (int.Parse(configuration.duration)) * 60 * 1000);
     }
     // run animation id exist
     if (configuration.runAnimation)
     {
         animationTimer = new Timer((e) =>
         {
             UIServices.ScaleImage(weatherImage);
         }, null, 0, AppConstants.AnimationDuration);
     }
 }