public static Page ItemTapped(object sender, ItemTappedEventArgs e) { FeedItem feedItem = (FeedItem)((ListView)sender).SelectedItem; if (feedItem.GetType() == typeof(Notification)) { Notification tappedNotification = (Notification)feedItem; var newPage = new NotificationDetail(tappedNotification); return(newPage); } else if (feedItem.GetType() == typeof(Question)) { Question tappedQuestion = (Question)feedItem; var newPage = new QuestionDetail(tappedQuestion); return(newPage); } return(new Page()); }
public async Task <string> Refresh() { var client = new HttpClient(); var result = (await client .GetStringAsync("http://storage1.merchantadvantage.com/macm2543/AllRegionProducts.txt")) .Split(System.Environment.NewLine.ToCharArray()); lock (dbLock) { using (var db = new FeedDataContext()) { var log = new StringBuilder(); try { db.Database.EnsureDeleted(); db.Database.EnsureCreated(); var columns = result[0].Split('\t'); for (int i = 1; i < result.Length; i++) { log.AppendLine("Processing " + result[i]); var line = result[i].Split('\t'); if (line.Length <= 1) { continue; } var item = new FeedItem(); for (int j = 0; j < columns.Length; j++) { var columnName = columns[j]; var columnValue = line[j]; log.AppendLine("Setting value for column " + columnName + " to " + columnValue); var feedItemType = item.GetType(); var feedItemProperty = feedItemType.GetProperty(columnName, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance); if (feedItemProperty != null) { feedItemProperty.GetSetMethod().Invoke(item, new object[] { columnValue }); } else { log.AppendLine("Property not found: " + columnName); Debug.WriteLine("Property not found: " + columnName); } } db.Items.Add(item); } var rowsAffected = db.SaveChanges(); return("Success! (" + rowsAffected + ")"); } catch (System.Exception ex) { return(log.ToString() + "\n\n\n" + ex.Message); } } } }