mirror of
https://github.com/abdelkader/vCardEditor
synced 2025-12-12 08:27:19 +07:00
draft of the save file
This commit is contained in:
@@ -137,13 +137,17 @@ namespace VCFEditor
|
||||
return stream;
|
||||
}
|
||||
|
||||
public List<Contact> FilterContacts(string p)
|
||||
public List<Contact> FilterContacts(string filter)
|
||||
{
|
||||
List<Contact> Filtered = new List<Contact>(Contacts);
|
||||
Filtered.RemoveAll(i => !(i.Name.IndexOf(p, StringComparison.OrdinalIgnoreCase) >= 0));
|
||||
Filtered.RemoveAll(i => !(i.Name.IndexOf(filter, StringComparison.OrdinalIgnoreCase) >= 0));
|
||||
return Filtered;
|
||||
}
|
||||
|
||||
|
||||
public void SaveContactRawContent(int index, string rawContent )
|
||||
{
|
||||
if (index > -1)
|
||||
_contacts[index].RawContent = new StringBuilder(rawContent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace VCFEditor
|
||||
void SaveContacts(string fileName);
|
||||
vCard ParseContactAt(int index);
|
||||
void DeleteContact();
|
||||
|
||||
List<Contact> FilterContacts(string p);
|
||||
void SaveContactRawContent(int index, string rawContent );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,10 +27,16 @@ namespace VCFEditor.Presenter
|
||||
_view.ChangeContactsSelected += ChangeContactSelected;
|
||||
_view.DeleteContact += DeleteContact;
|
||||
_view.FilterTextChanged += FilterTextChanged;
|
||||
_view.TextBoxValueChanged += TextBoxValueChanged;
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void TextBoxValueChanged(object sender, EventArg<string> e)
|
||||
{
|
||||
_repository.SaveContactRawContent(_view.SelectedContactIndex, e.Data);
|
||||
}
|
||||
|
||||
public void FilterTextChanged(object sender, EventArg<string> e)
|
||||
{
|
||||
var FilteredContacts = _repository.FilterContacts(e.Data);
|
||||
|
||||
@@ -17,8 +17,10 @@ namespace VCFEditor.View
|
||||
event EventHandler<EventArg<string>> NewFileOpened;
|
||||
event EventHandler<EventArg<int>> ChangeContactsSelected;
|
||||
event EventHandler<EventArg<string>> FilterTextChanged;
|
||||
event EventHandler<EventArg<string>> TextBoxValueChanged;
|
||||
#endregion
|
||||
|
||||
int SelectedContactIndex { get; }
|
||||
void DisplayContacts(BindingList<Contact> contacts);
|
||||
void DisplayContacts(List<Contact> contacts);
|
||||
void DisplayContactDetail(vCard card);
|
||||
|
||||
6
vCardEditor/View/MainForm.Designer.cs
generated
6
vCardEditor/View/MainForm.Designer.cs
generated
@@ -234,6 +234,7 @@
|
||||
this.HomePhoneValue.Name = "HomePhoneValue";
|
||||
this.HomePhoneValue.Size = new System.Drawing.Size(272, 20);
|
||||
this.HomePhoneValue.TabIndex = 45;
|
||||
this.HomePhoneValue.TextChanged += new System.EventHandler(this.Value_TextChanged);
|
||||
//
|
||||
// CellularPhoneLabel
|
||||
//
|
||||
@@ -252,6 +253,7 @@
|
||||
this.CellularPhoneValue.Name = "CellularPhoneValue";
|
||||
this.CellularPhoneValue.Size = new System.Drawing.Size(272, 20);
|
||||
this.CellularPhoneValue.TabIndex = 47;
|
||||
this.CellularPhoneValue.TextChanged += new System.EventHandler(this.Value_TextChanged);
|
||||
//
|
||||
// PersonalWebSiteLabel
|
||||
//
|
||||
@@ -279,6 +281,7 @@
|
||||
this.PersonalWebSiteValue.Name = "PersonalWebSiteValue";
|
||||
this.PersonalWebSiteValue.Size = new System.Drawing.Size(272, 20);
|
||||
this.PersonalWebSiteValue.TabIndex = 56;
|
||||
this.PersonalWebSiteValue.TextChanged += new System.EventHandler(this.Value_TextChanged);
|
||||
//
|
||||
// WorkPhoneValue
|
||||
//
|
||||
@@ -288,6 +291,7 @@
|
||||
this.WorkPhoneValue.Name = "WorkPhoneValue";
|
||||
this.WorkPhoneValue.Size = new System.Drawing.Size(272, 20);
|
||||
this.WorkPhoneValue.TabIndex = 57;
|
||||
this.WorkPhoneValue.TextChanged += new System.EventHandler(this.Value_TextChanged);
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
@@ -322,6 +326,7 @@
|
||||
this.EmailAddressValue.Name = "EmailAddressValue";
|
||||
this.EmailAddressValue.Size = new System.Drawing.Size(272, 20);
|
||||
this.EmailAddressValue.TabIndex = 59;
|
||||
this.EmailAddressValue.TextChanged += new System.EventHandler(this.Value_TextChanged);
|
||||
//
|
||||
// EmailAddressLabel
|
||||
//
|
||||
@@ -399,6 +404,7 @@
|
||||
this.dgContacts.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||
this.dgContacts.Size = new System.Drawing.Size(225, 334);
|
||||
this.dgContacts.TabIndex = 6;
|
||||
this.dgContacts.SelectionChanged += new System.EventHandler(this.dgContacts_SelectionChanged);
|
||||
//
|
||||
// Column1
|
||||
//
|
||||
|
||||
@@ -9,6 +9,7 @@ using System.Windows.Forms;
|
||||
using VCFEditor.View;
|
||||
using VCFEditor.Model;
|
||||
using Thought.vCards;
|
||||
using System.IO;
|
||||
|
||||
namespace vCardEditor.View
|
||||
{
|
||||
@@ -19,7 +20,14 @@ namespace vCardEditor.View
|
||||
public event EventHandler<EventArg<string>> NewFileOpened;
|
||||
public event EventHandler<EventArg<int>> ChangeContactsSelected;
|
||||
public event EventHandler<EventArg<string>> FilterTextChanged;
|
||||
|
||||
public event EventHandler<EventArg<string>> TextBoxValueChanged;
|
||||
|
||||
public int SelectedContactIndex
|
||||
{
|
||||
get { return dgContacts.CurrentCell.RowIndex; }
|
||||
|
||||
}
|
||||
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
@@ -67,6 +75,13 @@ namespace vCardEditor.View
|
||||
}
|
||||
}
|
||||
|
||||
private void Value_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
//if (TextBoxValueChanged != null)
|
||||
// TextBoxValueChanged(sender, new EventArg<string>(generateRawContent()));
|
||||
}
|
||||
|
||||
|
||||
public void DisplayContactDetail(vCard card)
|
||||
{
|
||||
if (card == null)
|
||||
@@ -171,6 +186,39 @@ namespace vCardEditor.View
|
||||
textBoxFilter.Text = string.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Generate a vcard from differents fields
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private string generateRawContent()
|
||||
{
|
||||
vCard card = new vCard();
|
||||
card.FormattedName = this.FormattedNameValue.Text;
|
||||
|
||||
if (!string.IsNullOrEmpty(HomePhoneValue.Text))
|
||||
{
|
||||
card.Phones.Add(
|
||||
new vCardPhone(HomePhoneValue.Text, vCardPhoneTypes.Home));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(CellularPhoneValue.Text))
|
||||
{
|
||||
card.Phones.Add(
|
||||
new vCardPhone(CellularPhoneValue.Text, vCardPhoneTypes.Cellular));
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(this.EmailAddressValue.Text))
|
||||
{
|
||||
card.EmailAddresses.Add(
|
||||
new vCardEmailAddress(this.EmailAddressValue.Text));
|
||||
}
|
||||
|
||||
vCardStandardWriter writer = new vCardStandardWriter();
|
||||
TextWriter tw = new StringWriter();
|
||||
writer.Write(card, tw);
|
||||
|
||||
return tw.ToString();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -229,7 +229,7 @@
|
||||
<data name="btnClearFilter.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAJ4SURBVDhPbZNfSFNxFMdPrdYf18TKNEEo//XUTEqb9kcC
|
||||
YQUAAAAJcEhZcwAADr8AAA6/ATgFUyQAAAJ4SURBVDhPbZNfSFNxFMdPrdYf18TKNEEo//XUTEqb9kcC
|
||||
NXqTRASH5Z9AVvjQpkv7Y2qUZOq0qHSrUFrDxiJS6GEg6EPP5SDouYcC96DTuT8O+XbO3TWSduDDOfd7
|
||||
zvdw7+/eS//GGNFpB9GEZFX6G6yfYEZeER1Tpa0xTtQ6oUvBj24bJMu12hJz/4f8HPgtN/7rKbFpXhwf
|
||||
xsb8DALOEbgzD0GMgjf3CCIzbmzMTSPgsG9dophT9mLxWT/iHifWXw8h/t6BsOcNvHk5CuEpJ+Lul1h3
|
||||
|
||||
Reference in New Issue
Block a user