//метод сохраняет или обновляет новость
 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));
 }