public async Task <ActionResult> SearchTag(MacAddressModel mac) { if (ModelState.IsValid) { List <WhereOSApiRuuvi> apiResponse = await GetTagData(mac.GetAddress()); if (apiResponse.Count == 0) { ModelState.AddModelError("MacAddress", "No data found, check RuuviTag ID. See Help -section for more information."); return(View("Index", mac)); } List <UnpackData> lstapiData = new List <UnpackData>(); foreach (WhereOSApiRuuvi apiRuuviTag in apiResponse) { UnpackData ApiRowData = new UnpackData(); UnpackRawData RawDataRow = new UnpackRawData(); RawDataRow.UnpackAllData(apiRuuviTag.data); ApiRowData.Data = RawDataRow; ApiRowData.Time = apiRuuviTag.time; lstapiData.Add(ApiRowData); } TempData["UnpackedTagData"] = lstapiData; return(RedirectToAction("Index", "Home", new { tagMac = mac.GetAddress() })); } return(View("Index", mac)); }
public async Task <ActionResult> LoggedInApiData(int?tagID, int?interval) { if (tagID == null) { TempData["GeneralError"] = "Something went wrong while fetching data. Please try again"; return(RedirectToAction("Index")); } RuuviTagModel tag = db.RuuviTagModels.Find(tagID); if (tag == null) { TempData["GeneralError"] = "Something went wrong while fetching data. Please try again"; return(RedirectToAction("Index")); } if (tag.UserId != User.Identity.GetUserId()) { TempData["GeneralError"] = "You do not have permission to do that."; return(RedirectToAction("Index")); } List <WhereOSApiRuuvi> apiResponse; if (interval != null) { apiResponse = await GetTagData(tag.TagMacAddress, (int)interval); } else { apiResponse = await GetTagData(tag.TagMacAddress); } List <UnpackData> lstapiData = new List <UnpackData>(); foreach (WhereOSApiRuuvi apiRuuviTag in apiResponse) { UnpackData ApiRowData = new UnpackData(); UnpackRawData RawDataRow = new UnpackRawData(); RawDataRow.UnpackAllData(apiRuuviTag.data); ApiRowData.Data = RawDataRow; ApiRowData.Time = apiRuuviTag.time; lstapiData.Add(ApiRowData); } return(Json(lstapiData, JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult> _GroupTagDataPartial(int groupID, int?interval) { List <GroupDataModel> groupData = new List <GroupDataModel>(); foreach (TagListRowModel row in await db.TagListRowModels.Where(r => r.ListId == groupID).Include(t => t.RuuviTagModel).ToListAsync()) { if (!row.RuuviTagModel.TagActive) { continue; } List <WhereOSApiRuuvi> apiResponse; if (interval == null) { apiResponse = await GetTagData(row.RuuviTagModel.TagMacAddress); } else { apiResponse = await GetTagData(row.RuuviTagModel.TagMacAddress, (int)interval); } List <UnpackData> lstapiData = new List <UnpackData>(); foreach (WhereOSApiRuuvi apiRuuviTag in apiResponse) { UnpackData ApiRowData = new UnpackData(); UnpackRawData RawDataRow = new UnpackRawData(); RawDataRow.UnpackAllData(apiRuuviTag.data); ApiRowData.Data = RawDataRow; ApiRowData.Time = apiRuuviTag.time; lstapiData.Add(ApiRowData); } groupData.Add(new GroupDataModel { TagID = row.RuuviTagModel.TagId, TagDisplay = row.RuuviTagModel.TagName ?? row.RuuviTagModel.TagMacAddress, TagData = lstapiData }); } return(PartialView(groupData)); }