private void MainFormLoad(object sender, EventArgs e) { Form.CheckForIllegalCrossThreadCalls = false; Action <string> action = str => this.lbLog.Items.Add(str); Logger.AddAlgorithm(new ComponentLogWriteAlgorithm(action)); this.panel1.Enabled = false; this.generateToolStripMenuItem.Enabled = false; this.saveSettingsToolStripMenuItem.Enabled = false; this.splitContainer4.SplitterWidth = 10; this.splitContainer1.SplitterWidth = 10; this.RearrangeCountControls(); ToolStripButton tsbtnMove = new ToolStripButton(LocalizibleStrings.BtnAddSelectedToMailList) { DisplayStyle = ToolStripItemDisplayStyle.Image, Image = LocalizibleStrings.ArrowRight }; tsbtnMove.Click += (o, args) => { IEnumerable <StoredContact> storedContacts = this.clTargetContacts.dgObjects.Objects.Cast <StoredContact>().ToList(); foreach (Contact obj in from Contact obj in this.clEwsContacts.dgObjects.SelectedObjects let existed = storedContacts.FirstOrDefault(s => s.UniqId == obj.Id.UniqueId) where existed == null select obj) { this.clTargetContacts.dgObjects.AddObject(new StoredContact(obj)); } }; this.clEwsContacts._barTools.Items.Insert(2, tsbtnMove); string mailTemplateFolder; string eventTemplateFolder; switch (Thread.CurrentThread.CurrentUICulture.LCID) { case LocalizationHelper.EnInt: this.englishToolStripMenuItem.Checked = true; this.russianToolStripMenuItem.Checked = false; mailTemplateFolder = Config.EmailTemplateFolderEn; eventTemplateFolder = Config.EventTemplateFolderEn; break; case LocalizationHelper.RuInt: this.russianToolStripMenuItem.Checked = true; this.englishToolStripMenuItem.Checked = false; mailTemplateFolder = Config.EmailTemplateFolderRu; eventTemplateFolder = Config.EventTemplateFolderRu; break; default: this.englishToolStripMenuItem.Checked = true; this.russianToolStripMenuItem.Checked = false; mailTemplateFolder = Config.EmailTemplateFolderEn; eventTemplateFolder = Config.EventTemplateFolderEn; break; } this.SetEwsContactsColumns(); this.SetMailTemplatesColumns(); this.SetEventTemplatesColumns(); this.SetTargetContactsColumns(); this.clEwsContacts.tsbtnFilteredProperties.Visible = false; this.clEwsContacts.tsbtnCreate.Visible = false; this.clEwsContacts.tsbtnEdit.Visible = false; this.clEwsContacts.tsbtnDelete.Visible = false; this.clEwsContacts.tsbtnFilterSettings.Visible = false; this.clEwsContacts.tsbtnFilteredProperties.Visible = false; this.clEwsContacts.tsbtnRefresh.Text = LocalizibleStrings.BtnRefresh; this.clEwsContacts.tsbtnClearFilter.Text = LocalizibleStrings.BtnClear; this.clEwsContacts.tsbtnSearch.Text = LocalizibleStrings.BtnSearch; this.clEwsContacts.tslbSearch.Text = LocalizibleStrings.LbSearch; this.clEwsContacts.tslbCount.Text = LocalizibleStrings.LbCount; this.clEwsContacts.tsbtnRefresh.Click += (s, args) => { try { Folder contactsFolder; if (!TryGetFolder(Config.ContactFolder, out contactsFolder)) { Logger.Message(LocalizibleStrings.TryLoadFromDefault); contactsFolder = ContactsFolder.Bind(_service, WellKnownFolderName.Contacts); } SearchFilter sf = new SearchFilter.IsEqualTo(ItemSchema.ItemClass, @"IPM.Contact"); FindItemsResults <Item> items = contactsFolder.FindItems(sf, new ItemView(int.MaxValue)); this.clEwsContacts.dgObjects.SetObjects(items.ToList()); } catch (Exception exc) { Logger.Error(LocalizibleStrings.CannotGetContactList, exc); } }; this.clMailTemplates.tsbtnFilteredProperties.Visible = false; this.clMailTemplates.tsbtnCreate.Visible = false; this.clMailTemplates.tsbtnEdit.Visible = false; this.clMailTemplates.tsbtnDelete.Visible = false; this.clMailTemplates.tsbtnFilterSettings.Visible = false; this.clMailTemplates.tsbtnFilteredProperties.Visible = false; this.clMailTemplates.tsbtnRefresh.Text = LocalizibleStrings.BtnRefresh; this.clMailTemplates.tsbtnClearFilter.Text = LocalizibleStrings.BtnClear; this.clMailTemplates.tsbtnSearch.Text = LocalizibleStrings.BtnSearch; this.clMailTemplates.tslbSearch.Text = LocalizibleStrings.LbSearch; this.clMailTemplates.tslbCount.Text = LocalizibleStrings.LbCount; this.clMailTemplates.tsbtnRefresh.Click += (s, args) => { try { /*Folder templatesFolder; * if (!TryGetFolder(mailTemplateFolder, out templatesFolder)) * return; * * FindItemsResults<Item> items = * templatesFolder.FindItems(new ItemView(int.MaxValue));*/ IList <Storage.Message> items = new List <Storage.Message>(); // ReSharper disable once LoopCanBeConvertedToQuery // под отладчиком всякая фигня происходит если linq foreach (string path in Directory.GetFiles(Config.GetParam(mailTemplateFolder))) { items.Add(new Storage.Message(path)); } this.clMailTemplates.dgObjects.SetObjects(items.ToList()); } catch (Exception exc) { Logger.Error(LocalizibleStrings.CannotGetMailTemplateList, exc); } }; this.clEventTemplates.tsbtnCreate.Visible = false; this.clEventTemplates.tsbtnEdit.Visible = false; this.clEventTemplates.tsbtnDelete.Visible = false; this.clEventTemplates.tsbtnFilterSettings.Visible = false; this.clEventTemplates.tsbtnFilteredProperties.Visible = false; this.clEventTemplates.tsbtnRefresh.Text = LocalizibleStrings.BtnRefresh; this.clEventTemplates.tsbtnClearFilter.Text = LocalizibleStrings.BtnClear; this.clEventTemplates.tsbtnSearch.Text = LocalizibleStrings.BtnSearch; this.clEventTemplates.tslbSearch.Text = LocalizibleStrings.LbSearch; this.clEventTemplates.tslbCount.Text = LocalizibleStrings.LbCount; this.clEventTemplates.tsbtnRefresh.Click += (s, args) => { try { /*Folder templatesFolder; * if (!TryGetFolder(eventTemplateFolder, out templatesFolder)) * return; * * FindItemsResults<Item> items = * templatesFolder.FindItems(new ItemView(int.MaxValue));*/ List <Storage.Message> tasks = Directory.GetFiles(Config.GetParam(eventTemplateFolder)) .Select(t => new Storage.Message(t)) .ToList(); this.clEventTemplates.dgObjects.SetObjects(tasks); } catch (Exception exc) { Logger.Error(LocalizibleStrings.CannotGetEventTemplateList, exc); } }; this.clTargetContacts.tsbtnCreate.Text = LocalizibleStrings.BtnCreate; this.clTargetContacts.tsbtnDelete.Text = LocalizibleStrings.BtnDelete; this.clTargetContacts.tsbtnRefresh.Text = LocalizibleStrings.BtnRefresh; this.clTargetContacts.tsbtnClearFilter.Text = LocalizibleStrings.BtnClear; this.clTargetContacts.tsbtnSearch.Text = LocalizibleStrings.BtnSearch; this.clTargetContacts.tslbSearch.Text = LocalizibleStrings.LbSearch; this.clTargetContacts.tslbCount.Text = LocalizibleStrings.LbCount; this.clTargetContacts.tsbtnCreate.Visible = true; this.clTargetContacts.tsbtnEdit.Visible = false; this.clTargetContacts.tsbtnDelete.Visible = true; this.clTargetContacts.tsbtnFilterSettings.Visible = false; this.clTargetContacts.tsbtnFilteredProperties.Visible = false; this.clTargetContacts.dgObjects.TriStateCheckBoxes = false; this.clTargetContacts.dgObjects.RenderNonEditableCheckboxesAsDisabled = false; this.clTargetContacts.dgObjects.UseSubItemCheckBoxes = true; ToolStripButton tsbtnSave = new ToolStripButton(LocalizibleStrings.BtnSaveAll) { DisplayStyle = ToolStripItemDisplayStyle.Image, Image = LocalizibleStrings.Save }; tsbtnSave.Click += (o, args) => { IEnumerable <StoredContact> contacts = this.clTargetContacts.dgObjects.Objects.Cast <StoredContact>(); foreach (StoredContact contact in contacts) { contact.Save(); } }; this.clTargetContacts._barTools.Items.Insert(1, tsbtnSave); this.clTargetContacts.tsbtnRefresh.Click += (s, args) => { try { this.clTargetContacts.dgObjects.SetObjects(StoredContact.GetAll()); } catch (Exception exc) { Logger.Error(LocalizibleStrings.CannotGetStoredContacts, exc); } }; this.clTargetContacts.tsbtnCreate.Click += (o, args) => this.clTargetContacts.dgObjects.AddObject(new StoredContact()); this.clTargetContacts.tsbtnDelete.Click += (o, args) => { DialogResult res = MessageBox.Show( LocalizibleStrings.DeleteConfirmation, LocalizibleStrings.Warning, MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2); if (res == DialogResult.No) { return; } foreach (StoredContact cont in this.clTargetContacts.dgObjects.SelectedObjects) { try { this.clTargetContacts.dgObjects.RemoveObject(cont); cont.Delete(); } catch (Exception exc) { Logger.Error(LocalizibleStrings.CannotDeleteContact + cont.FileName, exc); } } }; }