/// <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(); targetMembership = LoadObjectFromAPI <msMembership>(ContextID); if (targetMembership == null) { GoToMissingRecordPage(); return; } owner = LoadObjectFromAPI <msEntity>(targetMembership.Owner); if (owner == null) { GoToMissingRecordPage(); return; } _runSearch(); string info = GetMembershipField("SavedPaymentMethod.Name"); if (info != null) { lblPaymentInfo.Text = info; } // only show termination if terminated trTermination.Visible = drMembership["TerminationDate"] != DBNull.Value; loadLeaders(); }
/// <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(); targetRegistration = LoadObjectFromAPI <msEventRegistration>(ContextID); if (targetRegistration == null) { GoToMissingRecordPage(); return; } targetEvent = LoadObjectFromAPI <msEvent>(targetRegistration.Event); targetEntity = LoadObjectFromAPI <msEntity>(targetRegistration.Owner); if (targetEvent == null || targetEntity == null) { GoToMissingRecordPage(); return; } if (!targetEvent.AllowRegistrantsToChangeSessions || (targetEvent.DeadlineForChangingSessions.HasValue && targetEvent.DeadlineForChangingSessions < DateTime.Now) || !EventLogic.HasSessions(targetEvent.ID)) { liChangeSessions.Visible = false; } initializeRegistrationFields(); createdBy = LoadObjectFromAPI <msUser>(targetRegistration.CreatedBy); status = getStatus(); loadEventOwners(); }
/// <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(); Search sDefaultMemOrg = new Search { Type = msMembershipOrganization.CLASS_NAME }; sDefaultMemOrg.AddOutputColumn("ID"); sDefaultMemOrg.AddOutputColumn(msMembershipOrganization.FIELDS.MembersCanJoinThroughThePortal); sDefaultMemOrg.AddCriteria(string.IsNullOrWhiteSpace(ContextID) ? Expr.Equals("IsDefault", true) : Expr.Equals("ID", ContextID)); SearchResult srDefaultMemOrg = APIExtensions.GetSearchResult(sDefaultMemOrg, 0, null); if (srDefaultMemOrg != null && srDefaultMemOrg.Table != null && srDefaultMemOrg.Table.Rows.Count > 0) { drMembershipOrganization = srDefaultMemOrg.Table.Rows[0]; } targetEntity = MultiStepWizards.RenewMembership.Entity ?? (!string.IsNullOrWhiteSpace(EntityID) ? LoadObjectFromAPI <msEntity>(EntityID) : CurrentEntity); if (drMembershipOrganization == null) { GoToMissingRecordPage(); return; } }
private void initializeGroupRegistration() { var group = MultiStepWizards.GroupRegistration.Group; if (group == null) { return; } var ev = MultiStepWizards.GroupRegistration.Event; if (ev == null || ev.ID != targetEvent.ID) { return; // not a matching event } pnlGroupRegistration.Visible = true; lblGroup.Text = group.Name; // now, let's set the target entity // MS-2100 var entity = LoadObjectFromAPI <msEntity>(MultiStepWizards.GroupRegistration.RegistrantID); lblRegistrant.Text = entity.Name; targetEntity = entity; targetOrder.BillTo = targetOrder.ShipTo = targetEntity.ID; }
protected override void InitializeTargetObject() { base.InitializeTargetObject(); targetSubscription = LoadObjectFromAPI <msSubscription>(ContextID); if (targetSubscription == null) { GoToMissingRecordPage(); } targetEntity = LoadObjectFromAPI <msEntity>(targetSubscription.Owner); }
protected void blLoginAs_Click(object sender, BulletedListEventArgs e) { ListItem li = blLoginAs.Items[e.Index]; string loginAsEntityId = li.Value; if (!ConciergeAPI.AccessibleEntities.Exists(x => x.ID.Equals(loginAsEntityId, StringComparison.CurrentCultureIgnoreCase))) { return; } msEntity newEntity = null; using (var api = ConciergeAPIProxyGenerator.GenerateProxy()) { newEntity = api.Get(loginAsEntityId).ResultValue.ConvertTo <msEntity>(); if (newEntity == null) { return; // entity was erased? } var newAccessibleEntities = api.GetAccessibleEntitiesForEntity(newEntity.ID).ResultValue; if (newAccessibleEntities == null) { newAccessibleEntities = new List <LoginResult.AccessibleEntity>(); } //MS-1391 // automatically insert the current entity so there's a login link to switch back if (!newAccessibleEntities.Exists(x => x.ID == ConciergeAPI.CurrentEntity.ID)) { newAccessibleEntities.Insert(0, new LoginResult.AccessibleEntity { ID = ConciergeAPI.CurrentEntity.ID, Name = ConciergeAPI.CurrentEntity.Name, Type = ConciergeAPI.CurrentEntity.ClassType }); } ConciergeAPI.AccessibleEntities = newAccessibleEntities; ConciergeAPI.CurrentEntity = newEntity; // record that this was the last one logged in // let's re-load it from the database var pu = api.Get(ConciergeAPI.CurrentUser.ID).ResultValue.ConvertTo <msPortalUser>(); pu.LastLoggedInAs = newEntity.ID; api.Save(pu); } MultiStepWizards.ClearAll(); Response.Redirect("/default.aspx"); }
/// <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(); targetEvent = LoadObjectFromAPI <msEvent>(ContextID); if (targetEvent == null) { GoToMissingRecordPage(); return; } targetEntity = ConciergeAPI.CurrentEntity; }
protected override void InitializeTargetObject() { base.InitializeTargetObject(); targetShow = LoadObjectFromAPI <msExhibitShow>(ContextID); if (targetShow == null) { GoToMissingRecordPage(); } targetEntity = LoadObjectFromAPI <msEntity>(Request.QueryString["entityID"]); if (targetEntity == null) { GoToMissingRecordPage(); } }
/// <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(); targetEntity = string.IsNullOrWhiteSpace(ContextID) ? CurrentEntity : LoadObjectFromAPI <msEntity>(ContextID); if (targetEntity == null) { GoToMissingRecordPage(); return; } targetRefund = CreateNewObject <msRefund>(); targetRefund.RefundTo = targetEntity.ID; targetRefund.Date = DateTime.UtcNow; }
/// <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(); targetEvent = LoadObjectFromAPI <msEvent>(ContextID); if (targetEvent == null) { GoToMissingRecordPage(); return; } onlyShowGuestSpouseRegistrations = Request.QueryString["guestOnly"] == "true"; targetOrder = new msOrder(); if (!string.IsNullOrWhiteSpace(EntityId)) { targetEntity = LoadObjectFromAPI <msEntity>(EntityId); if (targetEntity == null) { GoToMissingRecordPage(); return; } } else { targetEntity = ConciergeAPI.CurrentEntity; } targetOrder.BillTo = targetOrder.ShipTo = targetEntity.ID; if (!string.IsNullOrWhiteSpace(targetEvent.Chapter)) { targetChapter = LoadObjectFromAPI <msChapter>(targetEvent.Chapter); } if (!string.IsNullOrWhiteSpace(targetEvent.Section)) { targetSection = LoadObjectFromAPI <msSection>(targetEvent.Section); } if (!string.IsNullOrWhiteSpace(targetEvent.OrganizationalLayer)) { targetOrganizationalLayer = LoadObjectFromAPI <msOrganizationalLayer>(targetEvent.OrganizationalLayer); } }
/// <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(); if (Complete) { ClearAndRedirect(); } targetMembership = MultiStepWizards.RenewMembership.Membership; targetEntity = MultiStepWizards.RenewMembership.Entity; if (targetMembership == null || targetMembership.MembershipOrganization == null || targetEntity == null) // session expired, go back home { GoHome(); } }
/// <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(); targetEntity = string.IsNullOrWhiteSpace(ContextID) ? CurrentEntity : LoadObjectFromAPI <msEntity>(ContextID); if (targetEntity == null) { GoToMissingRecordPage(); return; } targetPayment = CreateNewObject <msPayment>(); targetPayment.Owner = targetEntity.ID; targetPayment.Date = DateTime.UtcNow; // We can't trust defult cash account set by describer. targetPayment.CashAccount = string.Empty; }
/// <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() { //If there's no logged in user send the user through the CreateAccount process with the variable //to kick them back to this page on completion if (ConciergeAPI.CurrentEntity == null) { GoTo("~/profile/CreateAccount_BasicInfo.aspx?t=Membership"); return; } base.InitializeTargetObject(); if (string.IsNullOrWhiteSpace(EntityId) || EntityId.ToLower() == ConciergeAPI.CurrentEntity.ID.ToLower()) { targetEntity = ConciergeAPI.CurrentEntity; if (ConciergeAPI.AccessibleEntities != null) { relatedOrganizations = ConciergeAPI.AccessibleEntities.Where(x => x.Type == msOrganization.CLASS_NAME && !x.ID.Equals(ConciergeAPI.CurrentEntity.ID, StringComparison.CurrentCultureIgnoreCase)).ToList(); } } else { targetEntity = LoadObjectFromAPI <msEntity>(EntityId); relatedOrganizations = getRelatedOrganizations(EntityId); } if (relatedOrganizations == null || relatedOrganizations.Count == 0) { StringBuilder nextUrl = new StringBuilder("~/membership/PurchaseMembership1.aspx?"); if (!string.IsNullOrWhiteSpace(ContextID)) { nextUrl.AppendFormat("contextID={0}&", ContextID); } if (!string.IsNullOrWhiteSpace(EntityId)) { nextUrl.AppendFormat("entityID={0}", EntityId); } GoTo(nextUrl.ToString()); } }
public static msEntityAddress GetEntityPreferredAddress(msEntity e) { if (e.Addresses == null || e.Addresses.Count == 0) { return(null); } // see if we can get the default var defaultAddress = e.Addresses.ToList().Find(x => x.Type == e.PreferredAddressType); if (defaultAddress == null) // no default, let's use the first { defaultAddress = e.Addresses[0]; } if (defaultAddress.Address == null) { return(null); // shouldn't happen, but this is defensive programming } return(defaultAddress); }
protected override void InitializeTargetObject() { base.InitializeTargetObject(); targetExhibitor = LoadObjectFromAPI <msExhibitor>(ContextID); if (targetExhibitor == null) { GoToMissingRecordPage(); } targetShow = LoadObjectFromAPI <msExhibitShow>(targetExhibitor.Show); if (targetShow == null) { GoToMissingRecordPage(); } targetEntity = LoadObjectFromAPI <msEntity>(targetExhibitor.Customer); if (targetEntity == null) { GoToMissingRecordPage(); } }
/// <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(); targetEntity = string.IsNullOrWhiteSpace(ContextID) ? ConciergeAPI.CurrentEntity : LoadObjectFromAPI <msEntity>(ContextID); if (targetEntity == null) { GoToMissingRecordPage(); return; } if (string.IsNullOrWhiteSpace(LeaderOfId)) { return; } var leaderOf = APIExtensions.LoadObjectFromAPI(LeaderOfId); switch (leaderOf.ClassType) { case msChapter.CLASS_NAME: targetChapter = leaderOf.ConvertTo <msChapter>(); break; case msSection.CLASS_NAME: targetSection = leaderOf.ConvertTo <msSection>(); break; case msOrganizationalLayer.CLASS_NAME: targetOrganizationalLayer = leaderOf.ConvertTo <msOrganizationalLayer>(); break; default: QueueBannerError(string.Format("Invalid leader object type specified '{0}'", leaderOf.ClassType)); GoHome(); 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(); targetEventRegistration = LoadObjectFromAPI <msEventRegistration>(ContextID); if (targetEventRegistration == null) { GoToMissingRecordPage(); return; } targetEvent = LoadObjectFromAPI <msEvent>(targetEventRegistration.Event); targetOwner = LoadObjectFromAPI <msEntity>(targetEventRegistration.Owner); if (targetOwner == null || targetEvent == null) { GoToMissingRecordPage(); return; } loadEventOwners(); }
public static void Clear() { MultiStepWizards.RenewMembership.Membership = null; Entity = null; }
public static List <string> GetEntitiesEligibleForGroupRegistration(msEvent targetEvent, msEntity currentEntity, IConciergeAPIService api) { if (targetEvent == null) { throw new ArgumentNullException("targetEvent"); } if (api == null) { throw new ArgumentNullException("api"); } List <string> applicableRelationshipTypes = targetEvent.SafeGetValue <List <string> >("GroupRegistrationRelationshipTypes"); if (applicableRelationshipTypes == null || applicableRelationshipTypes.Count == 0) { return(null); // there are no registration types enabled } if (currentEntity == null) { return(null); } List <string> entities = new List <string>(); if (currentEntity.ClassType == msOrganization.CLASS_NAME) // an organization can always manage themselves { entities.Add(currentEntity.ID); return(entities); } // OK, let's see if this person is linked to any companies Search s = new Search("RelationshipsForARecord"); s.Context = currentEntity.ID; s.AddCriteria(Expr.Equals("IsLeftSide", false)); // the right side of the relationship is the individual // MSIV-5 Indivdiuals with expired relationships should not be eligible for Event Group Registration var sog1 = new SearchOperationGroup { GroupType = SearchOperationGroupType.Or }; sog1.Criteria.Add(Expr.Equals(msRelationship.FIELDS.StartDate, null)); sog1.Criteria.Add(Expr.IsLessThanOrEqual(msRelationship.FIELDS.StartDate, DateTime.Today.Date)); s.AddCriteria(sog1); var sog2 = new SearchOperationGroup { GroupType = SearchOperationGroupType.Or }; sog2.Criteria.Add(Expr.Equals(msRelationship.FIELDS.EndDate, null)); sog2.Criteria.Add(Expr.IsGreaterThan(msRelationship.FIELDS.EndDate, DateTime.Today.Date)); s.AddCriteria(sog2); // now, we do an is one of the follow for relationship types IsOneOfTheFollowing isTypes = new IsOneOfTheFollowing { FieldName = "Type_ID" }; isTypes.ValuesToOperateOn = new List <object>(applicableRelationshipTypes); s.AddCriteria(isTypes); s.AddOutputColumn("Target_ID"); var values = api.GetSearchResult(s, 0, null).Table; foreach (DataRow dr in values.Rows) { entities.Add(Convert.ToString(dr["Target_ID"])); } // keep in mind we may have orphaned relationships, so we have to make sure each org ID exists! return(entities.Distinct().ToList()); }
private bool populateOrder() { if (targetOrder == null || targetOrder.LineItems == null || targetOrder.LineItems.Count == 0) { lblShoppingCartEmpty.Visible = true; btnPlaceOrder.Enabled = false; return(false); } // let's populate the order if (isTransient) { lbCancel.Enabled = false; // you can't do this for a transient order - you have to proceed CancelOrderWrapper.Visible = false; lblContinueShoppingInstructions.Visible = false; hlChangeShippingMethod.NavigateUrl += "?useTransient=true"; } // we have to preprocess the order to get the prices and such //if (string.IsNullOrWhiteSpace(targetOrder.BillingEmailAddress)) // targetOrder.BillingEmailAddress = ConciergeAPI.CurrentEntity.EmailAddress; //if (string.IsNullOrWhiteSpace(targetOrder.BillingEmailAddress)) // targetOrder.BillingEmailAddress = ConciergeAPI.CurrentUser.EmailAddress; using (var api = GetConciegeAPIProxy()) { if (targetOrder.BillTo != null && targetOrder.BillingAddress == null) { msEntity billTo = api.Get(targetOrder.BillTo).ResultValue.ConvertTo <msEntity>(); if (billTo.Addresses != null && billTo.Addresses.Count > 0) { var address = billTo.Addresses.FirstOrDefault(x => x.Type == billTo.PreferredAddressType) ?? billTo.Addresses[0]; targetOrder.BillingAddress = address.Address; } } if (targetOrder.ShippingAddress == null && targetOrder.ShipTo != null) { msEntity shipTo = api.Get(targetOrder.ShipTo).ResultValue.ConvertTo <msEntity>(); if (shipTo.Addresses != null && shipTo.Addresses.Count > 0) { var address = shipTo.Addresses.FirstOrDefault(x => x.Type == shipTo.PreferredAddressType) ?? shipTo.Addresses[0]; targetOrder.ShippingAddress = address.Address; } } //if it's still null just set the shipping address to the billing address - whatever it is (null is acceptable) if (targetOrder.ShippingAddress == null) { targetOrder.ShippingAddress = targetOrder.BillingAddress; } var csi = MultiStepWizards.PlaceAnOrder.CrossSellItems; if (csi != null && csi.Count > 0) { targetOrder.LineItems.AddRange(csi.FindAll(x => x.Quantity != 0)); // add any cross sell items hlChangeRemoveAdditionalItems.Visible = true; hlChangeRemoveAdditionalItems.NavigateUrl += "?useTransient" + isTransient; } if (targetOrder.Date == DateTime.MinValue) { targetOrder.Date = DateTime.Now; } preProcessedOrderPacket = api.PreProcessOrder(targetOrder).ResultValue; } cleanOrder = preProcessedOrderPacket.FinalizedOrder.ConvertTo <msOrder>(); // for display, we want to summarize shipping/taxes, so lets remove those items from the order List <msOrderLineItem> itemsToDisplay = new List <msOrderLineItem>(cleanOrder.LineItems); itemsToDisplay.RemoveAll(x => x.Type == OrderLineItemType.Shipping || x.Type == OrderLineItemType.Taxes || x.Type == OrderLineItemType.Discount); // let's hide the demographics warning divMissingDemographics.Visible = false; btnPlaceOrder.Enabled = true; gvShoppingCart.DataSource = itemsToDisplay; gvShoppingCart.DataBind(); lblShoppingCartEmpty.Visible = false; lblShipping.Text = preProcessedOrderPacket.ShippingCharges.ToString("C"); lblTaxes.Text = preProcessedOrderPacket.Taxes.ToString("C"); lblTotal.Text = preProcessedOrderPacket.Total.ToString("C"); lblDiscounts.Text = preProcessedOrderPacket.Discount.ToString("C"); lblTotalDueNow.Text = preProcessedOrderPacket.AmountDueNow.ToString("C"); return(true); }
public static bool setProfileImage(Image image, msEntity entity) { return(setProfileImage(image, entity.Image)); }