コード例 #1
0
        private void AddTask()
        {
            string defaultAddress = addresses[0];

            using (var form = new EditHostEntryForm(view.ServiceProvider, addresses))
            {
                form.Text = Resources.AddHostEntryDialogTitle;

                HostEntry selectedEntry = view.SelectedEntries.Select(c => c.HostEntry).FirstOrDefault();

                form.EditableFields = HostEntryField.All;
                form.HostEntry      = new HostEntry("", defaultAddress, null);

                DialogResult result = view.ShowDialog(form);

                if (result == DialogResult.OK)
                {
                    this.module.ServiceProxy.AddEntries(new List <HostEntry>()
                    {
                        form.HostEntry
                    });
                    this.UpdateData();
                }
            }
        }
コード例 #2
0
        public virtual void EditSelectedEntry()
        {
            using (var form = new EditHostEntryForm(view.ServiceProvider, addresses))
            {
                form.Text = Resources.EditHostEntryDialogTitle;

                HostEntry templateEntry = this.view.SelectedEntries.First().HostEntry;
                HostEntry editingEntry  = templateEntry.Clone();

                form.EditableFields = options.EditableFields;
                form.HostEntry      = editingEntry;

                DialogResult result = view.ShowDialog(form);

                if (result == DialogResult.OK)
                {
                    var originalEntries = SelectedEntries.Select(m => m.HostEntry).ToList();
                    var editedEntries   = SelectedEntries.Select(entry =>
                    {
                        var newEntry = entry.HostEntry.Clone();
                        this.ApplyChanges(newEntry, editingEntry, form.FieldChanges);

                        return(newEntry);
                    })
                                          .ToList();

                    try
                    {
                        this.module.ServiceProxy.EditEntries(originalEntries, editedEntries);
                    }
                    catch (HostsFileServiceException ex)
                    {
                        uiService.ShowError(ex, null, Resources.ActionFailedTitle, false);
                        return;
                    }

                    this.UpdateData();
                }
            }
        }