/// <summary> /// Initializes the target object for the page /// </summary> /// <remarks>Many pages have "target" objects that the page operates on. For instance, when viewing /// an event, the target object is an event. When looking up a directory, that's the target /// object. This method is intended to be overriden to initialize the target object for /// each page that needs it.</remarks> protected override void InitializeTargetObject() { base.InitializeTargetObject(); var contextObject = APIExtensions.LoadObjectFromAPI(ContextID); switch (contextObject.ClassType) { case msEvent.CLASS_NAME: targetEvent = LoadObjectFromAPI <msEvent>(ContextID); targetAbstract = new msAbstract { Owner = ConciergeAPI.CurrentEntity.ID, Event = targetEvent.ID }; break; case msAbstract.CLASS_NAME: targetAbstract = LoadObjectFromAPI <msAbstract>(ContextID); if (targetAbstract == null) { GoToMissingRecordPage(); return; } targetEvent = LoadObjectFromAPI <msEvent>(targetAbstract.Event); break; default: QueueBannerError("Invalid context supplied."); GoHome(); return; } if (targetEvent == null) { GoToMissingRecordPage(); return; } }
/// <summary> /// Initializes the target object for the page /// </summary> /// <remarks>Many pages have "target" objects that the page operates on. For instance, when viewing /// an event, the target object is an event. When looking up a directory, that's the target /// object. This method is intended to be overriden to initialize the target object for /// each page that needs it.</remarks> protected override void InitializeTargetObject() { base.InitializeTargetObject(); // Have to get the actual MemberSuiteObject for the custom fields targetAbstract = LoadObjectFromAPI <msAbstract>(ContextID); if (targetAbstract == null) { GoToMissingRecordPage(); return; } var s = new Search(msAbstract.CLASS_NAME); s.AddCriteria(Expr.Equals("ID", ContextID)); s.AddOutputColumn("Event.Name"); s.AddOutputColumn("Status.Name"); var s2 = new Search("AbstractSessionTrack"); s2.AddCriteria(Expr.Equals("Abstract", ContextID)); s2.AddOutputColumn("SessionTrack.Name"); s2.AddSortColumn("SessionTrack.Name"); var results = APIExtensions.GetMultipleSearchResults(new List <Search> { s, s2 }, 0, 1); if (results[0].TotalRowCount == 0) { GoToMissingRecordPage(); } targetAbstractRow = results[0].Table.Rows[0]; targetTracks = results[1].Table; }
protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e) { msAbstract ab = SessionManager.Get <msAbstract>("Abstract"); if (ab == null) { Response.Redirect(this.Request.Url.ToString()); // refresh } using (var api = GetServiceAPIProxy()) { // save the abstract var result = api.Save(ab); // and send the email api.SendTransactionalEmail(EmailTemplates.Events.AbstractSubmission, result.ResultValue.SafeGetValue <string>("ID"), null); QueueBannerMessage(string.Format("Abstract '{0}' submitted successfully.", ab.Name)); // go back to the event Response.Redirect("ViewEvent.aspx?contextID=" + targetEvent.ID); } }