/// <summary> /// Called when the close button is clicked. /// </summary> private void DoneBTN_Click(object sender, System.EventArgs e) { try { mAreas_ = areaSourcesListCtrl_.GetAreas(); mSources_ = areaSourcesListCtrl_.GetSources(); // don't activate until all the filters are applied. bool active = mState_.Active; bool update = mSubscription_ != null; // create new subscription. if (mSubscription_ == null) { mState_.Active = false; mState_.ClientHandle = Guid.NewGuid().ToString(); mSubscription_ = (TsCAeSubscription)mServer_.CreateSubscription(mState_); } // update existing subscription. else { mSubscription_.ModifyState(((int)TsCAeStateMask.All & ~(int)TsCAeStateMask.Active), mState_); } // select filters. mFilters_.Areas.Clear(); mFilters_.Areas.AddRange(mAreas_); mFilters_.Sources.Clear(); mFilters_.Sources.AddRange(mSources_); mSubscription_.SetFilters(mFilters_); // select attributes. IDictionaryEnumerator enumerator = mAttributes_.GetEnumerator(); while (enumerator.MoveNext()) { int categoryId = (int)enumerator.Key; Technosoftware.DaAeHdaClient.Ae.TsCAeAttributeCollection attributeIDs = (Technosoftware.DaAeHdaClient.Ae.TsCAeAttributeCollection)enumerator.Value; mSubscription_.SelectReturnedAttributes(categoryId, attributeIDs.ToArray()); } // activate the subscription. if (active || update) { mState_.Active = active; mSubscription_.ModifyState((int)TsCAeStateMask.Active, mState_); } // close the dialog. DialogResult = DialogResult.OK; Close(); } catch (Exception exception) { MessageBox.Show(exception.Message); } }
/// <summary> /// Toggles the active/inactive state for a subscription. /// </summary> private void ActiveMI_Click(object sender, System.EventArgs e) { try { ListViewItem item = subscriptionsLv_.SelectedItems[0]; TsCAeSubscription subscription = (TsCAeSubscription)item.Tag; TsCAeSubscriptionState state = new TsCAeSubscriptionState { Active = !activeMi_.Checked }; subscription.ModifyState((int)TsCAeStateMask.Active, state); // toggle checkbox. activeMi_.Checked = !activeMi_.Checked; // update list. Update(item); // receive notifications. if (MSubscriptionAction != null) { MSubscriptionAction(subscription, !subscription.Active); } // adjust columns. AdjustColumns(subscriptionsLv_); } catch (Exception exception) { MessageBox.Show(exception.Message); } }