Example #1
0
        /// <summary>
        /// View -> Model
        /// </summary>
        /// <param name="original"></param>
        public void Merge(myGlob original, DataFormMode editMode)
        {
            if (editMode == DataFormMode.Edit)
            {
                original.id          = this.id;
                original.idSpecified = true;
            }
            else
            {
                original.idSpecified = false;
            }

            original.shopName                  = this.shopName;
            original.slogan                    = this.slogan;
            original.phoneNumber               = this.phoneNumber;
            original.logoAbsoluteUrl           = this.logoAbsoluteUrl;
            original.address                   = this.address;
            original.page404                   = this.page404;
            original.page500                   = this.page500;
            original.pageNoSearchResult        = this.pageNoSearchResult;
            original.footer                    = this.footer;
            original.googleCustSearchCode      = this.googleCustSearchCode;
            original.signupAgreement           = this.signupAgreement;
            original.version                   = this.version;
            original.siteType                  = this.siteType;
            original.unlockEmailTemplate       = this.unlockEmailTemplate;
            original.resetPasswordMailTemplate = this.resetPasswordMailTemplate;

            original.siteTypeSpecified = true;
        }
        /// <summary>
        /// Thread body
        /// </summary>
        /// <param name="state"></param>
        private void StartWork(object state)
        {
            GlobalView globalView  = state as GlobalView;
            myGlob     savedGlobal = null;
            myGlob     theGlobal   = new myGlob();

            globalView.Merge(theGlobal, editMode);

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

            Globals.WSClient.save_MyGlobCompleted += h1;
            Globals.WSClient.save_MyGlobAsync(theGlobal);
            nextOneAutoResetEvent.WaitOne();
            Globals.WSClient.save_MyGlobCompleted -= h1;

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

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

            ShopproHelper.HideBusyIndicator(this);

            // No unsaved item
            this.editMode = DataFormMode.ReadOnly;
        }
Example #3
0
 /// <summary>
 /// Model -> View
 /// </summary>
 /// <param name="original"></param>
 public GlobalView(myGlob original)
 {
     this.id                        = original.id;
     this.shopName                  = original.shopName;
     this.slogan                    = original.slogan;
     this.phoneNumber               = original.phoneNumber;
     this.logoAbsoluteUrl           = original.logoAbsoluteUrl;
     this.address                   = original.address;
     this.page404                   = original.page404;
     this.page500                   = original.page500;
     this.pageNoSearchResult        = original.pageNoSearchResult;
     this.footer                    = original.footer;
     this.googleCustSearchCode      = original.googleCustSearchCode;
     this.signupAgreement           = original.signupAgreement;
     this.version                   = original.version;
     this.siteType                  = original.siteType;
     this.unlockEmailTemplate       = original.unlockEmailTemplate;
     this.resetPasswordMailTemplate = original.resetPasswordMailTemplate;
 }
        /// <summary>
        /// global -> GlobalView in collection
        /// </summary>
        /// <param name="articleCollection"></param>
        /// <returns></returns>
        static public GlobalView Convert(myGlob global)
        {
            GlobalView globalView = new GlobalView(global);

            return(globalView);
        }