Ejemplo n.º 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));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> Index(string tagMac)
        {
            ViewBag.ShowRegisterModal = TempData["ShowRegisterModal"];
            ViewBag.LoginProvider     = TempData["LoginProvider"];
            ViewBag.ShowAddTag        = TempData["ShowAddTag"];
            ViewBag.ShowTagSettings   = TempData["ShowTagSettings"];
            ViewBag.TagErrors         = TempData["TagErrorList"];
            ViewBag.GeneralError      = TempData["GeneralError"];

            string userID = string.Empty;

            if (!string.IsNullOrWhiteSpace(tagMac) && !Request.IsAuthenticated)
            {
                if (TempData["UnpackedTagData"] != null)
                {
                    ViewBag.TagData = TempData["UnpackedTagData"];
                }
                else
                {
                    var mac = new MacAddressModel
                    {
                        MacAddress = tagMac
                    };
                    var context = new ValidationContext(mac);
                    var results = new List <ValidationResult>();
                    var isValid = Validator.TryValidateObject(mac, context, results, true);
                    if (isValid)
                    {
                        return(await SearchTag(mac));
                    }
                    foreach (var e in results)
                    {
                        ModelState.AddModelError("MacAddress", e.ErrorMessage);
                    }
                    return(View(mac));
                }
            }
            else if (Request.IsAuthenticated)
            {
                userID = User.Identity.GetUserId();
                List <RuuviTagModel> userTags = await GetUserTagsAsync(userID);

                ViewBag.UserTagsList = userTags;
                ViewBag.UserGroups   = await GetUsersGroupsAsync(userID);

                ViewBag.UserHasEmail = db.Users.Find(userID).Email != null;
                if (TempData["ReturnToTag"] is int id)
                {
                    ViewBag.ReturnToTag = id;
                    ViewBag.SetDisplay  = userTags.Where(t => t.TagId == id).Select(d => d.TagName ?? d.TagMacAddress);
                }

                // Add error message in case user hasn't added any tags
                if (userTags == null || !userTags.Any() || userTags.Count == 0)
                {
                    ViewBag.UserTagsListError = "Zero RuuviTags saved.";
                }
            }

            if (TempData["TagModel"] is AddTagModel addTag)
            {
                foreach (var e in ViewBag.TagErrors)
                {
                    ModelState.AddModelError(string.Empty, e);
                }
                return(View(addTag));
            }
            else if (TempData["TagModel"] is RuuviTagModel tag)
            {
                foreach (var e in ViewBag.TagErrors)
                {
                    ModelState.AddModelError("TagName", e);
                }
                ViewBag.AvailableGroups = await GetAvailableGroupsForTag(tag.TagId, userID);

                ViewBag.Id = tag.TagId;
                return(View(tag));
            }

            return(View());
        }
Ejemplo n.º 3
0
 public async Task <HttpRequestResult <PackingListViewInfoModel> > DeletePackingListDelivery(int packingListDeliveryId, MacAddressModel macAddress)
 {
     return(await DeleteAsyncReceiveData <PackingListViewInfoModel>(
                $"{ApiController}/packing-list-delivery/{packingListDeliveryId}/{macAddress}"));
 }
 public async Task <HttpRequestResult <PackingListViewInfoModel> > ClosePackingListAccessory(int packingListAccessoryId, MacAddressModel macAddress)
 {
     return(await GetAsyncAuthenticatedData <PackingListViewInfoModel>(
                $"{ApiController}/close-packing-list-accessory/{packingListAccessoryId}/{macAddress}"));
 }