Esempio n. 1
0
        public async Task <Models.KeyValue> Get(Lib.KeyValuePair data)
        {
            //get current value
            var val = await GetValue(data);

            return(val);
        }
        public async Task <IActionResult> Post([FromBody] Lib.KeyValuePair kvp)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Please check you request body, something is not correct"));
            }
            else if (kvp.Value < 0)
            {
                return(BadRequest("Did you mean /Decrement?"));
            }
            else if (kvp.Value == 0)
            {
                return(Ok("This endpoint does not increment by 0"));
            }

            var endPoint = await _bus.GetSendEndpoint(new Uri("queue:kvpQueue"));

            try
            {
                await endPoint.Send(kvp);

                return(Ok($"Value: {kvp.Value} has been queued for key: {kvp.Key}"));
            }

            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }
        }
Esempio n. 3
0
        private async Task <Models.KeyValue> GetValue(Lib.KeyValuePair rec)
        {
            var data = await _ctx.KeyValues
                       .Where(x => x.Key == rec.Key)
                       .FirstOrDefaultAsync();

            return(data);
        }
        public async Task <IActionResult> Get(string key)
        {
            if (key == null)
            {
                return(BadRequest("you must pass a value"));
            }
            else
            {
                try
                {
                    var record = new Lib.KeyValuePair(key, 0);

                    var data = await _repo.Get(record);

                    return(Ok(data));
                }
                catch (System.Exception ex)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, ex));
                }
            }
        }
Esempio n. 5
0
        public async Task Upsert(Lib.KeyValuePair data)
        {
            //get current val
            var val = await GetValue(data);

            if (val != null)
            {
                //update
                val.Value += data.Value;
            }
            else
            {
                //insert
                var row = new Models.KeyValue()
                {
                    Key   = data.Key,
                    Value = data.Value
                };

                await _ctx.AddAsync(row);
            }

            await _ctx.SaveChangesAsync();
        }