コード例 #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            System.Text.StringBuilder markupBuilder = new System.Text.StringBuilder();

            //Redirect to club home
            Sitecore.Links.UrlOptions urlOptions = new Sitecore.Links.UrlOptions();
            urlOptions.AlwaysIncludeServerUrl = true;
            urlOptions.AddAspxExtension = false;
            urlOptions.LanguageEmbedding = LanguageEmbedding.Never;

            micrositeLanding = micrositeHome.InnerItem.Parent;

            if (micrositeLanding != null)
            {
                club = micrositeLanding.Club.Item;

                if (club != null)
                {
                    //Get opening hours
                    if (club.Openinghours.Rendered.Trim() != "")
                    {
                        //add opening hours details
                        markupBuilder.Append(@"<p class=""openingtimes"">");
                        markupBuilder.Append(club.Openinghours.Rendered);
                        markupBuilder.Append(@"</p>");

                        openingHours = markupBuilder.ToString();
                    }

                    //Get address

                    markupBuilder = new System.Text.StringBuilder();

                    markupBuilder.Append(club.Addressline1.Text);
                    markupBuilder.Append(!String.IsNullOrEmpty(club.Addressline2.Text) ? "<br />" + club.Addressline2.Text : "");
                    markupBuilder.Append(!String.IsNullOrEmpty(club.Addressline3.Text) ? "<br />" + club.Addressline3.Text : "");
                    markupBuilder.Append("<br />");
                    markupBuilder.Append(!String.IsNullOrEmpty(club.Addressline4.Text) ? club.Addressline4.Text + " " : "");
                    markupBuilder.Append(club.Postcode.Text);

                    Address.Text = markupBuilder.ToString();

                    //Get Club details

                    ClubName = club.Clubname.Rendered;
                    lng = club.Long.Raw;
                    lat = club.Lat.Raw;

                    //Get timetable link
                    if (micrositeHome.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", MicrositeTimetableItem.TemplateId)) != null)
                    {
                        MicrositeTimetableItem timetableItem = new MicrositeTimetableItem(micrositeHome.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", MicrositeTimetableItem.TemplateId)));
                        MicrositeTimetableLandingItem timetableSectionItem = new MicrositeTimetableLandingItem(timetableItem.InnerItem.Parent);
                        ClubTimetableUrl = Sitecore.Links.LinkManager.GetItemUrl(timetableSectionItem);
                    }
                    else
                    {
                        if (micrositeHome.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", TimetableDownloadItem.TemplateId)) != null)
                        {
                            TimetableDownloadItem timetableDownloadItem = new TimetableDownloadItem(micrositeHome.InnerItem.Axes.SelectSingleItem(String.Format(@"descendant-or-self::*[@@tid = '{0}']", TimetableDownloadItem.TemplateId)));
                            ClubTimetableUrl = Sitecore.Links.LinkManager.GetItemUrl(timetableDownloadItem);
                        }
                    }

                    //Get enquiries link
                    PageSummaryItem enqForm = new PageSummaryItem(Sitecore.Context.Database.GetItem(ItemPaths.EnquiryForm));
                    if (enqForm != null)
                    {
                        ClubEnquiriesUrl = enqForm.Url + "?sc_trk=enq&c=" + club.InnerItem.ID.ToShortID();
                    }

                    //Get Media Items from Widget Container
                    List<FacilityModuleItem> facilities = GetDataSource(micrositeHome.InnerItem);
                    List<MediaItem> mediaItems = new List<MediaItem>();
                    if (facilities != null)
                    {
                        foreach (FacilityModuleItem facilityModule in facilities)
                        {
                            List<MediaItem> galleryItems = facilityModule.Imagegallery.ListItems.ConvertAll(x => new MediaItem(x));
                            if (galleryItems != null && galleryItems.Count > 0)
                            {
                                mediaItems.Add(galleryItems[0]);
                            }
                        }
                    }

                    if (mediaItems.Count > 0)
                    {
                        ImageList.DataSource = mediaItems;
                        ImageList.DataBind();
                    }

                    //Set club last visited
                    User objUser = new User();
                    if (Session["sess_User"] != null)
                    {
                        objUser = (User)Session["sess_User"];
                    }
                    objUser.ClubLastVisitedID = club.ClubId.Rendered;
                    Session["sess_User"] = objUser;

                    //Set club last visited cookie
                    //if (objUser.Preferences != null)
                    //{
                    //    if (objUser.Preferences.PersonalisedCookies)
                    //    {
                    CookieHelper.AddClubsLastVisitedCookie(CookieKeyNames.ClubLastVisited, club.ClubId.Rendered);
                    //    }
                    //}
                }
            }
        }
コード例 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                try
                {
                    ClubMicrositeLandingItem landing = new ClubMicrositeLandingItem(micrositeTimetable.InnerItem.Axes.SelectSingleItem(String.Format(@"ancestor-or-self::*[@@tid=""{0}""]", ClubMicrositeLandingItem.TemplateId)));

                    currentClub = landing.Club.Item;
                    micrositeTimetableLanding = micrositeTimetable.InnerItem.Parent;

                    //Set Navigation elements
                    List<PageSummaryItem> sectionTimetables = micrositeTimetable.InnerItem.Axes.SelectItems(String.Format("..//*[@@tid='{0}']", MicrositeTimetableItem.TemplateId)).ToList().ConvertAll(x => new PageSummaryItem(x));
                    sectionTimetables.RemoveAll(x => x.Hidefrommenu.Checked); //Remove all hidden items

                    if (sectionTimetables.Count > 1)
                    {
                        sectionTimetables.First().IsFirst = true;
                        sectionTimetables.Last().IsLast = true;

                        //Set current
                        foreach (PageSummaryItem child in sectionTimetables)
                        {
                            Item current = child.InnerItem.Axes.SelectSingleItem(String.Format("descendant-or-self::*[@@id='{0}']", micrositeTimetable.ID.ToString()));
                            if (current != null)
                            {
                                child.IsCurrent = true;
                            }
                        }

                        SecondLevelElements.DataSource = sectionTimetables;
                        SecondLevelElements.DataBind();
                    }

                    clubId = currentClub.ClubId.Raw;
                    //timetableType = TimetableTypes.General;
                    timetableType = micrositeTimetable.Type.Rendered;
                    if (micrositeTimetable.Showalert.Checked)
                    {
                        string textToParse = micrositeTimetable.Alerttext.Rendered;

                        Hashtable objTemplateVariables = new Hashtable();
                        objTemplateVariables.Add("SalesNumber", currentClub.Salestelephonenumber.Rendered);

                        Parser objParser = new Parser(objTemplateVariables);
                        objParser.SetTemplate(textToParse);
                        textToParse = objParser.Parse();

                        alert = @"<div class=""club-alert-panel""><div class=""club-alert"">" + textToParse + @"</div></div>";
                    }

                    clubMemberPhone = currentClub.Memberstelephonenumber.Raw != "" ? currentClub.Memberstelephonenumber.Raw : currentClub.Salestelephonenumber.Raw;

                    Item settings = Sitecore.Context.Database.GetItem(ItemPaths.TimetableShared);
                    if (settings != null)
                    {
                        TimetableSharedItem settingsItem = new TimetableSharedItem(settings);
                        TimetableUnavailableHeading.Text = settingsItem.Timetableunavailableheading.Text;
                        TimetableUnavailableMessage.Text =
                            settingsItem.Timetableunavailabletext.Text.Replace("#clubMemberPhone#", clubMemberPhone);
                    }

                    ClassContainer ClubClasses = Utility.GetClubTimetable(clubId);

                    ////Need to lookup the daterange from the timetable
                    //if (Cache[clubId] == null)
                    //{
                    //    //initialise webservice
                    //    //mm.virginactive.webservices.virginactive.classtimetable.Service vs = new mm.virginactive.webservices.virginactive.classtimetable.Service();
                    //    mm.virginactive.webservices.virginactive.classtimetable.VA_ClassTimetables vs = new mm.virginactive.webservices.virginactive.classtimetable.VA_ClassTimetables();
                    //    //mm.virginactive.webservices.virginactive.classtimetable.VA_ClassTimetables vs = new mm.virginactive.webservices.virginactive.classtimetable.VA_ClassTimetables();
                    //    ClubClasses = vs.Classes(clubId);

                    //    double cacheLiveTime = 20.0;
                    //    Double.TryParse(Settings.TimetableCacheMinutes, out cacheLiveTime);

                    //    Cache.Insert(clubId, ClubClasses, null, DateTime.Now.AddMinutes(cacheLiveTime), Cache.NoSlidingExpiration);
                    //}
                    //else //Fetch from cache
                    //{
                    //    ClubClasses = (struct_Classes)Cache[clubId];
                    //}

                    List<Timetable> tempItems = new List<Timetable>();

                    //Check each Timetable in collection is valid
                    foreach (Timetable item in ClubClasses.Timetables)
                    {
                        if (item.Dayname != null)
                        {
                            tempItems.Add(item);
                        }
                    }

                    if ((tempItems.Count > 0))
                    {
                        System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
                        stringBuilder.Append(@"<strong>");
                        stringBuilder.Append(StringHelper.GenerateDateString(tempItems[0].Date));
                        stringBuilder.Append(@"</strong> ");
                        stringBuilder.Append(Translate.Text("to"));
                        stringBuilder.Append(@" <strong>");
                        stringBuilder.Append(StringHelper.GenerateDateString(tempItems[tempItems.Count - 1].Date));
                        stringBuilder.Append("</strong>");

                        dateRangeStr = stringBuilder.ToString();
                        //timetableNameStr = currentItem.PageSummary.DisplayName;

                        //create ajax controls
                        ClubTimetableResult timetableResult = this.Page.LoadControl("~/layouts/virginactive/microsite/MicrositeTimetableResult.ascx") as ClubTimetableResult;
                        ClubTimetableFilter timetableFilter = this.Page.LoadControl("~/layouts/virginactive/microsite/MicrositeTimetableFilter.ascx") as ClubTimetableFilter;

                        timetableResult.ClubId = clubId;
                        timetableResult.Type = timetableType;

                        filterPh.Controls.Add(timetableFilter);
                        resultPh.Controls.Add(timetableResult);
                    }
                    else
                    {
                        ErrorMessage.Visible = true;
                        //hide print button
                        lstIcons.Visible = false;
                    }
                }
                catch (Exception ex)
                {
                    ErrorMessage.Visible = true;
                    //hide print button
                    lstIcons.Visible = false;
                    Log.Error(String.Format("Error retrieving timetable for club {1}: {0}", ex.Message, "Microsite"), this);
                    mm.virginactive.common.EmailMessagingService.ErrorEmailNotification.SendMail(ex);
                }

                //Add dynamic content to header
                HtmlHead head = (HtmlHead)Page.Header;

                //Add Open Tag
                if (Session["sess_User"] != null)
                {
                    User objUser = (User)Session["sess_User"];
                    if (objUser.Preferences != null)
                    {
                        if (objUser.Preferences.MarketingCookies && objUser.Preferences.MetricsCookies)
                        {
                            head.Controls.Add(new LiteralControl(OpenTagHelper.OpenTagVirginActiveUK));
                        }
                    }
                }
            }
        }