private void PictureTotalInfoTakerButton_Click(object sender, RoutedEventArgs e)
        {
            if (this.picHandler == null)
            {
                this.picHandler = new PictureActionHandler();

                this.picHandler.AfterAdd = (i) =>
                    {
                        if (!IsSelectionMode && this.actionType == PageActionType.Edit)
                        {
                            ViewModelLocator.PicturesViewModel.SavePicture(new PictureInfo[] { i });
                        }

                        if (!IsSelectionMode)
                        {
                            currentEditObject.Pictures.Add(i);
                        }

                        if (!IsSelectionMode && this.actionType == PageActionType.Edit)
                        {
                            this.accountItemViewModel.Update(currentEditObject);
                        }

                        if (IsSelectionMode)
                        {
                            //...
                            i.Tag = PictureInfo.ScheduledAccountItemsTag;
                            i.AttachedId = currentEditObject.AutoTokenId;
                            // record pictures added.
                            currentEditObject.AddPicture(i);

                            if (actionType == PageActionType.Edit)
                            {
                                ViewModelLocator.PicturesViewModel.SavePicture(i);
                                ViewModelLocator.PicturesViewModel.InsertAndSubmit(i);
                            }
                        }
                    };

                this.picHandler.Update = (i) =>
                    {
                        if (this.actionType == PageActionType.Edit)
                        {
                            if (IsSelectionMode)
                            {
                                // update pic info
                                var pic = ViewModelLocator.PicturesViewModel.AccountBookDataContext.PictureInfos.FirstOrDefault(p => p.Id == i.Id);

                                if (pic != null)
                                {
                                    pic.Comments = i.Comments;
                                    ViewModelLocator.PicturesViewModel.Update(pic);
                                }

                            }
                            else
                            {
                                this.accountItemViewModel.Update(currentEditObject);
                            }
                        }
                    };

                this.picHandler.AfterDelete = (i) =>
                {
                    if (!IsSelectionMode)
                    {
                        currentEditObject.Pictures.Remove(i);
                    }

                    if (this.actionType == PageActionType.Edit && !IsSelectionMode)
                    {
                        ViewModelLocator.PicturesViewModel.DeletePicture(i);
                        this.accountItemViewModel.Update(currentEditObject);
                    }

                    if (IsSelectionMode)
                    {
                        // record pictures removed.
                        currentEditObject.RemovePicture(i);

                        if (actionType == PageActionType.Edit)
                        {
                            //...
                            ViewModelLocator.PicturesViewModel.DeletePicture(i);
                        }
                    }
                };
                this.picHandler.GetItems = () =>
                {
                    if (IsSelectionMode)
                    {
                        return currentEditObject.PicturesOutOfDatabase;
                    }
                    else
                    {
                        return currentEditObject.Pictures;
                    }
                };

                PictureBrowser.PictureHandler = this.picHandler;
            }
            if (currentEditObject != null)
            {
                if (IsSelectionMode)
                {
                    PictureBrowser.Go(currentEditObject.AutoTokenId, PictureInfo.ScheduledAccountItemsTag, this);
                }
                else
                {
                    PictureBrowser.Go(currentEditObject.Id, PictureInfo.AccountItemsTag, this);
                }
            }
        }
 private void PictureTotalInfoTakerButton_Click(object sender, RoutedEventArgs e)
 {
     System.Action<PictureInfo> action = null;
     System.Action<PictureInfo> action2 = null;
     System.Action<PictureInfo> action3 = null;
     if (this.picHandler == null)
     {
         this.picHandler = new PictureActionHandler();
         if (action == null)
         {
             action = delegate(PictureInfo i)
             {
                 if (this.actionType == PageActionType.Edit)
                 {
                     ViewModelLocator.PicturesViewModel.SavePicture(new PictureInfo[] { i });
                 }
                 currentEditObject.Pictures.Add(i);
                 if (this.actionType == PageActionType.Edit)
                 {
                     this.accountItemViewModel.Update(currentEditObject);
                 }
             };
         }
         this.picHandler.AfterAdd = action;
         if (action2 == null)
         {
             action2 = delegate(PictureInfo i)
             {
                 if (this.actionType == PageActionType.Edit)
                 {
                     this.accountItemViewModel.Update(currentEditObject);
                 }
             };
         }
         this.picHandler.Update = action2;
         if (action3 == null)
         {
             action3 = delegate(PictureInfo i)
             {
                 currentEditObject.Pictures.Remove(i);
                 if (this.actionType == PageActionType.Edit)
                 {
                     ViewModelLocator.PicturesViewModel.DeletePicture(i);
                     this.accountItemViewModel.Update(currentEditObject);
                 }
             };
         }
         this.picHandler.AfterDelete = action3;
         this.picHandler.GetItems = () => currentEditObject.Pictures;
         PictureBrowser.PictureHandler = this.picHandler;
     }
     if (currentEditObject != null)
     {
         PictureBrowser.Go(currentEditObject.Id, "AccountItmes", this);
     }
 }
 private void PicturesEditor_Click(object sender, RoutedEventArgs e)
 {
     System.Action<PictureInfo> action = null;
     System.Action<PictureInfo> action2 = null;
     System.Action<PictureInfo> action3 = null;
     System.Func<IEnumerable<PictureInfo>> func = null;
     if (this.picHandler == null)
     {
         this.picHandler = new PictureActionHandler();
         if (action == null)
         {
             action = delegate(PictureInfo i)
             {
                 ViewModelLocator.PicturesViewModel.SavePicture(new PictureInfo[] { i });
                 this.CurrentObject.Pictures.Add(i);
                 this.accountItemViewModel.Update(this.CurrentObject);
             };
         }
         this.picHandler.AfterAdd = action;
         if (action2 == null)
         {
             action2 = delegate(PictureInfo i)
             {
                 this.accountItemViewModel.Update(this.CurrentObject);
             };
         }
         this.picHandler.Update = action2;
         if (action3 == null)
         {
             action3 = delegate(PictureInfo i)
             {
                 this.CurrentObject.Pictures.Remove(i);
                 ViewModelLocator.PicturesViewModel.DeletePicture(i);
                 this.accountItemViewModel.Update(this.CurrentObject);
             };
         }
         this.picHandler.AfterDelete = action3;
         if (func == null)
         {
             func = () => this.CurrentObject.Pictures;
         }
         this.picHandler.GetItems = func;
         PictureBrowser.PictureHandler = this.picHandler;
     }
     PictureBrowser.Go(this.CurrentObject.Id, "AccountItems", this);
 }