示例#1
0
        public void Post(string id, [FromBody] Model.UserData value)
        {
            if (value == null ||
                string.IsNullOrWhiteSpace(value.Id))
            {
                return;
            }

            var userDataDictionary = stateManager.GetOrAddAsync <IReliableDictionary <string, Model.UserData> >(
                ReliableObjectNames.UserDataDictionary)
                                     .GetAwaiter()
                                     .GetResult();

            using (var txn = stateManager.CreateTransaction())
            {
                userDataDictionary.SetAsync(
                    txn,
                    value.Id,
                    value)
                .GetAwaiter()
                .GetResult();

                txn.CommitAsync()
                .GetAwaiter()
                .GetResult();
            }

            ReliableCollectionHelper.AddPinToForecastCollection(
                stateManager,
                value.Pin);
        }
示例#2
0
        public ActionResult <Model.UserData> Get(string id)
        {
            var userData = new Model.UserData();

            userData.Id = id;

            var userDataDictionary = stateManager.GetOrAddAsync <IReliableDictionary <string, Model.UserData> >(
                ReliableObjectNames.UserDataDictionary)
                                     .GetAwaiter()
                                     .GetResult();

            using (var txn = stateManager.CreateTransaction())
            {
                var userinfo = userDataDictionary.TryGetValueAsync(
                    txn,
                    id)
                               .GetAwaiter()
                               .GetResult();

                if (userinfo.HasValue)
                {
                    userData.Pin              = userinfo.Value.Pin;
                    userData.DeviceList       = userinfo.Value.DeviceList;
                    userData.ForecastDataJson =
                        ReliableCollectionHelper.FetchForecastDataJsonObj(
                            stateManager,
                            userData.Pin);
                }
                else
                {
                    // TODO: Return 404 error.
                    userData.ForecastDataJson = "Unkown";
                    Telemetry.Client.TrackTrace($"User with Id {id} does not exist.");
                }
            }

            return(userData);
        }