/// <summary> /// Broadcast an advertisement to a list of advertisement receievers. /// </summary> void BroadcastToReceivers(IAdvertisement advertisement, List <IAdvertisementReceiver> receivers) { foreach (IAdvertisementReceiver receiver in receivers) { BroadcastToReceiver(advertisement, receiver); } }
int GetAdvertisementRank(IAdvertisement advertisement) { if (advertisement.GroupId == agent.GroupId) { return(0); } List <ITrait> desires = agent.Desires; List <ITrait> ads = advertisement.Traits; int rank = 0; foreach (ITrait attribute in ads) { foreach (ITrait desire in desires) { if (attribute.Id == desire.Id) { int attributeRank = attribute.Quantity * desire.Quantity; rank += attributeRank; } } } return(rank); }
public static async Task PrepareAsync(this IAdvertisement self) { var promoter = self.Promoter; var invokeException = default(Exception); var invokeResult = default(bool?); promoter.ExceptionDetected += OnExceptionDetected; self.Prepare( () => invokeResult = true, () => invokeResult = false); while (!invokeResult.HasValue) { await Task.Delay(MillisecondsDelay); } promoter.ExceptionDetected -= OnExceptionDetected; if (!invokeResult.Value) { throw invokeException ?? new InvalidOperationException(); } void OnExceptionDetected(Exception exception) { invokeException = exception; } }
void CreateAndBroadcastAdvertisement() { List <Vector2Int> broadcastLocations = GetBroadcastLocations(); IAdvertisement advertisement = Advertisement.Create(advertisingMapElement.Stats, advertisingMapElement.Map, advertisingMapElement.Location, broadcastLocations, advertisingMapElement.GroupId); advertisingMapElement.BroadcastAdvertisement(advertisement, excludeReceiver); }
public void Main() { // I need an ad for an image IAdvertisement imageAd = Advertisement.ForImage(); // Now I need an ad for text IAdvertisement textAd = Advertisement.ForText(); // Now I'm only coding to the IAdvertisement interface }
public void Init() { switch (advertisementType) { case AdvertisementType.Unity: advertisement = new UnityAdvertisement("", true); break; case AdvertisementType.Admob: advertisement = null; break; } }
private string MakeUrl(IAdvertisement adItem, bool isLink, bool isEmailLayout) { if (string.IsNullOrEmpty(adItem?.Slot_ID) || string.IsNullOrEmpty(adItem.Zone)) { return(string.Empty); } var adDomain = isEmailLayout ? _dependencies.SiteRootContext.Item?.Email_Ad_Domain : _dependencies.SiteRootContext.Item?.Ad_Domain; if (string.IsNullOrEmpty(adDomain)) { return(string.Empty); } return(Format(isLink, adDomain, adItem.Zone, adItem.Slot_ID)); }
protected void Broadcast(IAdvertisement advertisement, IAdvertisementReceiver excludeReceiver = null) { calledInstanceIds.Clear(); List <IAdvertisementReceiver> mapReceivers = advertisement.Map.GetMapElementsAtCells <IAdvertisementReceiver>(advertisement.BroadcastLocations); foreach (IAdvertisementReceiver mapReceiver in mapReceivers) { if (receiversByInstanceId.ContainsKey(mapReceiver.InstanceId) && calledInstanceIds.Contains(mapReceiver.InstanceId) == false) { if (mapReceiver != excludeReceiver) { mapReceiver.ReceiveAdvertisement(advertisement); } calledInstanceIds.Add(mapReceiver.InstanceId); } } }
void HandleAdvertisement(IAdvertisement advertisement) { int rank = GetAdvertisementRank(advertisement); if (rank > 0) { bool isRankGreater = GetIsAdRankGreaterThanTarget(rank); if (isRankGreater) { agent.TargetAdvertisement = RankedAdvertisement.Create(advertisement, rank); agent.TargetLocation = advertisement.Location; if (string.IsNullOrEmpty(targetFoundTransition) == false) { agent.HandleTransition(targetFoundTransition); } } } }
public static async Task ShowAsync(this IAdvertisement self) { var promoter = self.Promoter; var outputException = default(Exception); var outputShowResult = default(ShowResult?); promoter.ExceptionDetected += OnExceptionDetected; self.Show( () => outputShowResult = ShowResult.Complete, () => outputShowResult = ShowResult.Skip, () => outputShowResult = ShowResult.Failure); while (!outputShowResult.HasValue) { await Task.Delay(MillisecondsDelay); } promoter.ExceptionDetected -= OnExceptionDetected; switch (outputShowResult.Value) { case ShowResult.Complete: break; case ShowResult.Skip: throw new SkipException(); case ShowResult.Failure: throw outputException ?? new InvalidOperationException(); } void OnExceptionDetected(Exception exception) { outputException = exception; } }
public Task <IPeripheralConnection> ConnectPatternAsync(IAdvertisement reference, int period, int before, int after, int attempts) { // pattern connect has no benefit on iOS, // the system is able to scan and connect to multiple devices in parallel return(ConnectAsync(before + period * attempts + after)); }
void IAdvertisementBroadcaster.Broadcast(IAdvertisement advertisement, IAdvertisementReceiver excludeReceiver) { broadcaster.Broadcast(advertisement, excludeReceiver); }
void IAdvertisementBroadcaster.Broadcast(IAdvertisement advertisement) { broadcaster.Broadcast(advertisement); }
protected void BroadcastAdvertisement(IAdvertisement advertisement, IAdvertisementReceiver excludeReceiver) { Broadcaster.Broadcast(advertisement, excludeReceiver); }
/// <summary> /// Broadcast a given advertisement with an excluded receiver. /// </summary> /// <param name="advertisement">The advertisement to be broadcasted</param> /// <param name="excludeReceiver">A receiver that won't receive that broadcasted advertisement</param> void IAdvertiser.BroadcastAdvertisement(IAdvertisement advertisement, IAdvertisementReceiver excludeReceiver) => BroadcastAdvertisement(advertisement, excludeReceiver);
protected void BroadcastAdvertisement(IAdvertisement advertisement) { Broadcaster.Broadcast(advertisement); }
/// <summary> /// Adds a <see cref="IAdvertisement"/> instance to <see cref="IPlaylistItem.InterstitialAdvertisements"/> collection of caller <see cref="IPlaylistItem"/> instance. /// </summary> /// <param name="playlistItem">Caller <see cref="IPlaylistItem"/> instance.</param> /// <param name="advertisement"><see cref="IAdvertisement"/> instance to add.</param> /// <returns>The caller <see cref="IPlaylistItem"/> instance with <see cref="IAdvertisement"/> instance added to <see cref="IPlaylistItem.InterstitialAdvertisements"/> collection.</returns> public static IPlaylistItem WithInterstitialAdvertisement(this IPlaylistItem playlistItem, IAdvertisement advertisement) { playlistItem.InterstitialAdvertisements.Add(advertisement); return playlistItem; }
public AdvertisementService(UserRepository userRepository, AdvertisementRepository advertisementRepository) { _advertisementRepository = advertisementRepository; _userRepository = userRepository; }
public string GetImageSrc(IAdvertisement adItem, bool isEmailLayout = false) => MakeUrl(adItem, false, isEmailLayout);
public string GetLink(IAdvertisement adItem, bool isEmailLayout = false) => MakeUrl(adItem, true, isEmailLayout);
/// <summary> /// Broadcast an advertisement to a single advertisement receiver. /// </summary> void BroadcastToReceiver(IAdvertisement advertisement, IAdvertisementReceiver receiver) { receiver.ReceiveAdvertisement(advertisement); }
/// <summary> /// Broadcast a given advertisement. /// </summary> void IAdvertiser.BroadcastAdvertisement(IAdvertisement advertisement) => BroadcastAdvertisement(advertisement);
/// <summary> /// Sets <see cref="IPlaylistItem.PostRollAdvertisement"/> property of caller <see cref="IPlaylistItem"/> instance to given <see cref="IAdvertisement"/> instance. /// </summary> /// <param name="playlistItem">Caller <see cref="IPlaylistItem"/> instance.</param> /// <param name="advertisement">Given <see cref="IAdvertisement"/> instance. </param> /// <returns>The caller <see cref="IPlaylistItem"/> instance with <see cref="IPlaylistItem.PostRollAdvertisement"/> property setted to given <see cref="IAdvertisement"/> instance.</returns> public static IPlaylistItem WithPostRollAdvertisement(this IPlaylistItem playlistItem, IAdvertisement advertisement) { playlistItem.PostRollAdvertisement = advertisement; return playlistItem; }