//метод сохраняет или обновляет новость public Task <int> SaveNewsAsync(itemNews item) { if (item.Id != 0) { return(database.UpdateAsync(item)); } else { return(database.InsertAsync(item)); } }
public NewItemPage() { InitializeComponent(); Item = new itemNews { Title = "Текст новости", Link = "Ссылка на ресурс" }; BindingContext = this; }
void OnItemSelected(object sender, SelectedItemChangedEventArgs args) { itemNews item = args.SelectedItem as itemNews; if (item == null) { return; } Uri url = new Uri("http://pro1c.kz" + item.Link); Device.OpenUri(url); item.Read = true; App.Database.UpdateNewsAsync(item); ItemsListView.SelectedItem = null; }
async public void ParseDataSite() { var config = Configuration.Default.WithDefaultLoader(); var address = "https://pro1c.kz/news/"; var context = BrowsingContext.New(config); var document = await context.OpenAsync(address); var idblock = document.QuerySelectorAll("[id*='bx_6']"); foreach (var el in idblock) { itemNews newsOne = new itemNews { Idbx = el.GetAttribute("id").ToString(), Date = DateTime.ParseExact(el.QuerySelector("small").TextContent.Replace(".", ""), "ddMyyyy", null), Link = el.QuerySelector("h3.news_title > a").GetAttribute("href").ToString(), Title = el.QuerySelector("h3.news_title").TextContent.ToString(), Views = Convert.ToInt32(el.QuerySelector("li > a").TextContent.ToString()), Read = false, Bookmark = false }; newsOne.SectionNews = Helpers.HelperCreateItemNews.SectionNewsFromURL(newsOne.Link); var searchNews = new itemNews(); searchNews = await App.Database.ReturnFindItemNews(newsOne); if (searchNews != null) { await App.Database.UpdateNewsAsync(searchNews); } else { await App.Database.AddNewsAsync(newsOne); } } }
/*async private void Switch_Toggled(object sender, ToggledEventArgs e) * { * itemNews item = ((Switch)sender).BindingContext as itemNews; * await App.Database.UpdateNewsAsync(item); * * }*/ async private void CheckBox_CheckedChanged(object sender, CheckedChangedEventArgs e) { itemNews item = ((CheckBox)sender).BindingContext as itemNews; await App.Database.UpdateNewsAsync(item); }
//ищем и возвращаем уже имеющуюся запись в БД по полю idbx public Task <itemNews> ReturnFindItemNews(itemNews item) { return(database.Table <itemNews>().Where(i => i.Idbx == item.Idbx).FirstOrDefaultAsync()); }
public Task <int> UpdateNewsAsync(itemNews item) { return(database.UpdateAsync(item)); }
//добавляем новую новость , если новость имеется то обновляем public Task <int> AddNewsAsync(itemNews item) { return(database.InsertAsync(item)); }