예제 #1
0
 public ArchivedImage(BingImage b)
 {
     Name        = b.GetImageName();
     Market      = b.market;
     Description = b.copyright;
     Date        = b.startdate;
     UrlBase     = b.urlbase;
     FileName    = b.GetImageFileName(false);
 }
예제 #2
0
        private static async Task SetBingImageAsync()
        {
            var bingImage = new BingImage();
            var bingUnit  = await bingImage.GetTodayBingUnit(BingImageResolution.LARGE);

            if (bingUnit != null)
            {
                //imgBingScreen.Source = new BitmapImage(new Uri(bingUnit.Path));
            }
        }
        public async Task SetBingImageAsync()
        {
            BingImage bingImage = new BingImage();
            var       bingUnit  = await bingImage.GetTodayBingUnit(BingImageResolution.LARGE);

            if (bingUnit != null)
            {
                imgPreview.Source = new BitmapImage(new Uri(bingUnit.Path));
            }
        }
예제 #4
0
 public override Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> state)
 {
     if (state.ContainsKey(nameof(Image)))
     {
         Image = state[nameof(Image)] as BingImage;
         state.Clear();
     }
     else
     {
         Image = parameter as BingImage;
     }
     return(Task.CompletedTask);
 }
예제 #5
0
        public async Task <CBBingImageBackground> GetBingImageAsync()
        {
            BingImage bingImage = new BingImage();
            var       bingUnit  = await bingImage.GetTodayBingUnit(BingImageResolution.LARGE);

            if (bingUnit != null)
            {
                var bg = new CBBingImageBackground();
                bg.Background = bingUnit.Path;
                bg.Copyright  = bingUnit.Copyright;
                return(bg);
            }
            return(null);
        }
예제 #6
0
        public BingImage[] GetBingImages()
        {
            var results   = new BingImage[] { };
            var webClient = new WebClient();

            webClient.Headers.Add("Ocp-Apim-Subscription-Key", "018b48326ce247919bd60c3121812766");
            byte[] searchResults = webClient.DownloadData(string.Format("https://api.cognitive.microsoft.com/bing/v5.0/images/search?q={0}&mkt=en-us", "rocky+mountains&count=8"));
            var    serializer    = new JsonSerializer();

            using (var stream = new MemoryStream(searchResults))
                using (var reader = new StreamReader(stream))
                    using (var jsonReader = new JsonTextReader(reader))
                    {
                        return(results = serializer.Deserialize <BingImageResponse>(jsonReader).value);
                    }
        }
예제 #7
0
        UIBingImage BingImageToUIBingImage(BingImage image)
        {
            UIBingImage uiImage = new UIBingImage();

            uiImage.BingImageId = Guid.NewGuid();
            uiImage.StartDate   = image.StartDate;
            uiImage.EndDate     = image.EndDate;
            uiImage.Copyright   = image.Copyright;
            uiImage.ImageName   = FormatImageName(image.Copyright);
            uiImage.BingHost    = downloader.BingHost;
            uiImage.ImageUrl    = image.ImageUrl;

            MemoryStream imageStream = new MemoryStream();

            image.Image.Save(imageStream, ImageFormat.Jpeg);
            uiImage.ImageData = imageStream.ToArray();
            imageStream.Close();

            uiImage.Hotspots = JsonConvert.SerializeObject(image.Hotspots);
            uiImage.Messages = JsonConvert.SerializeObject(image.Messages);

            return(uiImage);
        }
예제 #8
0
        public bool SaveTodayBingImage()
        {
            List <BingImage> images = null;

            try
            {
                images = downloader.GetImage(1, 1);
                if (images.Count == 0)
                {
                    return(false);
                }
                BingImage   image   = images[0];
                UIBingImage uiImage = BingImageToUIBingImage(image);
                using (DbConnection conn = Connection)
                {
                    conn.Open();
                    DbCommand cmd = conn.CreateCommand();
                    cmd.CommandText = "INSERT INTO [sys_LoginImages] VALUES (@BingImageId, @StartDate, @EndDate, @Copyright, @ImageName, @BingHost, @ImageUrl, @ImageData, @Hotspots, @Messages)";
                    cmd.CommandType = CommandType.Text;

                    DbParameter param = new SqlParameter("@BingImageId", DbType.Guid);
                    param.Value = uiImage.BingImageId;
                    cmd.Parameters.Add(param);
                    param       = new SqlParameter("@StartDate", DbType.DateTime);
                    param.Value = uiImage.StartDate;
                    cmd.Parameters.Add(param);
                    param       = new SqlParameter("@EndDate", DbType.DateTime);
                    param.Value = uiImage.EndDate;
                    cmd.Parameters.Add(param);
                    param       = new SqlParameter("@Copyright", DbType.String);
                    param.Value = uiImage.Copyright;
                    cmd.Parameters.Add(param);
                    param       = new SqlParameter("@ImageName", DbType.String);
                    param.Value = uiImage.ImageName;
                    cmd.Parameters.Add(param);
                    param       = new SqlParameter("@BingHost", DbType.String);
                    param.Value = uiImage.BingHost;
                    cmd.Parameters.Add(param);
                    param       = new SqlParameter("@ImageUrl", DbType.String);
                    param.Value = uiImage.ImageUrl;
                    cmd.Parameters.Add(param);
                    param       = new SqlParameter("@ImageData", DbType.Binary);
                    param.Value = uiImage.ImageData;
                    cmd.Parameters.Add(param);
                    param       = new SqlParameter("@Hotspots", DbType.String);
                    param.Value = uiImage.Hotspots;
                    cmd.Parameters.Add(param);
                    param       = new SqlParameter("@Messages", DbType.String);
                    param.Value = uiImage.Messages;
                    cmd.Parameters.Add(param);

                    int val = cmd.ExecuteNonQuery();
                    return(val == 1);
                }
            }
            catch (Exception e)
            {
                Logging.Log.Get().Current.Error("保存出现错误", e);
                return(false);
            }
        }
예제 #9
0
        public static void LoadXML()
        {
            BingXMLUpdate = false;
            BingImages.Clear();

            if (File.Exists(settings.LocalXmlFilename))
            {
                string      value = File.ReadAllText(settings.LocalXmlFilename);
                XmlDocument doc   = new XmlDocument();
                try
                {
                    doc.LoadXml(value);
                    System.Xml.XmlNodeList NodeList = doc.GetElementsByTagName("image");
                    foreach (XmlNode node in NodeList)
                    {
                        BingImage BI = new BingImage();
                        BI.url           = node["url"].InnerText;
                        BI.copyright     = System.Text.RegularExpressions.Regex.Unescape(node["copyright"].InnerText);
                        BI.startdate     = node["startdate"].InnerText;
                        BI.fullstartdate = node["fullstartdate"].InnerText;
                        BI.enddate       = node["enddate"].InnerText;
                        BingImages.Add(BI);

                        DateTime dt = DateTime.Now;
                        try
                        {
                            dt = DateTime.ParseExact(BI.fullstartdate, "yyyyMMddHHmm",
                                                     System.Globalization.CultureInfo.InvariantCulture);
                        }
                        catch (Exception e)
                        {
                            Log.Error("Error: " + e.Message);
                        }

                        if (settings.BingFullstarttime != dt)
                        {
                            settings.BingFullstarttime = dt;
                            BingXMLUpdate = true;
                        }

                        dt = DateTime.Now;
                        try
                        {
                            dt = DateTime.ParseExact(BI.enddate, "yyyyMMdd",
                                                     System.Globalization.CultureInfo.InvariantCulture);
                        }
                        catch (Exception e)
                        {
                            Log.Error("Error: " + e.Message);
                        }

                        if (settings.BingEnddate != dt)
                        {
                            settings.BingEnddate = dt;
                            BingXMLUpdate        = true;
                        }

                        if (dt < DateTime.Now)
                        {
                            Log.Info("Reload XML-file due to passed enddate!");
                            BingXMLUpdate = true;
                        }

                        if (settings.BingURL != BI.url)
                        {
                            settings.BingURL = BI.url;
                            BingXMLUpdate    = true;
                        }
                    }
                }
                catch (XmlException e)
                {
                    Log.Error("Can't download or parse Bing XML-file: " + e.Message);
                    BingXMLUpdate = true;
                    return;
                }
            }
            else
            {
                BingXMLUpdate = true;
            }
        }
예제 #10
0
 public void GotoDetailsPage(BingImage image)
 {
     NavigationService.Navigate(typeof(Views.DetailPage), image);
 }