コード例 #1
0
        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());
        }
コード例 #2
0
        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);
                    }
                }
            }
        }