/// <summary> /// Метод проверки состояния Wi-Fi /// </summary> /// <returns></returns> private bool StatusWiFi() { if (!CrossConnectivity.Current.IsConnected) { e = new ReceivedDataEvent(false, "Соединение с интернетом отсутствует"); return(false); } return(true); }
public async void RequestRSS(string url, ServerConnectorCallBack Callback = null, object Sender = null) { Debug.WriteLine("StatusWiFi : " + StatusWiFi()); try { if (StatusWiFi()) { using (var httpClient = new HttpClient()) { var response = await httpClient.GetAsync(url); var content = response.Content; var json = await content.ReadAsStringAsync(); Debug.WriteLine("response.StatusCode : " + response.StatusCode); switch (response.StatusCode) { case HttpStatusCode.OK: e = new ReceivedDataEvent(true, json); break; case HttpStatusCode.InternalServerError: e = new ReceivedDataEvent(false, "Сервер не работает"); break; case HttpStatusCode.Forbidden: e = new ReceivedDataEvent(false, null); break; default: e = new ReceivedDataEvent(false, json); break; } } } } catch (Exception ex) { Debug.WriteLine("RequestRSS : " + ex.Message); e = new ReceivedDataEvent(false, "Такой ссылки не сушествует"); } if (ServerDataEvent != null) { ServerDataEvent?.Invoke(this, e); } if (Callback != null) { Callback(Sender, e); } }
/// <summary> /// Ответ запроса по уведомлениям /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void RequestRSSHandler(object sender, ReceivedDataEvent e) { var _sender = sender as ViewModelDetailRSS; Debug.WriteLine("Success : " + e.Success); Debug.WriteLine("Data : " + e.Data); var list = new List <ModelTableDetailRSS>(); var listDB = _sender.AllListDetailRSSTable(_sender.modelRSS); try { if (!e.Success) { throw new Exception(e.Data); } else { if (listDB.Count != 0) { _sender.ClearDBDetailRSS(listDB); } var doc = XDocument.Parse(e.Data).Descendants("item"); var listSourceDetailRSS = (from rss in doc select AddDetailRSS(rss)).ToList(); list = listSourceDetailRSS; } } catch (Exception ex) { Debug.WriteLine(ex.Message); if (listDB.Count != 0) { list = listDB; } else { DisplayAlertService("", ex.Message, "ОК"); } } SourceDetailRSS = list; Debug.WriteLine("SourceDetailRSS : " + SourceDetailRSS.Count()); UpdateIsRefreshing(false); OnPropertyChanged(""); }