public IActionResult Store(string key, [FromBody] StoreCacheItem item) { if (item == null) { return(this.NullValueErrorResult(key, _logger)); } if (!item.Cas.HasValue || item.Cas.Value == 0) { bool result = true; if (item.ValidFor.HasValue) { result = _memcachedClient.Store(GetMode(item), key, item.Value, item.ValidFor.Value); } else if (item.ExpireAt.HasValue) { result = _memcachedClient.Store(GetMode(item), key, item.Value, item.ExpireAt.Value); } else { result = _memcachedClient.Store(GetMode(item), key, item.Value); } if (!result) { return(StatusCode(StatusCodes.Status400BadRequest, result)); } return(StatusCode(StatusCodes.Status201Created)); } else { CasResult <bool> result = new CasResult <bool>(); if (item.ValidFor.HasValue) { result = _memcachedClient.Cas(GetMode(item), key, item.Value, item.ValidFor.Value, item.Cas.Value); } else if (item.ExpireAt.HasValue) { result = _memcachedClient.Cas(GetMode(item), key, item.Value, item.ExpireAt.Value, item.Cas.Value); } else { result = _memcachedClient.Cas(GetMode(item), key, item.Value, item.Cas.Value); } if (!result.Result) { return(StatusCode(StatusCodes.Status400BadRequest, result)); } return(StatusCode(StatusCodes.Status201Created, result)); } }
private StoreMode GetMode(StoreCacheItem item) { if (item == null || string.IsNullOrEmpty(item.Mode)) { return(StoreMode.Set); } switch (item.Mode.ToLower()) { case "add": return(StoreMode.Add); case "set": return(StoreMode.Set); case "replace": return(StoreMode.Replace); default: return(StoreMode.Set); } }