public ActionResult LogOn(LogOnModel model, string returnUrl) { if (ModelState.IsValid) { if (ValidateLogOn(model.UserName, model.Password)) { // Make sure we have the username with the right capitalization // since we do case sensitive checks for OpenID Claimed Identifiers later. string userName = MembershipService.GetCanonicalUsername(model.UserName); FormsAuth.SignIn(userName, model.RememberMe); //Jamie AdProvider adProvider = new AdProvider(); String catagory = adProvider.GetCatagory(userName); Session["adUri"] = "/Content/images/" + catagory + ".png"; // Make sure we only follow relative returnUrl parameters to protect against having an open redirector if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) { return(Redirect(returnUrl)); } else { return(RedirectToAction("Index", "Home")); } } else { ModelState.AddModelError("", "The user name or password provided is incorrect."); } } return(View(model)); }
/// <summary> /// Check the doddgy if statement /// </summary> /// <param name="localDocket"></param> /// <param name="currentStore"></param> /// <returns></returns> public static void insertNonRewardsDocket(AdProvider.LocalDocket localDocket, Store currentStore) { try { Docket existingDocket = Docket.GetDocketByLocalIDAndStore(localDocket.local_id, currentStore.store_id); if (existingDocket != null && existingDocket.DocketItemsBydocket_.Count() == 0) { foreach (AdProvider.LocalDocketItem item in localDocket.itemList) { DocketItem newItem = existingDocket.CreateDocketItem(); newItem.product_code = item.product_code; newItem.product_barcode = item.product_barcode; newItem.department = item.department; newItem.category = item.category; newItem.description = item.description; newItem.cost_ex = item.cost_ex; newItem.sale_ex = item.sale_ex; newItem.sale_inc = item.sale_inc; newItem.quantity = item.quantity; newItem.Save(); } } else { Docket newDocket = Docket.CreateDocket(); newDocket.local_id = localDocket.local_id; newDocket.code = Helpers.GenerateFiveDigitRandom(); newDocket.store_id = currentStore.store_id; newDocket.creation_datetime = localDocket.creation_datetime; newDocket.raw_content = Helpers.DecodeFromBase64(localDocket.receipt_content); newDocket.total = localDocket.total; newDocket.reward_points = 0; newDocket.Save(); newDocket.Refresh(); foreach (AdProvider.LocalDocketItem item in localDocket.itemList) { DocketItem newItem = newDocket.CreateDocketItem(); newItem.product_code = item.product_code; newItem.product_barcode = item.product_barcode; newItem.department = item.department; newItem.category = item.category; newItem.description = item.description; newItem.cost_ex = item.cost_ex; newItem.sale_ex = item.sale_ex; newItem.sale_inc = item.sale_inc; newItem.quantity = item.quantity; newItem.Save(); } } } catch (Exception ex) { throw ex; } }
public async Task <string> Invalidate(AdProvider adProvider) { if (!IsAdRotatorEnabled) { OnLog(AdRotatorControlID, "Control is not enabled"); return("Control Disabled"); } if (adProvider == null) { adRotatorControl.GetAd(null); return("No Provider set"); } if (adProvider.AdProviderType == AdType.None) { return(adRotatorControl.AdsFailed()); } if (SlidingAdDirection != AdSlideDirection.None && !_slidingAdTimerStarted) { _slidingAdTimerStarted = true; ResetSlidingAdTimer(SlidingAdDisplaySeconds); } //(SJ) should we make this call the GetAd function? or keep it seperate //Isn't the aim of the GetAd function to return an ad to display or would this break other implementations? object providerElement = null; try { if (adProvider.AdProviderType == AdType.DefaultHouseAd) { var defaultHouseAd = new DefaultHouseAd(AdRotatorControlID, fileHelper); //houseAd.AdLoaded += (s, e) => adRotatorControl.OnAdAvailable(AdType.DefaultHouseAd); defaultHouseAd.AdLoadingFailed += (s, e) => adRotatorControl.AdFailed(AdType.DefaultHouseAd); defaultHouseAd.AdClicked += (s, e) => OnDefaultHouseAdClicked(); var defaultHouseAdBody = string.IsNullOrEmpty(adProvider.SecondaryId) ? DefaultHouseAdBody : adProvider.SecondaryId; var defaultHouseAdURI = string.IsNullOrEmpty(adProvider.AppId) ? DefaultHouseAdURI : adProvider.AppId; providerElement = await defaultHouseAd.Initialise(defaultHouseAdBody, defaultHouseAdURI); } else { providerElement = adRotatorControl.GetProviderFrameworkElement(CurrentPlatform, adProvider); } } catch { adRotatorControl.AdFailed(adProvider.AdProviderType); return("Ad Failed to initialise"); } if (providerElement == null) { adRotatorControl.AdFailed(adProvider.AdProviderType); return("No Ad Returned"); } AdRotatorRoot.Child = null; AdRotatorRoot.Child = (FrameworkElement)providerElement; return(adProvider.AdProviderType.ToString()); }
async void adRotatorControl_AdAvailable(AdProvider adProvider) { #if WINDOWS_PHONE await Dispatcher.InvokeAsync(() => Invalidate(adProvider)); #else await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => Invalidate(adProvider)); #endif }
protected void OnAdAvailable(AdProvider adProvider) { if (AdAvailable != null) { OnLog(string.Format("Trying provider {0}", adProvider.AdProviderType)); AdAvailable(adProvider); } }
public AdProviderDelegate(AdProvider provider, string zone, int floor) { _provider = provider; NetworkId = _provider.NetworkId; Zone = Observable.Return(zone).ToReadOnlyReactiveProperty(); FloorValue = (from r in AdsReady select r ? floor : 0).ToReadOnlyReactiveProperty(); MaxFloor = floor; }
internal void OnAdAvailable(AdProvider adProvider) { if (AdAvailable != null) { OnLog(string.Format("Trying provider {0}", adProvider.AdProviderType)); TryTrackAnaltics(adProvider.AdProviderType); AdAvailable(adProvider); } }
public void GetCatagoryUsingValidValue_ReturnsExpected() { String fileUri = "Data/nameLookup.csv"; var userName = "******"; AdProvider adProvider = new AdProvider(fileUri); var actual = adProvider.GetCatagory(userName); var expected = "MiddleAged Male"; Assert.AreEqual(expected, actual); }
protected void preload(AdProvider provider) { if (provider.AdsReady.Value) { this.debug("Got inventory from " + provider.ProviderInfo() + ", not going to preload. "); return; } this.debug("Preloading for " + provider.ProviderInfo()); provider.TryToCache(); }
internal void OnAdAvailable(AdProvider adProvider) { if (AdAvailable != null) { OnLog(string.Format("Trying provider {0}", adProvider.AdProviderType)); if (TrackAnalytics != null) { TrackAnalytics(adProvider.AdProviderType, "Displaying ad"); } AdAvailable(adProvider); } }
protected void bindSinglePreloader(AdProvider provider) { (from r in provider.AdsReady where !r select r into _ select Observable.Return(0L).Concat(Observable.Interval(TimeSpan.FromSeconds(preloadNotAvailableWaitingPeriod))).TakeUntil(from r in provider.AdsReady where r select r)).Subscribe(delegate { preload(provider); }).AddTo(_disposable); }
private void Show2Ads() { if (ap1 == AdProvider.ADMOB && ap2 == AdProvider.CHARTBOOST) { if (apFor2 == AdProvider.ADMOB) { admobManager.ShowInterstitial(); admobManager.RequestInterstitial(); apFor2 = AdProvider.CHARTBOOST; } else if (apFor2 == AdProvider.CHARTBOOST) { chartboostManager.ShowInterstitial(); chartboostManager.RequestInterstitial(); apFor2 = AdProvider.ADMOB; } } else if (ap1 == AdProvider.CUSTOM && ap2 == AdProvider.CHARTBOOST) { if (apFor2 == AdProvider.CUSTOM) { customAdsManager.ShowInterstitial(); apFor2 = AdProvider.CHARTBOOST; } else if (apFor2 == AdProvider.CHARTBOOST) { chartboostManager.ShowInterstitial(); chartboostManager.RequestInterstitial(); apFor2 = AdProvider.CUSTOM; } } else if (ap1 == AdProvider.CUSTOM && ap2 == AdProvider.ADMOB) { if (apFor2 == AdProvider.CUSTOM) { customAdsManager.ShowInterstitial(); apFor2 = AdProvider.ADMOB; } else if (apFor2 == AdProvider.ADMOB) { admobManager.ShowInterstitial(); admobManager.RequestInterstitial(); apFor2 = AdProvider.CUSTOM; } } }
async void adRotatorControl_AdAvailable(AdProvider adProvider) { #if WINDOWS_PHONE await Dispatcher.InvokeAsync(() => Invalidate(adProvider)); #else if (Window.Current != null) { var dispatcher = Window.Current.Dispatcher; if (dispatcher.HasThreadAccess) { await Invalidate(adProvider); } else { await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => Invalidate(adProvider)); } } #endif }
public string Invalidate(AdProvider adProvider) { if (adProvider == null) { adRotatorControl.GetAd(null); return("No Provider set"); } if (adProvider.AdProviderType == AdType.None) { return(adRotatorControl.AdsFailed()); } if (SlidingAdDirection != AdSlideDirection.None && !_slidingAdTimerStarted) { _slidingAdTimerStarted = true; ResetSlidingAdTimer(SlidingAdDisplaySeconds); } //(SJ) should we make this call the GetAd function? or keep it seperate //Isn't the aim of the GetAd function to return an ad to display or would this break other implementations? object providerElement = null; try { providerElement = adRotatorControl.GetProviderFrameworkElement(CurrentPlatform, adProvider); } catch { adRotatorControl.AdFailed(adProvider.AdProviderType); return("Ad Failed to initialise"); } if (providerElement == null) { adRotatorControl.AdFailed(adProvider.AdProviderType); return("No Ad Returned"); } AdRotatorRoot.Children.Clear(); AdRotatorRoot.Children.Add((FrameworkElement)providerElement); return(adProvider.AdProviderType.ToString()); }
public string Invalidate(AdProvider adProvider) { if (adProvider == null) { adRotatorControl.GetAd(null); return("No Provider set"); } if (adProvider.AdProviderType == AdType.None) { return(adRotatorControl.AdsFailed()); } //(SJ) should we make this call the GetAd function? or keep it seperate //Isn't the aim of the GetAd function to return an ad to display or would this break other implementations? object providerElement = null; try { providerElement = adRotatorControl.GetProviderFrameworkElement(CurrentPlatform, adProvider); } catch { adRotatorControl.AdFailed(adProvider.AdProviderType); return("Ad Failed to initialise"); } if (providerElement == null) { adRotatorControl.AdFailed(adProvider.AdProviderType); return("No Ad Returned"); } Dispatcher.BeginInvoke(() => { AdRotatorRoot.Children.Clear(); AdRotatorRoot.Children.Add((FrameworkElement)providerElement); OnLog(string.Format("Displaying ads for {0}", adProvider.AdProviderType)); }); return(adProvider.AdProviderType.ToString()); }
private IEnumerator HideBannerCo() { while (!customAdsManager.IsSchemeFetched && !customAdsManager.SchemeError) { yield return(null); } if (bannersList != null) { if (bannersList.Count == 1) { if (bannersList [0] == AdProvider.CUSTOM) { customAdsManager.HideBanner(); } else if (bannersList [0] == AdProvider.ADMOB) { Debug.Log("Hiding admob banner."); admobManager.HideBanner(); } } else if (bannersList.Count == 2) { if (currentBanner == AdProvider.CUSTOM) { customAdsManager.HideBanner(); currentBanner = AdProvider.ADMOB; } else if (currentBanner == AdProvider.ADMOB) { Debug.Log("Hiding admob banner."); admobManager.HideBanner(); currentBanner = AdProvider.CUSTOM; } } } }
public UploaderResponse UploadDocket(int storeID, string password, AdProvider.LocalDocket localDocket) { var newResponse = new UploaderResponse(); try { Store current_store = Store.GetStore(storeID); if (current_store == null) { newResponse.is_error = true; newResponse.errorMessage = "NoStore"; } else { if (password != current_store.password) { newResponse.is_error = true; newResponse.errorMessage = "IncorrectPassword"; } else { try { insertNonRewardsDocket(localDocket, current_store); } catch (Exception ex) { LogHelper.WriteError(ex.ToString()); } } } } catch (Exception ex) { newResponse.is_error = true; newResponse.errorMessage = "GenericError"; LogHelper.WriteError(ex.ToString()); } return newResponse; }
private void SyncCustomers() { Cursor.Current = Cursors.WaitCursor; try { //Check if all fields are filled. if ((StoreIDtextBox.Text == "") || (PasswordTextBox.Text == "")) { RewardsErrorLabel.Text = "Store ID or Password are empty"; return; } CustomerUpdate newUpdate = new CustomerUpdate(); newUpdate.store_id = Convert.ToInt32(StoreIDtextBox.Text); newUpdate.password = PasswordTextBox.Text; switch (Properties.Settings.Default.POSSoftware) { case "MYOB": newUpdate.customerList = MYOBRewards.GetRecentlyModifiedCustomers().ToArray(); break; case "Microsoft": if(TestSQLConnection(MicrosoftLocationTextBox.Text, MicrosoftDBTextBox.Text, MicrosoftUserTextBox.Text, MicrosoftPasswordTextBox.Text)) { newUpdate.customerList = MicrosoftRewards.GetRecentlyModifiedCustomers().ToArray(); } break; } if (newUpdate.customerList.Count() == 0) { AddLog("No customers need to be updated.", false); } else { AdProvider provider = new AdProvider(); provider.Url = WebServiceTextBox.Text; provider.Timeout = 100000000; CustomerUpdateResponse newResponse = provider.UpdateCustomers(newUpdate); if (newResponse.is_error) { AddLog(newResponse.status,true); RewardsErrorLabel.Text = newResponse.status; } else { RewardsErrorLabel.Text = newResponse.status; foreach (string item in newResponse.responses) { string entry = item; lbLog.AppendText(entry + "\r\n"); } } } } catch (Exception ex) { AddLog(ex.ToString(),true); RewardsErrorLabel.Text = "An error has occurred.Check the log to the left."; } Cursor.Current = Cursors.Default; }
private void ProcessUnsentDockets() { try { List<LocalDocket> unsentDockets = new List<LocalDocket>(); switch (Properties.Settings.Default.POSSoftware) { case "MYOB": unsentDockets = MYOBRewards.GetUnsentDockets(); break; case "Microsoft": if(TestSQLConnection(MicrosoftLocationTextBox.Text, MicrosoftDBTextBox.Text, MicrosoftUserTextBox.Text, MicrosoftPasswordTextBox.Text)) { unsentDockets = MicrosoftRewards.GetUnsentDockets(); } break; } AdProvider provider = new AdProvider(); provider.Url = WebServiceTextBox.Text; foreach(LocalDocket item in unsentDockets) { try { AdRequest newRequest = HydrateAdRequest(); newRequest.currentDocket = item; AdResponse newResponse = provider.InsertUnsentDocket(newRequest); if(newResponse.is_error == false) { AddLog("Offline Docket #:" + item.local_id.ToString() + "sent to Docketplace successfully",false); RewardsHelper.DeleteSentDocket(item.local_id); } else { AddLog("Error sending docket:"+item.local_id,true); } } catch(System.Net.WebException ex) { AddLog("No internet",true); } catch(Exception ex) { AddLog(ex.ToString(),true); } finally { AddLog("Customer sync complete",false); } } } catch(Exception ex) { AddLog(ex.ToString(),true); } }
/// <summary> /// Method called to request an the ad. /// </summary> private void printCoupon(bool is_test, string receiptContent, AdRequest new_request) { //Get the selected OPOS printer from list. var selectedPrinter = from d in printerList where d.ServiceObjectName == OPOSListcomboBox.SelectedItem.ToString() select d; PosPrinter actualPrinter = (PosPrinter)posExplorer.CreateInstance(selectedPrinter.ElementAt(0)); string test = actualPrinter.ToString(); AddLog("Printer found",false); try { if (actualPrinter != null) { actualPrinter.Open(); AddLog("Printer opened",false); actualPrinter.Claim(5000); actualPrinter.DeviceEnabled = true; actualPrinter.RecLetterQuality = true; AdProvider provider = new AdProvider(); AdResponse new_response = new AdResponse(); provider.Url = WebServiceTextBox.Text; //Call web service if (is_test) { new_response = provider.TestConnection(new_request); } else { new_response = provider.RequestAd(new_request); } if (new_response.is_error) { AddLog(new_response.status,false); RewardsHelper.SaveLastDocket(new_request.currentDocket); PrintLocalDefaultImage(actualPrinter); } else { if (new_response.adList.Count() == 0) { PrintLocalDefaultImage(actualPrinter); } else { int placedad_id = 0; if (!is_test) { placedad_id = new_response.placedad_id; } actualPrinter.PrintNormal(PrinterStation.Receipt, new_response.header); foreach (AdImage item in new_response.adList) { actualPrinter.PrintNormal(PrinterStation.Receipt, "\r\n"); Bitmap ADimg = Helpers.ConvertPNGDataToBitmap(item.imageData); string directory = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); string fileName = directory + @"/temp.bmp"; ADimg.Save( fileName, ImageFormat.Bmp); actualPrinter.PrintBitmap(PrinterStation.Receipt, fileName, PosPrinter.PrinterBitmapAsIs, PosPrinter.PrinterBitmapCenter); actualPrinter.PrintNormal(PrinterStation.Receipt, "\r\n"); actualPrinter.PrintNormal(PrinterStation.Receipt, item.footer); } actualPrinter.PrintNormal(PrinterStation.Receipt, "\r\n\r\nPowered by www.docketplace.com.au"); actualPrinter.PrintNormal(PrinterStation.Receipt, "\r\n\r\n\r\n\r\n\r\n\r\n"); actualPrinter.CutPaper(10); actualPrinter.DeviceEnabled = false; AddLog("Internet Image printed\t" + placedad_id + "\r\n",false); } } } } catch (System.Net.WebException ex) { //If its a test print failure display a message otherwise print out the default coupon. if (is_test) { TestStoreConnectionErrorLabel.Text = "No internet connection"; } else { throw ex; } } catch(Exception ex) { TestStoreConnectionErrorLabel.Text = "Error with printer , check to see if switched on"; AddLog(ex.ToString(),true); } finally { if (actualPrinter.Claimed) { actualPrinter.Release(); } actualPrinter.Close(); } }
private void addProviderDelegate(List <FlooredAdProvider> ps, AdProvider provider, string zone, int floor) { provider.Init(); ps.Add(new AdProviderDelegate(provider, zone, floor)); }
internal object GetProviderFrameworkElement(AdRotator.AdProviderConfig.SupportedPlatforms platform, AdProvider adProvider) { var provider = adProvider.AdProviderConfigValues[platform]; Type providerType = null; object instance; try { if (PlatformAdProviderComponents.ContainsKey(adProvider.AdProviderType)) { providerType = PlatformAdProviderComponents[adProvider.AdProviderType]; } else { providerType = reflectionHelper.TryGetType(provider.AssemblyName, provider.ElementName); } } catch (PlatformNotSupportedException) { AdFailed(adProvider.AdProviderType); } if (providerType == null) { return(null); } try { instance = Activator.CreateInstance(providerType); if (provider.ConfigurationOptions.ContainsKey(AdProviderConfig.AdProviderConfigOptions.AppId)) { reflectionHelper.TrySetProperty(instance, provider.ConfigurationOptions[AdProviderConfig.AdProviderConfigOptions.AppId], adProvider.AppId.ToString()); } if (provider.ConfigurationOptions.ContainsKey(AdProviderConfig.AdProviderConfigOptions.SecondaryId)) { reflectionHelper.TrySetProperty(instance, provider.ConfigurationOptions[AdProviderConfig.AdProviderConfigOptions.SecondaryId], adProvider.SecondaryId.ToString()); } if (provider.ConfigurationOptions.ContainsKey(AdProviderConfig.AdProviderConfigOptions.AdType)) { reflectionHelper.TrySetProperty(instance, provider.ConfigurationOptions[AdProviderConfig.AdProviderConfigOptions.AdType], "IaAdType_Banner"); } if (provider.ConfigurationOptions.ContainsKey(AdProviderConfig.AdProviderConfigOptions.IsTest)) { reflectionHelper.TrySetProperty(instance, provider.ConfigurationOptions[AdProviderConfig.AdProviderConfigOptions.IsTest], adProvider.IsTest.ToString()); } if (provider.ConfigurationOptions.ContainsKey(AdProviderConfig.AdProviderConfigOptions.AdWidth)) { reflectionHelper.TrySetProperty(instance, provider.ConfigurationOptions[AdProviderConfig.AdProviderConfigOptions.AdWidth], AdWidth.ToString()); } if (provider.ConfigurationOptions.ContainsKey(AdProviderConfig.AdProviderConfigOptions.AdHeight)) { reflectionHelper.TrySetProperty(instance, provider.ConfigurationOptions[AdProviderConfig.AdProviderConfigOptions.AdHeight], AdHeight.ToString()); } if (provider.ConfigurationOptions.ContainsKey(AdProviderConfig.AdProviderConfigOptions.Size)) { reflectionHelper.TrySetProperty(instance, provider.ConfigurationOptions[AdProviderConfig.AdProviderConfigOptions.Size], AdWidth.ToString() + "x" + AdHeight.ToString()); } #if DEBUG if (provider.ConfigurationOptions.ContainsKey(AdProviderConfig.AdProviderConfigOptions.ShowErrors)) { reflectionHelper.TrySetProperty(instance, provider.ConfigurationOptions[AdProviderConfig.AdProviderConfigOptions.ShowErrors], "true"); } #endif if (provider.ConfigurationOptions.ContainsKey(AdProviderConfig.AdProviderConfigOptions.AdSuccessEvent)) { WireUpDelegateEvent(instance, provider.ConfigurationOptions[AdProviderConfig.AdProviderConfigOptions.AdSuccessEvent], string.Format("Ads served for: {0}", _settings.CurrentAdType.ToString())); } if (provider.ConfigurationOptions.ContainsKey(AdProviderConfig.AdProviderConfigOptions.AdFailedEvent)) { WireUpDelegateEvent(instance, provider.ConfigurationOptions[AdProviderConfig.AdProviderConfigOptions.AdFailedEvent], string.Format("Ad failed request for: {0}", _settings.CurrentAdType.ToString())); } if (provider.ConfigurationOptions.ContainsKey(AdProviderConfig.AdProviderConfigOptions.AdClickedEvent)) { WireUpDelegateEvent(instance, provider.ConfigurationOptions[AdProviderConfig.AdProviderConfigOptions.AdClickedEvent], string.Format("Ad clicked for: {0}", _settings.CurrentAdType.ToString())); } if (provider.ConfigurationOptions.ContainsKey(AdProviderConfig.AdProviderConfigOptions.StartMethod)) { reflectionHelper.TryInvokeMethod(providerType, instance, provider.ConfigurationOptions[AdProviderConfig.AdProviderConfigOptions.StartMethod]); } } catch (PlatformNotSupportedException) { OnLog(string.Format("Configured provider {0} not found in this installation", adProvider.AdProviderType.ToString())); AdFailed(adProvider.AdProviderType); return(null); } catch (NotImplementedException) { OnLog(string.Format("Configured provider {0} is not fully implemented yet", adProvider.AdProviderType.ToString())); AdFailed(adProvider.AdProviderType); return(null); } catch (Exception e) { OnLog(string.Format("General exception [{0}] occured, continuing", e.InnerException.ToString())); AdFailed(adProvider.AdProviderType); return(null); } OnLog(string.Format("Ad created for provider {0}", adProvider.AdProviderType.ToString())); return(instance); }
/// <summary> /// Initializes a new instance of AppSettings. /// </summary> public AppSettings() { this.SettingsUrl = ""; //this.DefaultSettingsFileUri = "defaultAdSettings.xml"; this.DefaultAdType = AdProvider.None; this.DefaultHouseAdBody = ""; this.DefaultHouseAdUri = ""; this.IsTest = false; }
/// <summary> /// Initializes a new instance of AppSettings. /// </summary> /// <param name="src">Settings to clone.</param> public AppSettings(AppSettings src) { this.SettingsUrl = src.SettingsUrl; //this.DefaultSettingsFileUri = src.DefaultSettingsFileUri; this.DefaultAdType = src.DefaultAdType; this.DefaultHouseAdBody = src.DefaultHouseAdBody; this.DefaultHouseAdUri = src.DefaultHouseAdUri; this.IsTest = src.IsTest; }
void adRotatorControl_AdAvailable(AdProvider adProvider) { Invalidate(adProvider); }
void adRotatorControl_AdAvailable(AdProvider adProvider) { Dispatcher.BeginInvoke(() => Invalidate(adProvider)); }