コード例 #1
0
        public webcamConfig(formDelegate sender, ArrayList from, List <CameraButtonGroup> CameraButtonGroupInstance, SaveChanges save)
        {
            saveChanges        = save;
            toolTip            = (bool)from[0];
            mainSelectedWebcam = (int)from[1];
            autoscroll         = (bool)from[2];
            // buttons = (List<camButtons.ButtonColourEnum>)from[3];
            webcamConfigDelegate = sender;
            from.Clear();
            InitializeComponent();

            //this.Controls.Add(ButtonCameraControl);
            //ButtonCameraControl.Location = new Point(5, 480);
            //ButtonCameraControl.AddExistingButtons(CameraButtonGroupInstance);
            ConfigureCameraButtons(CameraButtonGroupInstance);
            //CameraButtons = CameraButtonGroupInstance;

            LevelControlBox.Left = 417;
            LevelControlBox.Top  = 18;
            this.Controls.Add(LevelControlBox);

            camButtonSetColours();

            cameraSwitch(CameraRig.ConnectedCameras[CameraRig.CurrentlyDisplayingCamera].displayButton, true);
        }
コード例 #2
0
        private void AcceptChangesButton(object sender, RoutedEventArgs e)
        {
            XmlDocument settings = new XmlDocument();
            XmlNode     root     = settings.CreateElement("gestures");

            settings.AppendChild(root);
            foreach (var gestureParameters in listOfGestures)
            {
                XmlNode      gesture        = settings.CreateElement("gesture");
                XmlAttribute gestureCode    = settings.CreateAttribute("gestureCode");
                XmlAttribute gestureType    = settings.CreateAttribute("gestureType");
                XmlAttribute gestureCommand = settings.CreateAttribute("gestureCommand");

                gestureCode.Value    = gestureParameters.code;
                gestureType.Value    = gestureParameters.type.ToString();
                gestureCommand.Value = gestureParameters.command;
                gesture.Attributes.Append(gestureCode);
                gesture.Attributes.Append(gestureType);
                gesture.Attributes.Append(gestureCommand);
                gestureCode = settings.CreateAttribute("gestureCode");

                root.AppendChild(gesture);
            }
            settings.Save("Settings.xml");
            SaveChanges?.Invoke(this, EventArgs.Empty);
            loadSettings();
            MessageBox.Show("Changes Saved");
            changesMade       = false;
            this.DialogResult = true;
        }
コード例 #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            //change
            button4.Enabled = false;
            textBox1.Text  += Environment.NewLine;
            if (comboBox1.SelectedIndex != -1 && comboBox2.SelectedIndex != -1)
            {
                SetTrueFalse(false, 1);
                SetTrueFalse(false, 2);

                SaveChanges?.Invoke(this, new EntityIdEventArgs(Editor.GetId(comboBox2.SelectedItem.ToString())));
                textBox1.Text += Environment.NewLine + Environment.NewLine + DateTime.Now.ToString() + Environment.NewLine + String.Format("Врач: {0} {1} {2}. Специальность: {3}.", doctor.FirstName, doctor.LastName, doctor.Patronymic, SpecializationName) + Environment.NewLine;

                textBox1.SelectionStart = textBox1.TextLength;
                textBox1.ScrollToCaret();
                textBox1.Focus();
            }
            if (comboBox1.SelectedIndex == -1)
            {
                errorProvider1.SetError(comboBox1, "Выберите пациента!");
            }
            if (comboBox2.SelectedIndex == -1)
            {
                errorProvider1.SetError(comboBox2, "Выберите врача!");
            }
        }
コード例 #4
0
ファイル: Registration.cs プロジェクト: Chebotkov/Polyclinic
        private void Save_Click(object sender, EventArgs e)
        {
            errorProvider1.Clear();
            save = true;
            foreach (TextBox TB in TextBoxes)
            {
                if (String.IsNullOrEmpty(TB.Text))
                {
                    errorProvider1.SetError(TB, "Поле должно быть заполнено!");
                    save = false;
                }
            }

            if (comboBox1.SelectedItem == null)
            {
                errorProvider1.SetError(comboBox1, "Выберите участок!");
                save = false;
            }
            else
            {
                if (String.IsNullOrEmpty(textBox4.Text))
                {
                    errorProvider1.SetError(textBox4, "Введите улицу!");
                    save = false;
                }

                if (String.IsNullOrEmpty(textBox5.Text))
                {
                    errorProvider1.SetError(textBox5, "Введите номер дома!");
                    save = false;
                }

                if (!maskedTextBox1.MaskFull)
                {
                    errorProvider1.SetError(maskedTextBox1, "Введите дату!");
                    save = false;
                }
                else
                {
                    if (!DateTime.TryParse(maskedTextBox1.Text, out DateTime datetime))
                    {
                        messageService.ShowError("Неверная дата");
                        save = false;
                    }
                }

                if (domainUpDown1.SelectedItem == null)
                {
                    errorProvider1.SetError(domainUpDown1, "Выберите пол!");
                    save = false;
                }
            }

            if (save)
            {
                SaveChanges?.Invoke(this, EventArgs.Empty);
                messageService.ShowInfo("Данные о пациенте успешно добавлены.");
                Close();
            }
        }
コード例 #5
0
ファイル: DteWindowAdapter.cs プロジェクト: jrowies/dsmaddin
        public bool Close(SaveChanges saveChanges)
        {
            switch (saveChanges)
            {
            case SaveChanges.No:
                _dteWindow.Close(vsSaveChanges.vsSaveChangesNo);
                break;

            case SaveChanges.Yes:
                _dteWindow.Close(vsSaveChanges.vsSaveChangesYes);
                break;

            case SaveChanges.Prompt:
                try
                {
                    _dteWindow.Close(vsSaveChanges.vsSaveChangesPrompt);
                }
                catch //user cancelled the operation
                {
                    return(false);
                }
                break;
            }

            return(true);
        }
コード例 #6
0
        public DetailInvoiceFileDesignerForm(IViewModelBase VM)
        {
            InitializeComponent();
            SaveChanges.SetParent(ModalDialogParent);

            DataContext = VM;
            SetCloseHandler();
        }
コード例 #7
0
 private void TableTypesCombo_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (SaveChanges.Modified == true)
     {
         if (SaveChanges.ShowHandlerDialog() == false)
         {
         }
     }
 }
コード例 #8
0
        public DisplayNotes(IViewModelBase VM)
        {
            InitializeComponent();
            SaveChanges.SetParent(ModalDialogParent);

            DataContext = VM;

            SetCloseHandler();
            // When the ViewModel asks to be closed, close the window.
        }
コード例 #9
0
 override protected void OnClosing(CancelEventArgs e)
 {
     if (SaveChanges.Modified == true)
     {
         if (SaveChanges.ShowHandlerDialog() == false)
         {
             e.Cancel = true;
             SetCloseHandler();
         }
     }
 }
コード例 #10
0
        //Этот методобновляет прочие наценки
        private void UpdateAnotherCharge()
        {
            workcharge  = WorkCharge.Value;
            partscharge = PartsCharge.Value;

            currenttab.WorkCharge  = workcharge;
            currenttab.PartsCharge = partscharge;
            SaveChanges?.Invoke();

            UpdateCount();
        }
コード例 #11
0
        private void ChangeTabTitle(object sender, MouseButtonEventArgs e)
        {
            var newname = Interaction.InputBox("Введите", "Введите новое название:");

            if (string.IsNullOrWhiteSpace(newname))
            {
                Interaction.MsgBox("Введите название!");
                return;
            }
            TabTitle.Content = newname;
            currenttab.Name  = newname;
            SaveChanges?.Invoke();
        }
コード例 #12
0
        private async void button_confirm_Clicked(object sender, EventArgs e)
        {
            // Здесь выберем элемент, довлетворяющий выбранному элементу списка
            var res = lvitems.SelectedItem as ModelForSelect;

            if (_view != null)
            {
                ((Label)((Grid)_view).Children[0]).Text = res?.Content;
                await Navigation.PopPopupAsync();

                SaveChanges?.Invoke(_view, EventArgs.Empty);
            }
            //Передаем в другом случае (для LinearList)
            else
            {
                await Navigation.PopPopupAsync();

                SaveChanges?.Invoke(res?.Content, EventArgs.Empty);
            }
        }
コード例 #13
0
        public async Task <bool> ChangesCheckedAndSavedSuccessfully()
        {
            ModelChecker.Check(this.ModelState);

            TempData.CorrectEmptyArrays <int>();

            if (CategoryTypeSelection != null)
            {
                Category.CategoryType = _context.CategoryTypes.FirstOrDefault(x => x.Id == CategoryTypeSelection);
            }
            else
            {
                Category.CategoryType = null;
            }


            TempData.Clear();

            return(await SaveChanges.SavedSuccessfully(this._context, this._context.Categories, this.Category));
        }
コード例 #14
0
        //Этот метод должен добавять новые элементы
        private void UpdateTabRecords(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            if (e.OldItems != null)
            {
                foreach (TabRecord oldItem in e.OldItems)
                {
                    currenttab.TabRecords.Remove(oldItem);
                    oldItem.PropertyChanged -= UpdateTabRecord;
                }
            }

            if (e.NewItems != null)
            {
                foreach (TabRecord newItem in e.NewItems)
                {
                    currenttab.TabRecords.Add(newItem);
                    newItem.PropertyChanged += UpdateTabRecord;
                }
            }

            SaveChanges?.Invoke();
        }
コード例 #15
0
        public void Init(string functionDescription,
                         TabControl parent, TabItem thisTabItem,
                         ExistingChanges existingChangesCallback, SaveChanges saveChangesCallback, ResetChanges resetChangesCallback)
        {
            _functionDescription     = functionDescription;
            _existingChangesCallback = existingChangesCallback;
            _saveChangesCallback     = saveChangesCallback;
            _resetChangesCallback    = resetChangesCallback;

            _tabControl  = parent;
            _thisTabItem = thisTabItem;

            if (_tabControl != null && _thisTabItem != null)
            {
                var p = thisTabItem.Parent;
                _tabControl.SelectionChanged += parent_SelectionChanged;
            }
            else
            {
                IsVisibleChanged += SaveOrResetUC_IsVisibleChanged;
            }
        }
コード例 #16
0
 public PipelineBuilder(
     SendEmail sendEmail,
     SaveChanges saveChanges,
     RegisterUser registerUser,
     ScheduleTaskToBuyReturnTicket scheduleTaskToBuyReturnTicket,
     NotifySlack notifySlack,
     GenerateTickets generateTickets,
     GenerateEmail generateEmail,
     CardinityPayment creditCardPayment,
     PayPalPayment payPalPayment)
 {
     //keeping short for brevity
     _sendEmail    = sendEmail;
     _saveChanges  = saveChanges;
     _registerUser = registerUser;
     _scheduleTaskToBuyReturnTicket = scheduleTaskToBuyReturnTicket;
     _notifySlack       = notifySlack;
     _generateTickets   = generateTickets;
     _generateEmail     = generateEmail;
     _creditCardPayment = creditCardPayment;
     _payPalPayment     = payPalPayment;
 }
コード例 #17
0
        public async Task <bool> ChangesCheckedAndSavedSuccessfully()
        {
            ModelChecker.Check(this.ModelState);

            TempData.CorrectEmptyArrays <int>();

            UpdateJoinTableFromSelectList.Update(_context.BrickCategories, Brick, TempData[nameof(categorySelectionOrig)] as int[], CategorySelect);

            UpdateJoinTableFromSelectList.Update(_context.BrickToBrick, Brick, TempData[nameof(childrenSelectOrig)] as int[], ChildrenSelect);

            UpdateJoinTableFromSelectList.Update(_context.BrickToBrick, Brick, TempData[nameof(parentsSelectOrig)] as int[], ParentsSelect, Relationship.Reversed);

            TempData.Clear();

            return(await SaveChanges.SavedSuccessfully(this._context, this._context.Bricks, this.Brick));

            /*
             * _context.Attach(Brick).State = EntityState.Modified;
             *
             * try
             * {
             *  await _context.SaveChangesAsync();
             * }
             * catch (DbUpdateConcurrencyException)
             * {
             *  if (!_context.Bricks.Any(e => e.Id == Brick.Id))
             *  {
             *      return false;
             *  }
             *  else
             *  {
             *      throw;
             *  }
             *
             * }
             * return true;*/
        }
コード例 #18
0
ファイル: DteWindowAdapter.cs プロジェクト: jrowies/dsmaddin
        public bool Close(SaveChanges saveChanges)
        {
            switch (saveChanges)
              {
              	case SaveChanges.No:
              _dteWindow.Close(vsSaveChanges.vsSaveChangesNo);
              		break;
            case SaveChanges.Yes:
              _dteWindow.Close(vsSaveChanges.vsSaveChangesYes);
              break;
            case SaveChanges.Prompt:
              try
              {
            _dteWindow.Close(vsSaveChanges.vsSaveChangesPrompt);
              }
              catch //user cancelled the operation
              {
            return false;
              }
              break;
              }

              return true;
        }
コード例 #19
0
        private async void AddItemClick(object sender, MouseButtonEventArgs e)
        {
            foreach (var item in TabRecords)
            {
                if (item.Id == 0)
                {
                    RecordGrid.CurrentItem = RecordGrid.Items.GetItemAt(RecordGrid.Items.Count - 1);

                    var issaved = await SaveChanges?.Invoke();

                    if (issaved)
                    {
                        break;
                    }
                    else
                    {
                        Interaction.MsgBox("Заполните до конца предыдущее поле!");
                        return;
                    }
                }
            }
            TabRecords.Add(new TabRecord());
            IsChangesSaved = false;
        }
コード例 #20
0
        private void SetCharge(object sender, RoutedEventArgs e)
        {
            string input  = Interaction.InputBox("Введите", "Введите наценку");
            int    charge = 0;

            if (string.IsNullOrWhiteSpace(input))
            {
                return;
            }

            if (Int32.TryParse(input, out charge))
            {
                foreach (var item in TabRecords)
                {
                    item.Charge    = charge;
                    IsChangesSaved = true;
                    SaveChanges.Invoke();
                }
            }
            else
            {
                Interaction.MsgBox("Не удается преобразовать введенный текст в число. Наценка - число без запяток, без пробелов и прочего оформления. Только число!");
            }
        }
コード例 #21
0
 private void Save_Clicked(object sender, EventArgs e)
 {
     if (saving)
     {
         return;
     }
     saving = true;
     SaveChanges.ForeColor = Color.FromArgb(100, SaveChanges.ForeColor);
     SaveChanges.Text      = "Saving...";
     Task.Run(() =>
     {
         rows.ForEach(row =>
         {
             row.location.Update();
         });
         SaveChanges.SafeInvoke(b =>
         {
             Reload();
             b.ForeColor = Color.FromArgb(255, SaveChanges.ForeColor);
             b.Text      = "Save Changes";
             saving      = false;
         });
     });
 }
コード例 #22
0
ファイル: ExportWorkbook.cs プロジェクト: vantk85/openrpa
        protected override void Execute(CodeActivityContext context)
        {
            var readPassword = ReadPassword.Get(context);

            if (string.IsNullOrEmpty(readPassword))
            {
                readPassword = null;
            }
            var writePassword = WritePassword.Get(context);

            if (string.IsNullOrEmpty(writePassword))
            {
                writePassword = null;
            }
            var removeReadPassword  = RemoveReadPassword.Get(context);
            var removeWritePassword = RemoveWritePassword.Get(context);

            var formattype  = Type.Get(context);
            var workbook    = Workbook.Get(context);
            var filename    = Filename.Get(context);
            var saveChanges = SaveChanges.Get(context);

            if (!string.IsNullOrEmpty(filename))
            {
                filename = Environment.ExpandEnvironmentVariables(filename);
            }
            if (!string.IsNullOrEmpty(filename))
            {
                bool foundit = false;
                foreach (Microsoft.Office.Interop.Excel.Workbook w in officewrap.application.Workbooks)
                {
                    if (w.FullName == filename || string.IsNullOrEmpty(filename))
                    {
                        try
                        {
                            workbook = w;
                            foundit  = true;
                            //worksheet = workbook.ActiveSheet;
                            break;
                        }
                        catch (Exception)
                        {
                            workbook = null;
                        }
                    }
                }
                if (!foundit)
                {
                    Workbook tempworkbook = officewrap.application.ActiveWorkbook;
                    if (saveChanges && tempworkbook != null && (System.IO.Path.GetExtension(filename) != ".pdf" && System.IO.Path.GetExtension(filename) != ".xps"))
                    {
                        tempworkbook.SaveAs(Filename: filename, Password: readPassword, WriteResPassword: writePassword);
                        workbook = tempworkbook;
                    }
                }
            }
            if (workbook == null)
            {
                workbook = officewrap.application.ActiveWorkbook;
            }
            if (workbook != null)
            {
                if (string.IsNullOrEmpty(filename))
                {
                    filename = workbook.FullName;
                }
                officewrap.application.DisplayAlerts = false;
                if (!string.IsNullOrEmpty(readPassword))
                {
                    workbook.Password = readPassword; saveChanges = true;
                }
                if (removeReadPassword)
                {
                    workbook.Password = ""; saveChanges = true;
                }
                if (!string.IsNullOrEmpty(writePassword))
                {
                    workbook.WritePassword = writePassword; saveChanges = true;
                }
                if (removeWritePassword)
                {
                    workbook.WritePassword = ""; saveChanges = true;
                }
                var ext = System.IO.Path.GetExtension(filename);
                if (ext.ToLower() != ".xps" && formattype == "1")
                {
                    filename = System.IO.Path.ChangeExtension(filename, "xps");
                }
                else if (ext.ToLower() != ".pdf" && formattype == "0")
                {
                    filename = System.IO.Path.ChangeExtension(filename, "pdf");
                }
                if (System.IO.File.Exists(filename))
                {
                    System.IO.File.Delete(filename);
                }
                if (formattype == "1")
                {
                    workbook.ExportAsFixedFormat(XlFixedFormatType.xlTypeXPS, filename);
                }
                else
                {
                    workbook.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, filename);
                }
                workbook.Close(saveChanges);
                officewrap.application.DisplayAlerts = true;
            }

            if (officewrap.application.Workbooks.Count == 0)
            {
                officewrap.application.Quit();
            }
        }
コード例 #23
0
 public EmployeeViewModel(EmployeeModel model)
 {
     this.model  = model;
     editName    = Name;
     SaveChanges = new RelayCommand(() => { Name = EditName; SaveChanges.RaiseCanExecuteChanged(); }, () => IsDirty);
 }
コード例 #24
0
ファイル: Settings.cs プロジェクト: DariusPa/.TAIPT
 private void saveChangesButton_Click(object sender, EventArgs e)
 {
     SaveChanges?.Invoke(this, new UserRelatedEventArgs(UserName, UserSurname, UserEmail));
 }
コード例 #25
0
 private void button_confirm_Clicked(object sender, EventArgs e)
 {
     ((Label)((Grid)_view).Children[0]).Text = date_picker.Date.ToString("dd.MM.yyyy");
     Navigation.PopPopupAsync();
     SaveChanges?.Invoke(_view, EventArgs.Empty);
 }
コード例 #26
0
        //protected override void OnSizeAllocated(double width, double height)
        //{
        //    base.OnSizeAllocated(width, height);
        //    stackLayout.WidthRequest = width * 2 / 3;
        //    stackLayout.HeightRequest = height / 2;
        //}

        private void button_confirm_Clicked(object sender, EventArgs e)
        {
            if (editorText.Text.Equals(""))
            {
                return;
            }
            // Если у нас тип ячейки double, то отформатируем в соответствии с форматом
            switch (_cellType)
            {
            case CellType.IsDouble:
                var resultDouble = Convert.ToDouble(editorText.Text);
                // Необходимо проверить, попадает ли в диапазон значений полученное число
                if (_property.MIN_V != 0)
                {
                    if (resultDouble < _property.MIN_V)
                    {
                        resultDouble = _property.MIN_V;
                        DependencyService.Get <IMessage>().ShortAlert($"Значение было изменено на {resultDouble}");
                    }
                }
                if (_property.MAX_V != 0)
                {
                    if (resultDouble > _property.MAX_V)
                    {
                        resultDouble = _property.MAX_V;
                        DependencyService.Get <IMessage>().ShortAlert($"Значение было изменено на {resultDouble}");
                    }
                }
                ((Label)((Grid)_view).Children[0]).Text = resultDouble.ToString(_property.FORMAT ?? "F2");
                break;

            case CellType.IsNumeric:
                // Обрубаем часть, если есть запятая
                if (editorText.Text.IndexOf('.') > 0)
                {
                    editorText.Text = editorText.Text.Substring(0, editorText.Text.IndexOf('.'));
                }
                else if (editorText.Text.IndexOf(',') > 0)
                {
                    editorText.Text = editorText.Text.Substring(0, editorText.Text.IndexOf(','));
                }
                ((Label)((Grid)_view).Children[0]).Text = editorText.Text;
                switch (_property.COLUMNTYPE)
                {
                case "smallint":
                    var result = Convert.ToInt32(editorText.Text);
                    // В случае с результатом, выходящим за рамки int16, обрубаем по верхнему или нижнему краю int16
                    if (result < short.MinValue || result > short.MaxValue)
                    {
                        if (result < short.MinValue)
                        {
                            result = short.MinValue;
                        }
                        else if (result > short.MaxValue)
                        {
                            result = short.MaxValue;
                        }
                    }
                    if (_property.MIN_V != 0)
                    {
                        if (result < _property.MIN_V)
                        {
                            result = _property.MIN_V;
                            DependencyService.Get <IMessage>().ShortAlert($"Значение было изменено на {result}");
                        }
                    }
                    if (_property.MAX_V != 0)
                    {
                        if (result > _property.MAX_V)
                        {
                            result = _property.MAX_V;
                            DependencyService.Get <IMessage>().ShortAlert($"Значение было изменено на {result}");
                        }
                    }
                    ((Label)((Grid)_view).Children[0]).Text = result.ToString();
                    break;

                default:
                    var result32 = Convert.ToInt64(editorText.Text);
                    if (result32 == long.MinValue || result32 == long.MaxValue)
                    {
                        if (result32 < int.MinValue)
                        {
                            result32 = int.MinValue;
                        }
                        else if (result32 > int.MaxValue)
                        {
                            result32 = int.MaxValue;
                        }
                    }
                    if (_property.MIN_V != 0)
                    {
                        if (result32 < _property.MIN_V)
                        {
                            result32 = _property.MIN_V;
                            DependencyService.Get <IMessage>().ShortAlert($"Значение было изменено на {result32}");
                        }
                    }
                    if (_property.MAX_V != 0)
                    {
                        if (result32 > _property.MAX_V)
                        {
                            result32 = _property.MAX_V;
                            DependencyService.Get <IMessage>().ShortAlert($"Значение было изменено на {result32}");
                        }
                    }
                    ((Label)((Grid)_view).Children[0]).Text = result32.ToString();
                    break;
                }

                break;

            case CellType.IsText:
                ((Label)((Grid)_view).Children[0]).Text = editorText.Text;
                break;

            case CellType.IsLocation:
                var valueResult = editorText.Text;
                if (valueResult.IndexOf("+", StringComparison.Ordinal) != 0)
                {
                    var vals = valueResult.Split('+');
                    if (vals.Length > 1)
                    {
                        ((Label)((Grid)_view).Children[0]).Text = !vals[1].Equals("") ? valueResult : $"{vals[0]}+000";
                    }
                    else
                    {
                        ((Label)((Grid)_view).Children[0]).Text = $"{valueResult}+000";
                    }
                }
                else
                {
                    ((Label)((Grid)_view).Children[0]).Text = $"0+{valueResult.Split('+')[1]}";
                }

                break;
            }
            Navigation.PopPopupAsync();
            SaveChanges?.Invoke(_view, EventArgs.Empty);
        }
コード例 #27
0
        protected override void Execute(CodeActivityContext context)
        {
            var readPassword = ReadPassword.Get(context);

            if (string.IsNullOrEmpty(readPassword))
            {
                readPassword = null;
            }
            var writePassword = WritePassword.Get(context);

            if (string.IsNullOrEmpty(writePassword))
            {
                writePassword = null;
            }
            var removeReadPassword  = RemoveReadPassword.Get(context);
            var removeWritePassword = RemoveWritePassword.Get(context);

            var formattype = Type.Get(context);
            var document   = Document.Get(context);
            var filename   = Filename.Get(context);

            filename = Environment.ExpandEnvironmentVariables(filename);
            var saveChanges = SaveChanges.Get(context);

            Application activeObject = null;

            try
            {
                activeObject = (Application)Marshal.GetActiveObject("Word.Application");
                if (!string.IsNullOrEmpty(filename))
                {
                    foreach (Document current in activeObject.Documents)
                    {
                        if (current.FullName == filename)
                        {
                            document = current;
                            document.Close(saveChanges);
                            break;
                        }
                    }
                }
            }
            catch
            {
                activeObject = null;
            }
            finally
            {
                if (activeObject == null)
                {
                    activeObject = (Application)Activator.CreateInstance(Marshal.GetTypeFromCLSID(new Guid("000209FF-0000-0000-C000-000000000046")));
                }
                activeObject.Visible = true;
            }
            int doccount = 0;

            foreach (Document current in activeObject.Documents)
            {
                if (current.FullName == filename)
                {
                    doccount++;
                    break;
                }
            }
            object missing   = System.Type.Missing;
            object ofilename = filename;

            if (document == null)
            {
                document = activeObject.Documents.Open(ref ofilename, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
            }
            if (document != null)
            {
                if (string.IsNullOrEmpty(filename))
                {
                    filename = document.FullName;
                }
                officewrap.application.DisplayAlerts = false;
                if (!string.IsNullOrEmpty(readPassword))
                {
                    document.Password = readPassword; saveChanges = true;
                }
                if (removeReadPassword)
                {
                    document.Password = ""; saveChanges = true;
                }
                if (!string.IsNullOrEmpty(writePassword))
                {
                    document.WritePassword = writePassword; saveChanges = true;
                }
                if (removeWritePassword)
                {
                    document.WritePassword = ""; saveChanges = true;
                }
                var ext = System.IO.Path.GetExtension(filename);
                if (ext.ToLower() != ".xps" && formattype == "1")
                {
                    filename = System.IO.Path.ChangeExtension(filename, "xps");
                }
                else if (ext.ToLower() != ".pdf" && formattype == "0")
                {
                    filename = System.IO.Path.ChangeExtension(filename, "pdf");
                }
                if (System.IO.File.Exists(filename))
                {
                    System.IO.File.Delete(filename);
                }
                if (formattype == "1")
                {
                    document.ExportAsFixedFormat(filename, WdExportFormat.wdExportFormatXPS);
                }
                else
                {
                    document.ExportAsFixedFormat(filename, WdExportFormat.wdExportFormatPDF);
                }
                document.Close(saveChanges);
                officewrap.application.DisplayAlerts = true;
            }
        }