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