Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }