Beispiel #1
0
        public void ShowInterstiatialBanner()
        {
            AdvertisementSavedData advertisementSavedData =
                ServiceLocator.Resolve <IStorageService>().ResolveData <AdvertisementSavedData>() ??
                new AdvertisementSavedData();

            if (advertisementSavedData.IsAdRemoved)
            {
                return;
            }

            ServerSettings serverSettings        = ServiceLocator.Resolve <ISettingService>().ResolveCachedServerSetting();
            string         advertisementProvider = string.Empty;

            if (serverSettings != null && serverSettings.AdvertisementSettings != null &&
                string.IsNullOrEmpty(serverSettings.AdvertisementSettings.InterstiatialBannerPriority))
            {
                if (InfoResolver.Resolve <FortInfo>().Advertisement.AdvertisementProviders != null)
                {
                    AdvertisementPriority advertisementPriority =
                        InfoResolver.Resolve <FortInfo>().Advertisement.AdvertisementProviders.FirstOrDefault(
                            priority => priority.AdvertisementProvider != null &&
                            priority.AdvertisementProvider.IsInterstitialBannerSupported);
                    if (advertisementPriority != null)
                    {
                        advertisementProvider = advertisementPriority.AdvertisementProvider.Name;
                    }
                }
            }
            if (string.IsNullOrEmpty(advertisementProvider))
            {
                if (InfoResolver.Resolve <FortInfo>().Advertisement.AdvertisementProviders != null)
                {
                    AdvertisementPriority advertisementPriority =
                        InfoResolver.Resolve <FortInfo>().Advertisement.AdvertisementProviders.Where(
                            priority =>
                            priority.AdvertisementProvider != null &&
                            priority.AdvertisementProvider.IsInterstitialBannerSupported)
                        .Select((priority, i) => new { Priority = priority, Index = i })
                        .OrderBy(
                            arg => arg.Priority.VideoPriority < 0 ? arg.Index * 10000 : arg.Priority.VideoPriority)
                        .Select(arg => arg.Priority)
                        .FirstOrDefault();
                    if (advertisementPriority != null)
                    {
                        advertisementProvider = advertisementPriority.AdvertisementProvider.Name;
                    }
                }
            }
            if (string.IsNullOrEmpty(advertisementProvider))
            {
                throw new Exception("No Advertisement provider found for Interstitial Banner");
            }
            if (InfoResolver.Resolve <FortInfo>().Advertisement.AdvertisementProviders != null)
            {
                InfoResolver.Resolve <FortInfo>().Advertisement.AdvertisementProviders.First(priority => priority.AdvertisementProvider.Name == advertisementProvider).AdvertisementProvider.ShowStandardBanner();
                ServiceLocator.Resolve <IAnalyticsService>().StatInterstitialBanner(advertisementProvider);
            }
        }
Beispiel #2
0
        private static Promise InternalUpdateServerSettings(bool showDialog)
        {
            Deferred       deferred       = new Deferred();
            ServerSettings serverSettings = new ServerSettings();

            serverSettings.ValuesDefenition = InfoResolver.Resolve <FortInfo>().ValueDefenitions;
            serverSettings.InvitationPrize  = InfoResolver.Resolve <FortInfo>().InvitationInfo.InvitationPrize;
            serverSettings.StartupBalance   = InfoResolver.Resolve <FortInfo>().StartupBalance;

            AdvertisementSettings advertisementSettings = new AdvertisementSettings();

            advertisementSettings.VideoPriority = InfoResolver.Resolve <FortInfo>().Advertisement.AdvertisementProviders.Where(
                priority =>
                priority.AdvertisementProvider != null && priority.AdvertisementProvider.IsVideoSupported)
                                                  .Select((priority, i) => new { Priority = priority, Index = i })
                                                  .OrderBy(arg => arg.Priority.VideoPriority < 0 ? arg.Index * 10000 : arg.Priority.VideoPriority)
                                                  .Select(arg => arg.Priority.AdvertisementProvider.Name)
                                                  .ToArray();
            AdvertisementPriority advertisementPriority =
                InfoResolver.Resolve <FortInfo>().Advertisement.AdvertisementProviders.Where(
                    priority =>
                    priority.AdvertisementProvider != null &&
                    priority.AdvertisementProvider.IsStandardBannerSupported)
                .Select((priority, i) => new { Priority = priority, Index = i })
                .OrderBy(
                    arg => arg.Priority.VideoPriority < 0 ? arg.Index * 10000 : arg.Priority.VideoPriority)
                .Select(arg => arg.Priority)
                .FirstOrDefault();

            if (advertisementPriority != null)
            {
                advertisementSettings.StandardBannerPriority = advertisementPriority.AdvertisementProvider.Name;
            }
            else
            {
                advertisementSettings.StandardBannerPriority = string.Empty;
            }
            advertisementPriority =
                InfoResolver.Resolve <FortInfo>().Advertisement.AdvertisementProviders.Where(
                    priority =>
                    priority.AdvertisementProvider != null &&
                    priority.AdvertisementProvider.IsInterstitialBannerSupported)
                .Select((priority, i) => new { Priority = priority, Index = i })
                .OrderBy(
                    arg => arg.Priority.VideoPriority < 0 ? arg.Index * 10000 : arg.Priority.VideoPriority)
                .Select(arg => arg.Priority)
                .FirstOrDefault();
            if (advertisementPriority != null)
            {
                advertisementSettings.InterstiatialBannerPriority = advertisementPriority.AdvertisementProvider.Name;
            }
            else
            {
                advertisementSettings.InterstiatialBannerPriority = string.Empty;
            }
            serverSettings.AdvertisementSettings = advertisementSettings;
            EditorUtility.DisplayProgressBar("Syncronizing Server settings", "Syncronizing Server settings", 0);
            InfoResolver.Resolve <FortInfo>()
            .ServerConnectionProvider.EditorConnection.Call <object>("UpdateSettings",
                                                                     new UpdateServerSettingRequest {
                ServerSettings = serverSettings
            })
            .Then(
                o =>
            {
                EditorUtility.ClearProgressBar();
                if (showDialog)
                {
                    EditorUtility.DisplayDialog("Syncronizing Server settings", "Server settings syncronization succeeded",
                                                "Ok");
                }
                deferred.Resolve();
            }, error =>
            {
                EditorUtility.ClearProgressBar();
                deferred.Reject();
                throw new Exception("Server settings syncronization failed");
            });
            return(deferred.Promise());
        }