public void RateItemConstructor_Null_ThrowException() { // Arrange // Act _ = new RateItem(null); // Assert }
public async Task <IActionResult> SetRate(string studentId, int subjectId, int value) { var rate = dbContext.Rates.FirstOrDefault(r => r.StudentId == studentId && r.SubjectId == subjectId); var teacher = await userManager.GetUserAsync(HttpContext.User); var student = dbContext.Users.Include(u => u.Claims).Single(u => u.Id == studentId); var subject = dbContext.Subjects.Single(s => s.Id == subjectId); if (rate == null) { rate = new StudentRate() { StudentId = studentId, SubjectId = subjectId, Value = value, Date = DateTime.Now }; rate.TeacherId = teacher.Id; dbContext.Add(rate); } else { rate.Value = value; rate.TeacherId = teacher.Id; } var rateItem = new RateItem() { Type = LogItemType.Rate, DateTime = DateTime.Now, Teacher = teacher.Name, Student = student.Name, Rate = value, Subject = subject.Name }; dbContext.LogItems.Add(rateItem); dbContext.SaveChanges(); return(Ok()); }
public void RateItemConstructor_EmptyString_InitedByZero() { // Arrange var expectedNumber = 0; var expectedTextValue = "0 / 0"; // Act RateItem item = new RateItem(""); // Assert Assert.AreEqual(expectedNumber, item.AverageRate); Assert.AreEqual(expectedNumber, item.PeopleVoted); Assert.AreEqual(expectedTextValue, item.ToString()); }
private async Task CacheRateAsync(RateItem itemToCache) { await Task.Run(() => { XmlSerializer formatter = new XmlSerializer(typeof(RateItem)); var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), $"{itemToCache.CurrencyFrom}_{itemToCache.CurrencyTo}.xml"); using (var writer = new StreamWriter(path)) { itemToCache.LastCached = DateTime.Now; formatter.Serialize(writer, itemToCache); } }); }
public ActionResult Rate() { var xDoc = new XmlDocument(); xDoc.Load("http://www.sjc.com.vn/xml/tygiavang.xml"); // lấy ngày cập nhật var nodeDateTime = xDoc.GetElementsByTagName("ratelist"); var model = new ModelRateCityItem(); foreach (XmlNode item in nodeDateTime) { if (item.Attributes == null) { continue; } model.DateUpdated = item.Attributes["updated"].Value; } // lấy giá vàng của các tỉnh thành var listNodes = xDoc.GetElementsByTagName("city"); var lstRateCity = new List <RateCityItem>(); foreach (XmlNode item in listNodes) { var lstRate = new List <RateItem>(); var rateCityItem = new RateCityItem(); for (var i = 0; i < item.ChildNodes.Count; i++) { var attributes = item.ChildNodes[i].Attributes; if (attributes == null) { continue; } var rate = new RateItem { Buy = attributes["buy"].Value, Sell = attributes["sell"].Value, Type = attributes["type"].Value }; lstRate.Add(rate); } if (item.Attributes == null) { continue; } rateCityItem.CityName = item.Attributes["name"].Value; rateCityItem.ListRateItem = lstRate; lstRateCity.Add(rateCityItem); } model.ListRateCityItem = lstRateCity; return(View(model)); }
public void RateItemConstructor_StringByTemplate_InitedRight() { // Arrange var expectedRate = 4.26; var expectedCount = 50; var expectedTextValue = $"{expectedRate} / {expectedCount}"; // Act RateItem item = new RateItem(" средняя 4.26, голосов 50"); // Assert Assert.AreEqual(expectedRate, item.AverageRate); Assert.AreEqual(expectedCount, item.PeopleVoted); Assert.AreEqual(expectedTextValue, item.ToString()); }
public IActionResult Create([FromBody] RateItem item) { if (item == null) { return(BadRequest()); } if (ModelState.IsValid) { _context.AddRateItem(item); return(CreatedAtRoute("GetRate", new { id = item.Id }, item)); } return(BadRequest(ModelState)); }
public List <RateItem> getRate() { try { List <RateItem> RateList = new List <RateItem>(); //指定來源網頁 WebClient url = new WebClient(); //將網頁來源資料暫存到記憶體內 MemoryStream ms = new MemoryStream(url.DownloadData("http://www.cnyes.com/CentralBank/interest1.aspx?type=all")); //以台灣銀行為範例 // 使用預設編碼讀入 HTML HtmlDocument doc = new HtmlDocument(); doc.Load(ms, Encoding.UTF8); HtmlNode tempNode; string[] RateOrder = new string[] { "1", "2", "3", "6", "7", "13", "15", "16", "17", "18", "19", "23" }; tempNode = doc.DocumentNode.SelectSingleNode(@"/html[1]/body[1]/div[6]/div[1]/div[1]/div[2]/div[2]/table[1]"); // 取得匯率 for (int num = 0; num < RateOrder.Count(); num++) { RateItem Rate = new RateItem(); Rate.Country = tempNode.SelectSingleNode(@"tr[" + RateOrder[num] + "]/td[1]").InnerText; Rate.RateName = tempNode.SelectSingleNode(@"tr[" + RateOrder[num] + "]/td[2]").InnerText; Rate.Rate = tempNode.SelectSingleNode(@"tr[" + RateOrder[num] + "]/td[3]").InnerText; Rate.LastRate = tempNode.SelectSingleNode(@"tr[" + RateOrder[num] + "]/td[6]").InnerText; Rate.point = tempNode.SelectSingleNode(@"tr[" + RateOrder[num] + "]/td[4]").InnerText; Rate.pubDate = tempNode.SelectSingleNode(@"tr[" + RateOrder[num] + "]/td[5]").InnerText; Rate.Inflation = tempNode.SelectSingleNode(@"tr[" + RateOrder[num] + "]/td[7]").InnerText; RateList.Add(Rate); } //清除資料 doc = null; url = null; ms.Close(); return(RateList); } catch (System.IO.IOException e) { logger.Error(LogUtility.GetExceptionDetails(e)); return(null); } }
public static void Initialize(RatesContext context) { if (context.RateItems.Any()) { //Data already populated return; } var rateItems = new RateItem[] { new RateItem { Days = "mon,tues,thurs", Times = "0900-2100", Price = 1500 }, new RateItem { Days = "fri,sat,sun", Times = "0900-2100", Price = 2000 }, new RateItem { Days = "wed", Times = "0600-1800", Price = 1750 }, new RateItem { Days = "mon,wed,sat", Times = "0100-0500", Price = 1000 }, new RateItem { Days = "sun,tues", Times = "0100-0700", Price = 925 } }; foreach (var rateItem in rateItems) { context.AddRateItem(rateItem); } }
private async Task <RateItem> GetCachedRateAsync(string convertFrom, string convertTo) { RateItem item = new RateItem() { CurrencyFrom = convertFrom, CurrencyTo = convertTo, LastCached = DateTime.MinValue }; await Task.Run(() => { XmlSerializer formatter = new XmlSerializer(typeof(RateItem)); var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), $"{convertFrom}_{convertTo}.xml"); if (File.Exists(path)) { using (var sr = new StreamReader(path)) { item = (RateItem)formatter.Deserialize(sr); } } }); return(item); }
public IActionResult Update(long id, [FromBody] RateItem item) { if (item == null || item.Id != id) { return(BadRequest()); } var rate = _context.RateItems.Find(id); if (rate == null) { return(NotFound()); } rate.Days = item.Days; rate.Times = item.Times; rate.Price = item.Price; _context.RateItems.Update(rate); _context.SaveChanges(); return(NoContent()); }