예제 #1
0
        /// <summary>
        /// Initialize the GUI.
        /// </summary>
        /// <param name="parameter"></param>
        protected override void InitializeData(object parameter)
        {
            settlementLetter = null;
            Guid consumerTrustSettlementId = (Guid)parameter;

            if ((consumerTrustSettlementId != null) && (consumerTrustSettlementId != Guid.Empty))
            {
                // Lock the data model to extract information from the settlementRow.
                lock (DataModel.SyncRoot)
                {
                    ConsumerTrustSettlementRow consumerTrustSettlementRow = DataModel.ConsumerTrustSettlement.ConsumerTrustSettlementKey.Find(consumerTrustSettlementId);
                    if (!consumerTrustSettlementRow.IsSettlementLetterNull())
                    {
                        settlementLetter = Convert.FromBase64String(consumerTrustSettlementRow.SettlementLetter);
                    }
                }

                // Dispatch to foreground thread for updating the GUI.
                if (settlementLetter != null)
                {
                    this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new SettlementLetterHandler(UpdateConsole), settlementLetter);
                }

                currentConsumerTrustSettlementId = consumerTrustSettlementId;
            }
            else
            {
                //Clear out when switching between Debt Classes.
                if ((IsLetterLoaded) && (consumerTrustSettlementId == Guid.Empty))
                {
                    // Sending null to clear out the settlement from the viewer.
                    this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new SettlementLetterHandler(UpdateConsole), null);
                    settlementLetter = null;
                }
                else if ((currentConsumerTrustSettlementId != null) && (currentConsumerTrustSettlementId != Guid.Empty))
                {
                    // Lock the data model to extract information from the settlementRow.
                    lock (DataModel.SyncRoot)
                    {
                        ConsumerTrustSettlementRow consumerTrustSettlementRow = DataModel.ConsumerTrustSettlement.ConsumerTrustSettlementKey.Find(currentConsumerTrustSettlementId);
                        if (!consumerTrustSettlementRow.IsSettlementLetterNull())
                        {
                            settlementLetter = Convert.FromBase64String(consumerTrustSettlementRow.SettlementLetter);
                        }
                    }

                    // Dispatch to foreground thread for updating the GUI.
                    if (settlementLetter != null)
                    {
                        this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new SettlementLetterHandler(UpdateConsole), settlementLetter);
                    }
                }
            }
        }