public string ToastImageAndText04(string title, string mess, string messtwo, string iconpath, string appname, int exptime) { // <toast><visual><binding template="ToastImageAndText04"><image id="1" src="file:///python.ico" /><text id="1">title</text><text id="2"></text><text id="3"></text></binding></visual></toast> try { var template = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText04); XmlNodeList toastImageAttributes = template.GetElementsByTagName("image"); ((XmlElement)toastImageAttributes[0]).SetAttribute("src", iconpath); ((XmlElement)toastImageAttributes[0]).SetAttribute("alt", "test"); var textNodes = template.GetElementsByTagName("text"); textNodes.Item(0).InnerText = title; textNodes.Item(1).InnerText = mess; textNodes.Item(2).InnerText = messtwo; var notifier = ToastNotificationManager.CreateToastNotifier(appname); var notification = new ToastNotification(template); notification.ExpirationTime = DateTimeOffset.Now.AddSeconds(exptime); notifier.Show(notification); return($"{title},{mess},{messtwo},{iconpath},{appname},{exptime},true"); } catch (Exception e) { return($"{title},{mess},{messtwo},{iconpath},{appname},{exptime},Error:{e}"); } }
private void ParseMPDElement() { Windows.Data.Xml.Dom.XmlElement root = document.DocumentElement; if (root.GetAttribute("type").ToLower().Equals("dynamic")) { manifest.IsLive = true; } if (root.GetAttribute("profiles").ToLower().Contains(LiveProfile)) { manifest.IsSupportedProfile = true; } if (!root.GetAttribute("availabilityStartTime").Equals("")) { string availabilityStartTime = root.GetAttribute("availabilityStartTime"); manifest.AvailibilityStartTime = XmlConvert.ToDateTimeOffset(availabilityStartTime); } if (!root.GetAttribute("minBufferTime").Equals("")) { string minBufferTime = root.GetAttribute("minBufferTime"); manifest.MinBufferTime = XmlConvert.ToTimeSpan(minBufferTime); } if (!root.GetAttribute("minimumUpdatePeriod").Equals("")) { manifest.HasMinimumUpdatePeriod = true; string minUpdatePeriod = root.GetAttribute("minimumUpdatePeriod"); manifest.MinimumUpdatePeriod = XmlConvert.ToTimeSpan(minUpdatePeriod); } if (!root.GetAttribute("mediaPresentationDuration").Equals("")) { manifest.HasPresentationDuration = true; string mediaPresentationDuration = root.GetAttribute("mediaPresentationDuration"); manifest.MediaPresentationDuration = XmlConvert.ToTimeSpan(mediaPresentationDuration); } if (!root.GetAttribute("timeShiftBufferDepth").Equals("")) { string timeShiftBufferDepth = root.GetAttribute("timeShiftBufferDepth"); manifest.TimeShiftBufferDepth = XmlConvert.ToTimeSpan(timeShiftBufferDepth); } if (!root.GetAttribute("publishTime").Equals("")) { string publishTime = root.GetAttribute("publishTime"); manifest.PublishTime = XmlConvert.ToDateTimeOffset(publishTime); } else { manifest.PublishTime = DateTimeOffset.MinValue; } Windows.Data.Xml.Dom.XmlNodeList periods = root.GetElementsByTagName("Period"); if (periods.Count() > 1) { manifest.HasMultiplePeriods = true; } IXmlNode lastPeriod = periods.Last <IXmlNode>(); if (lastPeriod.Attributes.GetNamedItem("duration") != null) { manifest.LastPeriodDuration = XmlConvert.ToTimeSpan(lastPeriod.Attributes.GetNamedItem("duration").InnerText); } }
public static void Toast(string msg) { //1. create element ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01; XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); //2.设置消息文本 XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text"); toastTextElements[0].AppendChild(toastXml.CreateTextNode(msg)); //3. 图标 Windows.Data.Xml.Dom.XmlNodeList toastImageAttributes = toastXml.GetElementsByTagName("image"); ((XmlElement)toastImageAttributes[0]).SetAttribute("src", $"ms-appx:///Assets/StoreLogo.png"); ((XmlElement)toastImageAttributes[0]).SetAttribute("alt", "logo"); // 4. duration IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); ((XmlElement)toastNode).SetAttribute("duration", "short"); // 5. audio XmlElement audio = toastXml.CreateElement("audio"); audio.SetAttribute("src", $"ms-winsoundevent:Notification.SMS"); toastNode.AppendChild(audio); ToastNotification toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(toast); }
private async void SaveMatch(object sender, RoutedEventArgs e) { FolderPicker folderPicker = new FolderPicker(); folderPicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.DocumentsLibrary; folderPicker.FileTypeFilter.Add("*"); StorageFolder folder = await folderPicker.PickSingleFolderAsync(); ((Matchimpro)list_of_matches.SelectedItem).Save(folder); ToastNotifier ToastNotifier = ToastNotificationManager.CreateToastNotifier(); Windows.Data.Xml.Dom.XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText02); Windows.Data.Xml.Dom.XmlNodeList toastNodeList = toastXml.GetElementsByTagName("text"); var resourceLoader = Windows.ApplicationModel.Resources.ResourceLoader.GetForCurrentView(); toastNodeList.Item(0).AppendChild(toastXml.CreateTextNode(resourceLoader.GetString("ExportTitle"))); toastNodeList.Item(1).AppendChild(toastXml.CreateTextNode(resourceLoader.GetString("ExportMessage"))); Windows.Data.Xml.Dom.IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); ToastNotification toast = new ToastNotification(toastXml); toast.ExpirationTime = DateTime.Now.AddSeconds(1); ToastNotifier.Show(toast); }
private async void SaveAsync(object sender, Windows.UI.Xaml.RoutedEventArgs e) { var actieAnswer = false; if (Validate()) { if (actieObject != null) { actieObject.Beschrijving = Beschrijving.Text; var dateObject = Datum.Date.Date.ToString().Substring(0, 10) + " " + Time.Time.ToString(); DateTime myDateObject = DateTime.Parse(dateObject); actieObject.GeldigTot = myDateObject; actieAnswer = await actieViewModel.bewerkActieAsync(actieObject); if (actieAnswer) { this.Frame.Navigate(typeof(BeheerOndernemerPage)); ToastTemplateType toastTemplate = ToastTemplateType.ToastText02; XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); XmlNodeList toastTekstElementen = toastXml.GetElementsByTagName("text"); toastTekstElementen[0].AppendChild(toastXml.CreateTextNode("Actie")); toastTekstElementen[1].AppendChild(toastXml.CreateTextNode(actieObject.Beschrijving + " aangepast")); IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); ((XmlElement)toastNode).SetAttribute("duration", "long"); ToastNotification toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(toast); } } else { var date = Datum.Date.Date.ToString().Substring(0, 10) + " " + Time.Time.ToString(); DateTime myDate = DateTime.Parse(date); Actie actie = new Actie( Beschrijving.Text, myDate, Int32.Parse(bedrijf) ); actieAnswer = await actieViewModel.addActieAsync(actie); if (actieAnswer) { this.Frame.Navigate(typeof(BeheerOndernemerPage)); ToastTemplateType toastTemplate = ToastTemplateType.ToastText02; XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); XmlNodeList toastTekstElementen = toastXml.GetElementsByTagName("text"); toastTekstElementen[0].AppendChild(toastXml.CreateTextNode("Actie")); toastTekstElementen[1].AppendChild(toastXml.CreateTextNode(actie.Beschrijving + " werd toegevoegd aan je acties")); IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); ((XmlElement)toastNode).SetAttribute("duration", "long"); ToastNotification toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(toast); } } } }
void ToastNotifier() { ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01; Windows.Data.Xml.Dom.XmlDocument toastxml = ToastNotificationManager.GetTemplateContent(toastTemplate); Windows.Data.Xml.Dom.XmlNodeList toastTextElements = toastxml.GetElementsByTagName("text"); toastTextElements[0].AppendChild(toastxml.CreateTextNode("You are near a room")); ToastNotification toast = new ToastNotification(toastxml); ToastNotificationManager.CreateToastNotifier().Show(toast); }
public void notification(string notificationText) { Windows.Data.Xml.Dom.XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText01); Windows.Data.Xml.Dom.XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text"); toastTextElements[0].AppendChild(toastXml.CreateTextNode(notificationText)); Windows.Data.Xml.Dom.XmlNodeList toastImageAttributes = toastXml.GetElementsByTagName("image"); string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "notificationPhoto.png"); ((Windows.Data.Xml.Dom.XmlElement)toastImageAttributes[0]).SetAttribute("src", path); ToastNotification toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier("Computer Monitor").Show(toast); }
/// <summary> /// Counts the number of childs that have the type defined by <paramref name="type"/> /// </summary> /// <param name="target">The starting node</param> /// <param name="type">The type of child to count</param> /// <returns>Returns the number of children</returns> public static int CountOf(this Windows.Data.Xml.Dom.XmlNodeList target, NodeType type) { int count = 0; for (int i = 0; i < target.Count; i++) { if (target[i].NodeType == type) { count++; } } return(count); }
public static void Show(string header, string text) { XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText02); //Fill in the text elements XmlNodeList stringElements = toastXml.GetElementsByTagName("text"); stringElements[0].AppendChild(toastXml.CreateTextNode(header)); stringElements[1].AppendChild(toastXml.CreateTextNode(text)); // Create the toast and attach event listeners ToastNotification toast = new ToastNotification(toastXml); // Show the toast. Be sure to specify the AppUserModelId on your application's shortcut! ToastNotificationManager.CreateToastNotifier("ELO").Show(toast); }
private void load() { string titleString = File.ReadAllText("title.xml"); Windows.Data.Xml.Dom.XmlDocument doc = new Windows.Data.Xml.Dom.XmlDocument(); doc.LoadXml(titleString); Windows.Data.Xml.Dom.XmlNodeList titles = doc.GetElementsByTagName("text"); TileUpdateManager.CreateTileUpdaterForApplication().Clear(); TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true); for (int i = 0; i < ViewModel.AllItems.Count; i++) { titles[0].InnerText = titles[2].InnerText = titles[4].InnerText = ViewModel.AllItems[i].title; titles[1].InnerText = titles[3].InnerText = titles[5].InnerText = ViewModel.AllItems[i].description; var tileNotification = new TileNotification(doc); TileUpdater updater = TileUpdateManager.CreateTileUpdaterForApplication(); updater.Update(tileNotification); } }
//磁铁创建函数 private void tileCreate() { Windows.Data.Xml.Dom.XmlDocument document = new Windows.Data.Xml.Dom.XmlDocument(); document.LoadXml(System.IO.File.ReadAllText("XMLFile1.xml")); Windows.Data.Xml.Dom.XmlNodeList Texttitle = document.GetElementsByTagName("text"); TileUpdateManager.CreateTileUpdaterForApplication().Clear(); TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true); for (int i = 0; i < ViewModel.AllRecords.Count; i++) { if (i < 5) { Texttitle[0].InnerText = Texttitle[2].InnerText = Texttitle[4].InnerText = ViewModel.AllRecords[i].score.ToString(); Texttitle[1].InnerText = Texttitle[3].InnerText = Texttitle[5].InnerText = ViewModel.AllRecords[i].date.ToString(); TileNotification newTile = new TileNotification(document); TileUpdateManager.CreateTileUpdaterForApplication().Update(newTile); } } }
public void tile() { Windows.Data.Xml.Dom.XmlDocument xdoc = new Windows.Data.Xml.Dom.XmlDocument(); xdoc.LoadXml(File.ReadAllText("tile.xml")); Windows.Data.Xml.Dom.XmlNodeList tilelist = xdoc.GetElementsByTagName("text"); tilelist[0].InnerText = title.Text; tilelist[2].InnerText = title.Text; tilelist[4].InnerText = title.Text; tilelist[1].InnerText = describe.Text; tilelist[3].InnerText = describe.Text; tilelist[5].InnerText = describe.Text; tilelist[6].InnerText = title.Text; tilelist[7].InnerText = describe.Text; TileNotification notification = new TileNotification(xdoc); TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true); TileUpdater updater = TileUpdateManager.CreateTileUpdaterForApplication(); updater.Update(notification); }
private void ShowToastNotification() { for (int i = 0; i < ViewModel.AllItems.Count; i++) { if (ViewModel.AllItems[i].date.Day == DateTime.Now.Day) { ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01; Windows.Data.Xml.Dom.XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); Windows.Data.Xml.Dom.XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text"); toastTextElements[0].AppendChild(toastXml.CreateTextNode(ViewModel.AllItems[i].title + "\n" + ViewModel.AllItems[i].description)); Windows.Data.Xml.Dom.XmlNodeList toastImageAttributes = toastXml.GetElementsByTagName("image"); IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); ((Windows.Data.Xml.Dom.XmlElement)toastImageAttributes[0]).SetAttribute("src", "Assets//2015071504.jpg"); Windows.Data.Xml.Dom.XmlElement audio = toastXml.CreateElement("audio"); ((Windows.Data.Xml.Dom.XmlElement)toastNode).SetAttribute("duration", "long"); audio.SetAttribute("silent", "true"); ToastNotification toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(toast); } } }
//查询天气 async void WeatherQuery() { if (cityName.Text == "") { return; } string url = "http://api.avatardata.cn/Weather/Query?key=1a2fa02c4cf34aafbb7ff83904a6ac6e&cityname=" + cityName.Text + "&dtype=XML"; HttpClient client = new HttpClient(); string response = await client.GetStringAsync(url); Windows.Data.Xml.Dom.XmlDocument document = new Windows.Data.Xml.Dom.XmlDocument(); document.LoadXml(response); Windows.Data.Xml.Dom.XmlNodeList list = document.GetElementsByTagName("temperature"); if (list.Length == 0) { var ii = new MessageDialog("The city is not exit!").ShowAsync(); } else { IXmlNode node = list.Item(0); string i = node.InnerText; if (i != "") { list = document.GetElementsByTagName("info"); node = list.Item(0); weatherText.Text = "天气: " + node.InnerText; list = document.GetElementsByTagName("temperature"); node = list.Item(0); weatherText.Text += " 温度: " + node.InnerText + "摄氏度"; } else { var ii = new MessageDialog("Error!").ShowAsync(); } } }
public void Notifica(string mensagem1) { Windows.Data.Xml.Dom.XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText03); // Fill in the text elements Windows.Data.Xml.Dom.XmlNodeList stringElements = toastXml.GetElementsByTagName("text"); stringElements[0].AppendChild(toastXml.CreateTextNode("Beba Água APP")); stringElements[1].AppendChild(toastXml.CreateTextNode(mensagem1)); // Specify the absolute path to an image String imagePath = System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().Location); Windows.Data.Xml.Dom.XmlNodeList imageElements = toastXml.GetElementsByTagName("image"); imageElements[0].Attributes.GetNamedItem("src").NodeValue = imagePath; // Create the toast and attach event listeners ToastNotification toast = new ToastNotification(toastXml); // Show the toast. Be sure to specify the AppUserModelId on your application's shortcut! ToastNotificationManager.CreateToastNotifier(APP_ID).Show(toast); }
/// <summary> /// The entry point of a background task. /// </summary> /// <param name="taskInstance">The current background task instance.</param> public void Run(IBackgroundTaskInstance taskInstance) { backgroundTaskInstance = taskInstance; var details = taskInstance.TriggerDetails as BluetoothLEAdvertisementWatcherTriggerDetails; if (details != null) { // If the background watcher stopped unexpectedly, an error will be available here. var error = details.Error; // The Advertisements property is a list of all advertisement events received // since the last task triggered. The list of advertisements here might be valid even if // the Error status is not Success since advertisements are stored until this task is triggered IReadOnlyList <BluetoothLEAdvertisementReceivedEventArgs> advertisements = details.Advertisements; // The signal strength filter configuration of the trigger is returned such that further // processing can be performed here using these values if necessary. They are read-only here. var rssiFilter = details.SignalStrengthFilter; // Advertisements can contain multiple events that were aggregated, each represented by // a BluetoothLEAdvertisementReceivedEventArgs object. List <iBeaconData> beacons = new List <iBeaconData>(); foreach (var adv in advertisements) { var beacon = adv.Advertisement.iBeaconParseAdvertisement(adv.RawSignalStrengthInDBm); if (beacon != null) { beacons.Add(beacon); } } var serializer = new DataContractJsonSerializer(typeof(List <iBeaconData>)); string content = string.Empty; using (MemoryStream stream = new MemoryStream()) { serializer.WriteObject(stream, beacons); stream.Position = 0; content = new StreamReader(stream).ReadToEnd(); } // Store the message in a local settings indexed by this task's name so that the foreground App // can display this message. ApplicationData.Current.LocalSettings.Values[taskInstance.Task.Name] = content; ApplicationData.Current.LocalSettings.Values[taskInstance.Task.Name + "TimeStamp"] = DateTime.Now.ToBinary(); //Warning each 5 minutes to uninstall task if not debugging anymore if (!ApplicationData.Current.LocalSettings.Values.ContainsKey(taskInstance.Task.Name + "DebugWarning")) { ApplicationData.Current.LocalSettings.Values.Add(taskInstance.Task.Name + "DebugWarning", DateTime.Now.ToBinary()); } else { if ((DateTime.Now - DateTime.FromBinary((long)ApplicationData.Current.LocalSettings.Values[taskInstance.Task.Name + "DebugWarning"])).TotalMinutes >= 5) { ApplicationData.Current.LocalSettings.Values[taskInstance.Task.Name + "DebugWarning"] = DateTime.Now.ToBinary(); Windows.Data.Xml.Dom.XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01); Windows.Data.Xml.Dom.XmlNodeList elements = toastXml.GetElementsByTagName("text"); foreach (IXmlNode node in elements) { node.InnerText = taskInstance.Task.Name + " remember to uninstall task if not debugging"; } ToastNotification notification = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(notification); } } } }
protected async Task <BlogInfo[]> GetUsersBlogsInternal() { XmlRestRequestHelper.XmlRequestResult xmlResult = new XmlRestRequestHelper.XmlRequestResult(); xmlResult.uri = FeedServiceUrl; XmlDocument xmlDoc = await xmlRestRequestHelper.Get(RequestFilter, xmlResult); // Either the FeedServiceUrl points to a service document OR a feed. if (xmlDoc.SelectSingleNodeNS("/app:service", _nsMgr.ToNSMethodFormat()) != null) { ArrayList blogInfos = new ArrayList(); foreach (XmlElement coll in xmlDoc.SelectNodesNS("/app:service/app:workspace/app:collection", _nsMgr.ToNSMethodFormat())) { bool promote = ShouldPromote(coll); // does this collection accept entries? XmlNodeList acceptNodes = coll.SelectNodesNS("app:accept", _nsMgr.ToNSMethodFormat()); bool acceptsEntries = false; if (acceptNodes.Count == 0) { acceptsEntries = true; } else { foreach (XmlElement acceptNode in acceptNodes) { if (AcceptsEntry(acceptNode.InnerText)) { acceptsEntries = true; break; } } } if (acceptsEntries) { string feedUrl = XmlHelper.GetUrl(coll, "@href", xmlResult.uri); if (feedUrl == null || feedUrl.Length == 0) { continue; } // form title StringBuilder titleBuilder = new StringBuilder(); foreach (XmlElement titleContainerNode in new XmlElement[] { coll.ParentNode as XmlElement, coll }) { Debug.Assert(titleContainerNode != null); if (titleContainerNode != null) { XmlElement titleNode = titleContainerNode.SelectSingleNodeNS("atom:title", _nsMgr.ToNSMethodFormat()) as XmlElement; if (titleNode != null) { string titlePart = _atomVer.TextNodeToPlaintext(titleNode); if (titlePart.Length != 0) { //Res.LOCME("loc the separator between parts of the blog name"); if (titleBuilder.Length != 0) { titleBuilder.Append(" - "); } titleBuilder.Append(titlePart); } } } } // get homepage URL string homepageUrl = ""; string dummy = ""; XmlRestRequestHelper.XmlRequestResult xmlResult2 = new XmlRestRequestHelper.XmlRequestResult(); xmlResult2.uri = new Uri(feedUrl); XmlDocument feedDoc = await xmlRestRequestHelper.Get(RequestFilter, xmlResult2); ParseFeedDoc(feedDoc, xmlResult2.uri, false, ref homepageUrl, ref dummy); // TODO: Sniff out the homepage URL BlogInfo blogInfo = new BlogInfo(feedUrl, titleBuilder.ToString().Trim(), homepageUrl); if (promote) { blogInfos.Insert(0, blogInfo); } else { blogInfos.Add(blogInfo); } } } return((BlogInfo[])blogInfos.ToArray(typeof(BlogInfo))); } else { string title = string.Empty; string homepageUrl = string.Empty; ParseFeedDoc(xmlDoc, xmlResult.uri, true, ref homepageUrl, ref title); return(new BlogInfo[] { new BlogInfo(UrlHelper.SafeToAbsoluteUri(FeedServiceUrl), title, homepageUrl) }); } }
/// <summary> /// 获取WebDav远程地址的文件列表地址 /// </summary> /// <param name="remoteFilePth">远程文件目录,如http://172.23.0.1/met<</param> /// <param name="filters">后缀名过滤</param> /// <returns>返回的所有的文件集合</returns> public List <WebDavFile> GetFiles(string remoteFilePth, params string[] filters) { List <WebDavFile> filesList = new List <WebDavFile>(); Uri listUri = GetServerUrl(remoteFilePth, true); if (remoteFilePth.ToLower().StartsWith("http://") || remoteFilePth.StartsWith("https://")) { listUri = new Uri(remoteFilePth); } StringBuilder propfind = new StringBuilder(); propfind.Append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>"); propfind.Append("<propfind xmlns=\"DAV:\">"); propfind.Append(" <allprop/>"); propfind.Append("</propfind>"); IDictionary <string, string> headers = new Dictionary <string, string>(); headers.Add("Depth", "1"); using ( HttpWebResponse response = HttpRequest(listUri, "PROPFIND", headers, Encoding.UTF8.GetBytes(propfind.ToString()))) { using (Stream stream = response.GetResponseStream()) { System.Xml.XmlDocument xml = new System.Xml.XmlDocument(); xml.Load(stream); XmlNamespaceManager xmlNsManager = new XmlNamespaceManager(xml.NameTable); xmlNsManager.AddNamespace("d", "DAV:"); Windows.Data.Xml.Dom.XmlDocument xmlDom = new Windows.Data.Xml.Dom.XmlDocument(); xmlDom.LoadXml(xml.OuterXml); Windows.Data.Xml.Dom.XmlNodeList listNodes = xmlDom.DocumentElement.ChildNodes; for (int i = 0; i < listNodes.Count; i++) { IXmlNode node = listNodes[i]; IXmlNode first = node.ChildNodes.Where(x => x.NodeName.ToLower() == "d:href").FirstOrDefault(); if (first.InnerText == remoteFilePth) { continue; } WebDavFile oWebDavFile = new WebDavFile { Url = first.InnerText }; IXmlNode secNode = node.ChildNodes.Where(x => x.NodeName.ToLower() == "d:propstat").FirstOrDefault(); IXmlNode propsNode = secNode.ChildNodes.Where(x => x.NodeName.ToLower() == "d:prop").FirstOrDefault(); //文件的显示名 IXmlNode attrNode = propsNode.ChildNodes.Where(x => x.NodeName.ToLower() == "d:displayname") .FirstOrDefault(); oWebDavFile.DispalyName = attrNode.InnerText; if (oWebDavFile.DispalyName == remoteFilePth) { continue; } //文件的内容类型 attrNode = propsNode.ChildNodes.Where(x => x.NodeName.ToLower() == "d:getcontenttype") .FirstOrDefault(); oWebDavFile.ContentType = attrNode.InnerText; //文件的最后修改时间 attrNode = propsNode.ChildNodes.Where(x => x.NodeName.ToLower() == "d:getlastmodified") .FirstOrDefault(); oWebDavFile.LastModifyDate = DateTime.Parse(attrNode.InnerText); //文件的创建时间 attrNode = propsNode.ChildNodes.Where(x => x.NodeName.ToLower() == "d:creationdate") .FirstOrDefault(); oWebDavFile.CreateDate = DateTime.Parse(attrNode.InnerText); //文件的大小 attrNode = propsNode.ChildNodes.Where(x => x.NodeName.ToLower() == "d:getcontentlength") .FirstOrDefault(); oWebDavFile.Length = long.Parse(attrNode.InnerText); filesList.Add(oWebDavFile); } } } List <WebDavFile> folderDavFiles = filesList.Where(x => x.Length == 0 && x.Url.EndsWith("/")).ToList(); foreach (WebDavFile file in folderDavFiles) { if (file.Length == 0 && file.Url.EndsWith("/")) { filesList.AddRange(GetFiles(file.Url)); } } var q = filesList.Where(x => x.Length != 0); if (filters != null) { q = filters.Aggregate(q, (current, filter) => current.Where(x => !x.Url.ToLower().EndsWith(filter.ToLower()))); } return(q.ToList()); }
private async void SaveAsync(object sender, Windows.UI.Xaml.RoutedEventArgs e) { if (Validate()) { if (comp != null) { comp.Naam = Naam.Text; comp.Openingsuur = Openingsuur.Text; comp.Sluituur = Sluitsuur.Text; comp.Categorie = await categorieViewModel.getCategorie(Categorie.SelectedValue.ToString()); comp.Gemeente = Gemeente.Text; comp.Straat = Straat.Text; comp.Land = Land.Text; comp.Website = Website.Text; comp.Telefooonnummer = Telefoonnummer.Text; comp.Information = Beschrijving.Text; var ondernemingAnswer = await ondernemingenViewModel.bewerkOnderneming(comp); if (ondernemingAnswer) { this.Frame.Navigate(typeof(BeheerOndernemenPage_Mobile)); ToastTemplateType toastTemplate = ToastTemplateType.ToastText02; XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); XmlNodeList toastTekstElementen = toastXml.GetElementsByTagName("text"); toastTekstElementen[0].AppendChild(toastXml.CreateTextNode("Onderneming")); toastTekstElementen[1].AppendChild(toastXml.CreateTextNode(comp.Naam + " werd aangepast")); IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); ((XmlElement)toastNode).SetAttribute("duration", "long"); ToastNotification toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(toast); } } else { var categorie = await categorieViewModel.getCategorie(Categorie.SelectedValue.ToString()); Onderneming onderneming = new Onderneming( Naam.Text, Openingsuur.Text, Sluitsuur.Text, categorie.Id, Gemeente.Text, Straat.Text, Land.Text, Website.Text, Telefoonnummer.Text, Beschrijving.Text, ((App)Application.Current).gebruiker.Id ); var ondernemingAnswer = await ondernemingenViewModel.addOnderneming(onderneming); if (ondernemingAnswer) { this.Frame.Navigate(typeof(BeheerOndernemenPage_Mobile)); ToastTemplateType toastTemplate = ToastTemplateType.ToastText02; XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); XmlNodeList toastTekstElementen = toastXml.GetElementsByTagName("text"); toastTekstElementen[0].AppendChild(toastXml.CreateTextNode("Onderneming")); toastTekstElementen[1].AppendChild(toastXml.CreateTextNode(onderneming.Naam + " werd toegevoegd aan je ondernemingen")); IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); ((XmlElement)toastNode).SetAttribute("duration", "long"); ToastNotification toast = new ToastNotification(toastXml); ToastNotificationManager.CreateToastNotifier().Show(toast); } } } }
public bool Parse() { var temp = this.Content; var results = new List <string>(); var potentialResults = new Stack <string>(); var prefix = string.Empty; var parses = Instructions.Split('|'); foreach (var parse in parses) { var colon = parse.IndexOf(':'); if (colon > -1) { var cmd = parse.Substring(0, colon); var part = parse.Substring(colon + 1); var save = cmd.Contains("?"); var nextToken = cmd.Contains("&"); var prefixed = cmd.Contains("+"); var restore = cmd.Contains("^"); if (nextToken) { results.Add(temp); temp = ""; } if (prefixed) { prefix += temp; temp = string.Empty; } if (restore) { temp = potentialResults.Count > 0 ? potentialResults.Pop() : this.Content; } if (save) { potentialResults.Push(prefix + temp); prefix = string.Empty; } var contains = temp.Contains(part); if (cmd.Contains("i")) { if (!CheckDoc(temp)) { return(false); } nodes = doc.SelectNodes(part); IsDictionary = true; } else if (cmd.Contains("k")) { keypart = part; } else if (cmd.Contains("v")) { valuepart = part; } else if (cmd.Contains("table") && nodes != null) { if (part.Contains("name=")) { Tablename = part.Substring(part.IndexOf("name=") + 5); var j = Tablename.IndexOf(";"); if (j > -1) { Tablename = Tablename.Substring(0, j); } } foreach (var node in nodes) { IXmlNode key = null; Windows.Data.Xml.Dom.XmlNodeList valueset = null; try { key = node.SelectSingleNode(keypart); valueset = node.SelectNodes(valuepart); } catch (Exception) { //skip if not matching continue; } if (!string.IsNullOrWhiteSpace(key?.InnerText)) { if (!string.IsNullOrWhiteSpace(key.InnerText) && !dictionary.ContainsKey(key.InnerText)) { var values = new StringBuilder(); var count = valueset.Count(); foreach (var value in valueset) { values.Append(value.InnerText); if (--count > 0) { values.Append("~"); } } dictionary.Add(key.InnerText, values.ToString()); } } } Debug.WriteLine(string.Format("Table {0} saved count = {1}", Tablename, dictionary.Count)); } else if (cmd.Contains("R")) { temp = temp.RightOf(part); } else if (cmd.Contains("L")) { temp = temp.LeftOf(part); } else if (cmd.Contains("B")) { temp = temp.Between(part); } else if (cmd.Contains("!")) { temp = part; } else if (cmd.Contains("J") || cmd.Contains("j")) { var jParsed = JToken.Parse(temp); if (jParsed != null) { var jToken = jParsed.SelectToken(part); if (jToken != null) { if (cmd.Contains("j")) { temp = ((JProperty)jToken).Name; if (cmd.Contains("J")) { temp += ":'" + jToken.Value <string>() + "'"; } } else { temp = jToken.Value <string>(); } } else { temp = string.Empty; } } else { temp = string.Empty; } } else if (cmd.Contains("X")) { var expr = new Regex(part); var matches = expr.Match(part); var matchResults = new StringBuilder(); while (matches.Success) { contains = true; matchResults.Append(matches.Value); matchResults.Append("~"); matches = matches.NextMatch(); } temp = matchResults.ToString(); if (!string.IsNullOrWhiteSpace(temp)) { temp = temp.Substring(0, temp.Length - 1); } } else if (cmd.Contains("F")) { results.Add(prefix + temp); prefix = string.Empty; temp = string.Format(part, results.ToArray()); results.Clear(); } if (save && !contains) { temp = potentialResults.Pop(); } } if (string.IsNullOrWhiteSpace(temp)) { break; } } if (!string.IsNullOrWhiteSpace(temp)) { results.Add(prefix + temp); prefix = string.Empty; } var builder = new StringBuilder(); for (var i = 0; i < results.Count; i++) { builder.Append(results[i]); if (i < results.Count - 1) { builder.Append("|"); } } Result = builder.Length == 0 ? string.Empty : builder.ToString(); return(true); }
protected async Task <BlogPost[]> GetRecentPostsInternal(string blogId, int maxPosts, bool includeCategories, DateTime?now) { Login(); FixupBlogId(ref blogId); HashSet <string> seenIds = new HashSet <string>(); ArrayList blogPosts = new ArrayList(); try { while (true) { XmlDocument doc; XmlRestRequestHelper.XmlRequestResult result = new XmlRestRequestHelper.XmlRequestResult(); result.uri = new Uri(blogId); // This while-loop nonsense is necessary because New Blogger has a bug // where the official URL for getting recent posts doesn't work when // the orderby=published flag is set, but there's an un-official URL // that will work correctly. Therefore, subclasses need the ability // to inspect exceptions that occur, along with the URI that was used // to make the request, and determine whether an alternate URI should // be used. while (true) { try { doc = await xmlRestRequestHelper.Get(RequestFilter, result); break; } catch (Exception e) { //Debug.WriteLine(e.ToString()); if (AttemptAlternateGetRecentPostUrl(e, ref blogId)) { continue; } else { throw; } } } XmlNodeList nodeList = doc.SelectNodesNS("/atom:feed/atom:entry", _nsMgr.ToNSMethodFormat()); if (nodeList.Count == 0) { break; } foreach (XmlElement node in nodeList) { BlogPost blogPost = this.Parse(node, includeCategories, result.uri); if (blogPost != null) { if (seenIds.Contains(blogPost.Id)) { throw new DuplicateEntryIdException(); } seenIds.Add(blogPost.Id); if (!now.HasValue || blogPost.DatePublished.CompareTo(now.Value) < 0) { blogPosts.Add(blogPost); } } if (blogPosts.Count >= maxPosts) { break; } } if (blogPosts.Count >= maxPosts) { break; } XmlElement nextNode = doc.SelectSingleNodeNS("/atom:feed/atom:link[@rel='next']", _nsMgr.ToNSMethodFormat()) as XmlElement; if (nextNode == null) { break; } blogId = XmlHelper.GetUrl(nextNode, "@href", result.uri); if (blogId.Length == 0) { break; } } } catch (DuplicateEntryIdException) { //if (ApplicationDiagnostics.AutomationMode) // Debug.WriteLine("Duplicate IDs detected in feed"); //else // Debug.Fail("Duplicate IDs detected in feed"); } return((BlogPost[])blogPosts.ToArray(typeof(BlogPost))); }
public bool Parse() { var temp = this.Content; var results = new List<string>(); var potentialResults = new Stack<string>(); var prefix = string.Empty; var parses = this.Instructions.Split('|'); foreach (var parse in parses) { var colon = parse.IndexOf(':'); if (colon > -1) { var cmd = parse.Substring(0, colon); var part = parse.Substring(colon + 1); var save = cmd.Contains("?"); var nextToken = cmd.Contains("&"); var prefixed = cmd.Contains("+"); var restore = cmd.Contains("^"); if (nextToken) { results.Add(temp); temp = string.Empty; } if (prefixed) { prefix += temp; temp = string.Empty; } if (restore) { temp = potentialResults.Count > 0 ? potentialResults.Pop() : this.Content; } if (save) { potentialResults.Push(prefix + temp); prefix = string.Empty; } var contains = temp.Contains(part); if (cmd.Contains("i")) { if (!this.CheckDoc(temp)) { return false; } this.nodes = this.doc.SelectNodes(part); this.IsDictionary = true; } else if (cmd.Contains("k")) { this.keypart = part; } else if (cmd.Contains("v")) { this.valuepart = part; } else if (cmd.Contains("table") && this.nodes != null) { if (part.Contains("name=")) { this.Tablename = part.Substring(part.IndexOf("name=") + 5); var j = this.Tablename.IndexOf(";"); if (j > -1) { this.Tablename = this.Tablename.Substring(0, j); } } foreach (var node in this.nodes) { IXmlNode key = null; XmlNodeList valueset = null; try { key = node.SelectSingleNode(this.keypart); valueset = node.SelectNodes(this.valuepart); } catch (Exception) { // skip if not matching continue; } if (!string.IsNullOrWhiteSpace(key?.InnerText)) { if (!string.IsNullOrWhiteSpace(key.InnerText) && !this.Dictionary.ContainsKey(key.InnerText)) { var values = new StringBuilder(); var count = valueset.Count(); foreach (var value in valueset) { values.Append(value.InnerText); if (--count > 0) { values.Append("~"); } } this.Dictionary.Add(key.InnerText, values.ToString()); } } } Debug.WriteLine("Table {0} saved count = {1}", this.Tablename, this.Dictionary.Count); } else if (cmd.Contains("R")) { temp = temp.RightOf(part); } else if (cmd.Contains("L")) { temp = temp.LeftOf(part); } else if (cmd.Contains("B")) { temp = temp.Between(part); } else if (cmd.Contains("!")) { temp = part; } else if (cmd.Contains("J") || cmd.Contains("j")) { var jParsed = JToken.Parse(temp); if (jParsed != null) { var jToken = jParsed.SelectToken(part); if (jToken != null) { if (cmd.Contains("j")) { temp = ((JProperty)jToken).Name; if (cmd.Contains("J")) { temp += ":'" + jToken.Value<string>() + "'"; } } else { temp = jToken.Value<string>(); } } else { temp = string.Empty; } } else { temp = string.Empty; } } else if (cmd.Contains("X")) { var expr = new Regex(part); var matches = expr.Match(part); var matchResults = new StringBuilder(); while (matches.Success) { contains = true; matchResults.Append(matches.Value); matchResults.Append("~"); matches = matches.NextMatch(); } temp = matchResults.ToString(); if (!string.IsNullOrWhiteSpace(temp)) { temp = temp.Substring(0, temp.Length - 1); } } else if (cmd.Contains("F")) { results.Add(prefix + temp); prefix = string.Empty; temp = string.Format(part, results.ToArray()); results.Clear(); } if (save && !contains) { temp = potentialResults.Pop(); } } if (string.IsNullOrWhiteSpace(temp)) { break; } } if (!string.IsNullOrWhiteSpace(temp)) { results.Add(prefix + temp); prefix = string.Empty; } var builder = new StringBuilder(); for (var i = 0; i < results.Count; i++) { builder.Append(results[i]); if (i < results.Count - 1) { builder.Append("|"); } } this.Result = builder.Length == 0 ? string.Empty : builder.ToString(); return true; }