/// <summary>
 /// Model -> View
 /// </summary>
 /// <param name="original"></param>
 public PaypalView(paypalAccessInfo original)
 {
     this.id           = original.id;
     this.apiUserName  = original.apiUserName;
     this.apiPassword  = original.apiPassword;
     this.apiSignature = original.apiSignature;
     this.useSandbox   = original.useSandbox;
 }
Esempio n. 2
0
        /// <summary>
        /// Thread body
        /// </summary>
        /// <param name="state"></param>
        private void StartWork(object state)
        {
            PaypalView       paypalView  = state as PaypalView;
            paypalAccessInfo savedPaypal = null;
            paypalAccessInfo thePaypal   = new paypalAccessInfo();

            paypalView.Merge(thePaypal, editMode);

            // Save to backend
            AutoResetEvent nextOneAutoResetEvent            = new AutoResetEvent(false);
            EventHandler <save_PaypalCompletedEventArgs> h1 = (s, e) =>
            {
                // TODO: handle error from server side
                savedPaypal = e.Result;
                nextOneAutoResetEvent.Set();
            };

            Globals.WSClient.save_PaypalCompleted += h1;
            Globals.WSClient.save_PaypalAsync(thePaypal);
            nextOneAutoResetEvent.WaitOne();
            Globals.WSClient.save_PaypalCompleted -= h1;

            // Check return result. If failure, savedCategory will be null
            if (savedPaypal != null)
            {
                this.Dispatcher.BeginInvoke(delegate()
                {
                    paypalView.Restore(new PaypalView(savedPaypal));
                });
            }
            else
            {
                ShopproHelper.ShowMessageWindow(this, "Error", "Fail to save this entry.", false);

                // Back to readonly mode
                this.Dispatcher.BeginInvoke(delegate()
                {
                    // Restore cached UI data
                    paypalView.CancelEdit();
                    this.itemDataForm.CancelEdit();
                });
            }

            ShopproHelper.HideBusyIndicator(this);

            // No unsaved item
            this.editMode = DataFormMode.ReadOnly;
        }
        /// <summary>
        /// View -> Model
        /// </summary>
        /// <param name="original"></param>
        public void Merge(paypalAccessInfo original, DataFormMode editMode)
        {
            if (editMode == DataFormMode.Edit)
            {
                original.id          = this.id;
                original.idSpecified = true;
            }
            else
            {
                original.idSpecified = false;
            }

            original.apiUserName  = this.apiUserName;
            original.apiPassword  = this.apiPassword;
            original.apiSignature = this.apiSignature;
            original.useSandbox   = this.useSandbox;
        }