예제 #1
0
        public string GetNewAdvertisement(string positionId, string sPkeyword)
        {
            try
            {
                var stringWriter = new StringWriter();
                var writer       = new Html32TextWriter(stringWriter);
                //دریافت تبلیغ جدید از صف تبلیغات قابل اجرا
                var sectionPosition = new AdvertisementSectionPositionBO().GetByKeyWord(this.ConnectionHandler,
                                                                                        sPkeyword);
                if (sectionPosition != null)
                {
                    var advertisement = AdvertisementQueue.POP(sectionPosition);

                    if (advertisement.Timeout >= 0)
                    {
                        writer.AddAttribute(HtmlTextWriterAttribute.Type, "text/javascript");
                        writer.RenderBeginTag(HtmlTextWriterTag.Script);
                        writer.WriteEncodedText(string.Format("SetInterval('{0}',{1},'{2}');", positionId,
                                                              advertisement.Timeout, sectionPosition.KeyWord));
                        writer.RenderEndTag();
                    }
                    writer.AddAttribute("onclick", string.Format("OnAdvClick('{0}');", advertisement.Id));
                    //تولید قالب تبلیغات بر حسب نوع آن
                    switch (advertisement.AdvertisementType.Type)
                    {
                    case "Text":

                        #region TEXT

                        if (string.IsNullOrEmpty(advertisement.NavigateUrl))
                        {
                            writer.WriteEncodedText(advertisement.Text);
                        }
                        else
                        {
                            writer.AddAttribute("href", advertisement.NavigateUrl);
                            writer.AddAttribute("target", "_blank");
                            writer.RenderBeginTag(HtmlTextWriterTag.A);
                            writer.WriteEncodedText(Utils.ConvertHtmlToString(advertisement.Text));
                            writer.RenderEndTag();
                        }
                        break;

                        #endregion

                    case "Flash":

                        #region FLASH

                        writer.AddAttribute("codeBase",
                                            "https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7.0.19.0");
                        writer.AddAttribute("classid", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000");
                        writer.AddAttribute("width", advertisement.width.ToString());
                        writer.AddAttribute("height", advertisement.Height.ToString());
                        writer.RenderBeginTag(HtmlTextWriterTag.Object);


                        writer.AddAttribute("NAME", "Movie");
                        writer.AddAttribute("VALUE", FileManagerContants.FileHandlerRoot + advertisement.FileId);
                        writer.RenderBeginTag(HtmlTextWriterTag.Param);

                        writer.AddAttribute("src", FileManagerContants.FileHandlerRoot + advertisement.FileId);
                        writer.AddAttribute("quality", "high");
                        writer.AddAttribute("wmode", "opaque");
                        writer.AddAttribute("pluginspage", "https://www.macromedia.com/go/getflashplayer");
                        writer.AddAttribute("type", "application/x-shockwave-flash");
                        writer.AddAttribute("width", advertisement.width.ToString());
                        writer.AddAttribute("height", advertisement.Height.ToString());
                        writer.RenderBeginTag(HtmlTextWriterTag.Embed);

                        writer.RenderEndTag();
                        writer.RenderEndTag();
                        writer.RenderEndTag();
                        break;

                        #endregion

                    case "Html":

                        #region HTML

                        writer.Write(Utils.ConvertHtmlToString(advertisement.Text));
                        break;

                        #endregion

                    case "Image":

                        #region IMAGE

                        if (!string.IsNullOrEmpty(advertisement.NavigateUrl))
                        {
                            writer.AddAttribute("href", advertisement.NavigateUrl);
                            writer.AddAttribute("target", "_blank");
                            writer.RenderBeginTag(HtmlTextWriterTag.A);
                        }
                        writer.AddAttribute("src", FileManagerContants.FileHandlerRoot + advertisement.FileId);
                        writer.AddAttribute("border", "0");
                        writer.AddAttribute("height", advertisement.Height.ToString());
                        writer.AddAttribute("width", advertisement.width.ToString());
                        writer.RenderBeginTag(HtmlTextWriterTag.Img);
                        writer.RenderEndTag();
                        if (!string.IsNullOrEmpty(advertisement.NavigateUrl))
                        {
                            writer.RenderEndTag();
                        }
                        break;

                        #endregion
                    }
                    //یک واحد به تعداد نمایش تبلیغ اضافه می شود
                    advertisement.VisitCount++;
                    if (!new AdvertisementBO().Update(this.ConnectionHandler, advertisement))
                    {
                        throw new Exception("خطایی در ویرایش آگهی وجود دارد");
                    }
                    var str = stringWriter.ToString();
                    return(System.Net.WebUtility.HtmlDecode(str));
                }
                return("No Advertisment Mached With Your Keyword");
            }
            catch (KnownException ex)
            {
                Log.Save(ex.Message, LogType.ApplicationError, ex.Source, ex.StackTrace);
                throw new KnownException(ex.Message, ex);
            }
            catch (Exception ex)
            {
                Log.Save(ex.Message, LogType.ApplicationError, ex.Source, ex.StackTrace);
                throw new KnownException(ex.Message, ex);
            }
        }
예제 #2
0
        public string GetHtml4Position(string keyword)
        {
            try
            {
                var sectionPosition = new AdvertisementSectionPositionBO().GetByKeyWord(this.ConnectionHandler, keyword);
                //انتخاب تبلیغ های معتبر در  موقعیت
                //ریختن لیست در صف
                if (sectionPosition != null)
                {
                    AdvertisementQueue.Queue = AdvertisementQueue.GetViewAbleAdvertisements(sectionPosition);

                    var advs = new List <Advertisement>();
                    for (var index = 1; index <= sectionPosition.AdsShowCount; index++)
                    {
                        var obj = AdvertisementQueue.POP(sectionPosition);
                        if (obj != null)
                        {
                            advs.Add(obj);
                        }
                        if (AdvertisementQueue.Queue.Count == 0)
                        {
                            break;
                        }
                    }

                    var stringWriter = new StringWriter();
                    var writer       = new Html32TextWriter(stringWriter);

                    writer.AddAttribute("src", "/Areas/Advertisements/Content/Advertisment.js");
                    writer.AddAttribute("Type", "text/javascript");
                    writer.RenderBeginTag(HtmlTextWriterTag.Script);
                    writer.RenderEndTag();
                    if (!sectionPosition.Orientation)
                    {
                        writer.AddAttribute("id", sectionPosition.KeyWord);
                        writer.AddAttribute("align", "center");
                        writer.RenderBeginTag(HtmlTextWriterTag.Table);
                        writer.RenderBeginTag(HtmlTextWriterTag.Tr);
                    }

                    foreach (var advertisement in advs)
                    {
                        writer.AddAttribute("onclick",
                                            string.Format("OnAdvClick('{0}');",
                                                          advertisement.Id));
                        if (!sectionPosition.Orientation)
                        {
                            writer.AddAttribute("Id", (advs.IndexOf(advertisement) + 1).ToString());
                            writer.AddAttribute("width", advertisement.width.ToString());
                            writer.AddAttribute("align", "center");
                            writer.RenderBeginTag(HtmlTextWriterTag.Td);
                        }
                        else
                        {
                            writer.AddAttribute("Id", (advs.IndexOf(advertisement) + 1).ToString());
                            writer.RenderBeginTag(HtmlTextWriterTag.Div);
                        }
                        if (advertisement.Timeout > 0)
                        {
                            writer.AddAttribute(HtmlTextWriterAttribute.Type, "text/javascript");
                            writer.RenderBeginTag(HtmlTextWriterTag.Script);
                            writer.WriteEncodedText(string.Format("SetInterval('{0}',{1},'{2}');",
                                                                  (advs.IndexOf(advertisement) + 1), advertisement.Timeout,
                                                                  keyword));
                            writer.RenderEndTag();
                        }
                        //تولید قالب تبلیغات بر حسب نوع آن
                        switch (advertisement.AdvertisementType.Type)
                        {
                        case "Text":

                            #region TEXT

                            if (string.IsNullOrEmpty(advertisement.NavigateUrl))
                            {
                                writer.WriteEncodedText(advertisement.Text);
                            }
                            else
                            {
                                writer.AddAttribute("href", advertisement.NavigateUrl);
                                writer.AddAttribute("target", "_blank");
                                writer.RenderBeginTag(HtmlTextWriterTag.A);
                                writer.WriteEncodedText(Utils.ConvertHtmlToString(advertisement.Text));
                                writer.RenderEndTag();
                            }
                            break;

                            #endregion

                        case "SWF":

                            #region FLASH

                            writer.AddAttribute("codeBase",
                                                "https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7.0.19.0");
                            writer.AddAttribute("classid", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000");
                            writer.AddAttribute("width", advertisement.width.ToString());
                            writer.AddAttribute("height", advertisement.Height.ToString());
                            writer.RenderBeginTag(HtmlTextWriterTag.Object);


                            writer.AddAttribute("NAME", "Movie");
                            writer.AddAttribute("VALUE", FileManagerContants.FileHandlerRoot + advertisement.FileId);
                            writer.RenderBeginTag(HtmlTextWriterTag.Param);

                            writer.AddAttribute("src", FileManagerContants.FileHandlerRoot + advertisement.FileId);
                            writer.AddAttribute("quality", "high");
                            writer.AddAttribute("wmode", "opaque");
                            writer.AddAttribute("pluginspage", "https://www.macromedia.com/go/getflashplayer");
                            writer.AddAttribute("type", "application/x-shockwave-flash");
                            writer.AddAttribute("width", advertisement.width.ToString());
                            writer.AddAttribute("height", advertisement.Height.ToString());
                            writer.RenderBeginTag(HtmlTextWriterTag.Embed);

                            writer.RenderEndTag();
                            writer.RenderEndTag();
                            writer.RenderEndTag();
                            break;

                            #endregion

                        case "Html":

                            #region HTML

                            writer.Write(Utils.ConvertHtmlToString(advertisement.Text));
                            break;

                            #endregion

                        case "Image":

                            #region IMAGE

                            if (!string.IsNullOrEmpty(advertisement.NavigateUrl))
                            {
                                writer.AddAttribute("href", advertisement.NavigateUrl);
                                writer.AddAttribute("target", "_blank");
                                writer.RenderBeginTag(HtmlTextWriterTag.A);
                            }
                            writer.AddAttribute("src", FileManagerContants.FileHandlerRoot + advertisement.FileId);
                            writer.AddAttribute("border", "0");
                            writer.AddAttribute("height", advertisement.Height.ToString());
                            writer.AddAttribute("width", advertisement.width.ToString());
                            writer.RenderBeginTag(HtmlTextWriterTag.Img);
                            writer.RenderEndTag();
                            if (!string.IsNullOrEmpty(advertisement.NavigateUrl))
                            {
                                writer.RenderEndTag();
                            }
                            break;

                            #endregion
                        }
                        //یک واحد به تعداد نمایش تبلیغ اضافه می شود
                        advertisement.VisitCount++;
                        writer.RenderEndTag();
                        if (!new AdvertisementBO().Update(this.ConnectionHandler, advertisement))
                        {
                            throw new Exception("خطایی در ویرایش آگهی وجود دارد");
                        }
                    }

                    if (!sectionPosition.Orientation)
                    {
                        writer.RenderEndTag();
                        writer.RenderEndTag();
                    }

                    var str = stringWriter.ToString();
                    return(System.Net.WebUtility.HtmlDecode(str));
                }
                return("No Advertisment Mached With Your Keyword");
            }
            catch (KnownException ex)
            {
                Log.Save(ex.Message, LogType.ApplicationError, ex.Source, ex.StackTrace);
                throw new KnownException(ex.Message, ex);
            }
            catch (Exception ex)
            {
                Log.Save(ex.Message, LogType.ApplicationError, ex.Source, ex.StackTrace);
                throw new KnownException(ex.Message, ex);
            }
        }