public static async void InsertBDataAsync(BData bdata) { var entity = await GetBDataAsync(bdata.Calendar); if (entity != null) { return; } using (var conn = GetConnection()) { using (var command = new SqliteCommand(conn)) { command.CommandType = System.Data.CommandType.Text; command.CommandText = String.Format("INSERT INTO {0} (TITLE,COPYRIGHT,DESCRIPTION,LOCATION,BITMAP,CALENDAR)" + " VALUES(:Title,:Copyright,:Description,:Location,:Bitmap,:Calendar)", BDataTableName); command.Parameters.Add(new SqliteParameter("Title", bdata.Title)); command.Parameters.Add(new SqliteParameter("Copyright", bdata.Copyright)); command.Parameters.Add(new SqliteParameter("Description", bdata.Description)); command.Parameters.Add(new SqliteParameter("Location", bdata.Location)); command.Parameters.Add(new SqliteParameter("Bitmap", await BitmapUtil.GetBitmapBufferAsync(bdata.Bitmap))); command.Parameters.Add(new SqliteParameter("Calendar", DateUtil.GetDateTicks(bdata.Calendar))); await command.ExecuteNonQueryAsync(); } } }
private async Task <BData> GetBDataFromRemoteAsync(int d) { var size = new Point(); mMainActivity.WindowManager.DefaultDisplay.GetSize(size); var screenWidth = size.X; // 屏幕宽(像素,如:768px) var screenHeight = size.Y; // 屏幕高(像素,如:1184px) var res = Utils.GetSuitableResolution(screenWidth, screenHeight); var bData = new BData(); var html = await GetHtmlDataAsync(string.Format(Consts.BingLifeUrl, DateTime.Today.Subtract(new TimeSpan(d, 0, 0, 0)).ToString("yyyyMMdd"))); bData.Title = ExtractText(html, "<div class=\"hplaTtl\">(.*?)</div>"); bData.Location = ExtractText(html, "<span class=\"hplaAttr\">(.*?)</span"); bData.Description = ExtractText(html, "<div id=\"hplaSnippet\">(.*?)</div>"); var json = await GetHtmlDataAsync(string.Format(Consts.BingHPImageArchiveUrl, d, DateUtil.ConvertFromLocalDateTimeToSeconds(DateTime.Now))); var JBData = JsonConvert.DeserializeObject <JBData>(json); bData.Copyright = JBData.Images[0].Copyright; bData.ImageUrl = Consts.BingBaseUrl + JBData.Images[0].Urlbase + "_" + res.Width + "x" + res.Height + ".jpg"; bData.Bitmap = await GetBitmapAsync(bData.ImageUrl); if (bData.Bitmap.Width != screenWidth || bData.Bitmap.Height != screenHeight) { bData.Bitmap = BitmapUtil.ZoomBitmap(bData.Bitmap, screenWidth, screenHeight); } bData.Calendar = FormatCalendar(JBData); return(bData); }
public static async Task <BData> GetBDataAsync(DateTime dt) { using (var conn = GetConnection()) { using (var command = new SqliteCommand(conn)) { command.CommandType = System.Data.CommandType.Text; command.CommandText = String.Format("SELECT * FROM {0} WHERE CALENDAR={1}", BDataTableName, DateUtil.GetDateTicks(dt)); using (var dr = await command.ExecuteReaderAsync().ConfigureAwait(false)) { if (dr.Read()) { return(new BData { Title = dr["Title"].ToString(), Copyright = dr["Copyright"].ToString(), Description = dr["Description"].ToString(), Location = dr["Location"].ToString(), Bitmap = await BitmapUtil.GetBitmapAsync((byte[])dr["Bitmap"]).ConfigureAwait(false), Calendar = DateUtil.GetDateTimeFromDateTicks(long.Parse(dr["Calendar"].ToString())) }); } } } } return(null); }