internal void Update()
        {
            if (FrontSideLayout.m_CaptionInfo.Count == RearSideLayout.m_CaptionInfo.Count && (FrontSideLayout.m_CaptionInfo.Count != 0 || RearSideLayout.m_CaptionInfo.Count != 0))
            {
                if (MessageBox.Show("Maybe error ocurred! Terminate programm?", "SupplementLayout.Update()", MessageBoxButton.YesNo, MessageBoxImage.Asterisk) == MessageBoxResult.Yes)
                {
                    MainWindow.instance.Close();
                    //throw new InvalidOperationException();
                }
            }
            m_Layout.Data1 = LayoutFileReader.GetBytes(SerializeToString(FrontSideLayout));
            m_Layout.Data2 = LayoutFileReader.GetBytes(SerializeToString(RearSideLayout));

            if (!ReferenceEquals(m_Layout.Data3, FrontSideLayout.BackgroundImage))
            {
                m_Layout.Data3 = FrontSideLayout.BackgroundImage;
            }

            if (!ReferenceEquals(m_Layout.Data4, RearSideLayout.BackgroundImage))
            {
                m_Layout.Data4 = RearSideLayout.BackgroundImage;
            }

            IsChanged = true;
        }
        public bool Create(string fileName, string layoutName, LayoutType layoutType)
        {
            m_FileName = fileName;
            m_Layout   = new Layout();

            FrontSideLayout = new LayoutProperties()
            {
                Name            = layoutName,
                LayoutType      = layoutType,
                Size            = new System.Windows.Point(21, 14.8),
                BackgroundImage = LayoutFileReader.ImageToByte(Properties.Resources.DefaultBackground)
            };

            RearSideLayout = new LayoutProperties()
            {
                Name            = layoutName,
                LayoutType      = layoutType,
                Size            = new System.Windows.Point(21, 14.8),
                BackgroundImage = LayoutFileReader.ImageToByte(Properties.Resources.DefaultBackground)
            };

            try
            {
                Save();

                return(true);
            }
            catch (Exception e)
            {
                System.Diagnostics.Trace.TraceError(e.ToString());
                LastException = e;
            }

            return(false);
        }
        private void Load()
        {
            try
            {
                m_Layout = new Layout(m_FileName);
            }
            catch (FileLoadException)
            {
                MessageBox.Show("Layout file " + m_FileName + " cannot be loaded!", "Supplement Processor", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                m_IsLoading = false;
                return;
            }

            FrontSideLayout = ReadLayoutXml(LayoutFileReader.GetString(m_Layout.Data1));
            RearSideLayout  = ReadLayoutXml(LayoutFileReader.GetString(m_Layout.Data2));

            FrontSideLayout.BackgroundImage = m_Layout.Data3;
            RearSideLayout.BackgroundImage  = m_Layout.Data4;

            m_IsLoading = false;

            if (OnSupplementLayoutLoaded != null)
            {
                OnSupplementLayoutLoaded(this, EventArgs.Empty);
            }
        }