I needed to export some text data out of one Windows Phone 7 application. I did not care for the format, so I thought e-mailing data to myself would be just fine. Here is some code. First, let's build the data:
public StringBuilder GetData()
{
StringBuilder result = new StringBuilder();
List<InventoryItem> a = ReadInventoryItems().OrderBy(x=>x.SerialNumber).OrderBy(x => x.Account).Where(x => x.isFound == true).ToList<InventoryItem>();
foreach (InventoryItem i in a)
{
LocatedItem l = new LocatedItem {
Account = i.Account,
SerialNo = i.SerialNumber,
wasFound = i.isFound,
withNote = i.Note
};
result.Append(l.ToString() + Environment.NewLine);
}
return result;
}
InventoryItem and LocatedItem are just two classes that I use to store data:
public class InventoryItem
{
public string SerialNumber { get; set; }
public string Account { get; set; }
public string ModelDesc { get; set; }
public string Building { get; set; }
public string Room { get; set; }
public string BuildingRoom { get; set; }
public bool isFound { get; set; }
public string Note { get; set; }
}
public class LocatedItem
{
public string Account {get; set;}
public string SerialNo { get; set; }
public bool wasFound { get; set; }
public string withNote { get; set; }
public override string ToString()
{
return String.Format("{0} {1} {2} {3}", Account, SerialNo, wasFound == true ? "1" : "0", withNote);
}
}
Data is ready, how to extract it? The help comes from EmailComposeTask class that resides is the Microsoft.Phone.Tasks namespace. Here is some code:
EmailComposeTask email = new EmailComposeTask(); emailcomposer.To = @"youraddress@yourmailserver.com"; emailcomposer.Subject = "test subject"; DataLayer dl = new DataLayer(); emailcomposer.Body = dl.GetAllFoundItems().ToString(); emailcomposer.Show();
And that is it! Once deployed to the phone, choose the e-mail provider that will send the message and send the e-mail.
No comments:
Post a Comment