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}");
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        /// <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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
            }
        }
Esempio n. 11
0
        //磁铁创建函数
        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);
                }
            }
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
 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);
         }
     }
 }
Esempio n. 14
0
        //查询天气
        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();
                }
            }
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        /// <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);
                    }
                }
            }
        }
Esempio n. 17
0
        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) });
            }
        }
Esempio n. 18
0
        /// <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());
        }
Esempio n. 19
0
        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);
                    }
                }
            }
        }
Esempio n. 20
0
        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);
        }
Esempio n. 21
0
        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;
        }