public static void AddAdvertisements(ParseEventArgs args) { if (!IsAdvertisementExists(args)) { return; } var advertisementInfoList = Repository.GetAdvertisementInfoList(args.SiteId); foreach (var adInfo in advertisementInfoList) { if (adInfo.IsDateLimited) { if (DateTime.Now < adInfo.StartDate || DateTime.Now > adInfo.EndDate) { continue; } } var isToDo = false; if (args.TemplateType == TemplateType.IndexPageTemplate || args.TemplateType == TemplateType.ChannelTemplate) { if (!string.IsNullOrEmpty(adInfo.ChannelIdCollectionToChannel)) { var nodeIdArrayList = Utils.StringCollectionToIntList(adInfo.ChannelIdCollectionToChannel); if (nodeIdArrayList.Contains(args.ChannelId)) { isToDo = true; } } } else if (args.TemplateType == TemplateType.ContentTemplate) { if (!string.IsNullOrEmpty(adInfo.ChannelIdCollectionToContent)) { var nodeIdArrayList = Utils.StringCollectionToIntList(adInfo.ChannelIdCollectionToContent); if (nodeIdArrayList.Contains(args.ContentId)) { isToDo = true; } } } if (!isToDo) { continue; } var scripts = string.Empty; if (EAdvertisementTypeUtils.Equals(adInfo.AdvertisementType, EAdvertisementType.FloatImage)) { args.HeadCodes["JsAdFloating"] = $@"<script type=""text/javascript"" src=""{Context.PluginApi.GetPluginUrl(Utils.PluginId, "assets/adFloating.js")}""></script>"; var floatScript = new ScriptFloating(adInfo); scripts = floatScript.GetScript(); } else if (EAdvertisementTypeUtils.Equals(adInfo.AdvertisementType, EAdvertisementType.ScreenDown)) { if (!args.HeadCodes.ContainsKey("Jquery")) { args.HeadCodes["Jquery"] = $@"<script type=""text/javascript"" src=""{Context.PluginApi.GetPluginUrl(Utils.PluginId, "assets/jquery-1.9.1.min.js")}""></script>"; } var screenDownScript = new ScriptScreenDown(adInfo); scripts = screenDownScript.GetScript(); } else if (EAdvertisementTypeUtils.Equals(adInfo.AdvertisementType, EAdvertisementType.OpenWindow)) { var openWindowScript = new ScriptOpenWindow(adInfo); scripts = openWindowScript.GetScript(); } args.BodyCodes[adInfo.AdvertisementType + "_" + adInfo.AdvertisementName] = scripts; } }
public IList <AdvertisementInfo> GetAdvertisementInfoList(int siteId, EAdvertisementType advertisementType) { return(GetAll(Q.Where(Attr.SiteId, siteId).Where(Attr.AdvertisementType, EAdvertisementTypeUtils.GetValue(advertisementType)).OrderByDesc(Attr.Id))); }