private void Run() { RSLClient rslClient = new RSLClient(serviceIdentity, "KV", ps.Verbose); Thread.Sleep(3000); Random rng = new Random(); for (int requestNum = 1; true; ++requestNum) { KVRequest request = GetRandomRequest(rng, ps); byte[] requestBytes = request.Encode(); var startTime = HiResTimer.Ticks; byte[] replyBytes = rslClient.SubmitRequest(requestBytes, ps.Verbose); var endTime = HiResTimer.Ticks; KVReply reply = KVReply.Decode(replyBytes, 0); if (ps.PrintRequestsAndReplies) { Console.WriteLine("Received reply of type {0}", reply.ReplyType); if (reply is KVGetFoundReply gfr) { Console.WriteLine("Value obtained for get was {0}", gfr.Val); } } Console.WriteLine("#req {0} {1} {2}", id, requestNum, HiResTimer.TicksToMilliseconds(endTime - startTime)); } }
public async Task <ActionResponseResult> ResetUserPassword([FromBody] KVRequest request) { try { var user = await _userManager.FindByIdAsync(request.Key); var token = await _userManager.GeneratePasswordResetTokenAsync(user); var result = await _userManager.ResetPasswordAsync(user, token, request.Value); if (result.Succeeded) { return(new ActionResponseResult() { Code = 200, }); } string msg = result.Errors?.FirstOrDefault()?.Description; return(new ActionResponseResult() { Code = 400, Message = msg, }); } catch (Exception ex) { return(new ActionResponseResult() { Code = 500, Message = ex.Message, }); } }
private KVReply HandleRequestInternal(KVRequest req) { if (req is KVGetRequest greq) { if (greq.Key.Length > MaxKeySize) { Console.Error.WriteLine("Received get request with too-large key size {0}", greq.Key.Length); return(new KVInvalidRequestReply()); } string val; if (kvStore.TryGetValue(greq.Key, out val)) { return(new KVGetFoundReply(val)); } else { return(new KVGetUnfoundReply()); } } if (req is KVSetRequest sreq) { if (sreq.Key.Length > MaxKeySize) { Console.Error.WriteLine("Received set request with too-large key size {0}", sreq.Key.Length); return(new KVInvalidRequestReply()); } if (sreq.Val.Length > MaxValueSize) { Console.Error.WriteLine("Received set request with too-large value size {0}", sreq.Val.Length); return(new KVInvalidRequestReply()); } if (kvStore.Count == MaxNumKeys && !kvStore.ContainsKey(sreq.Key)) { Console.Error.WriteLine("Received set request with new key when KV store size was at its maximum"); return(new KVSetFailureReply()); } kvStore[sreq.Key] = sreq.Val; return(new KVSetSuccessReply()); } if (req is KVDeleteRequest dreq) { if (dreq.Key.Length > MaxKeySize) { Console.Error.WriteLine("Received delete request with too-large key size {0}", dreq.Key.Length); return(new KVInvalidRequestReply()); } if (kvStore.ContainsKey(dreq.Key)) { kvStore.Remove(dreq.Key); return(new KVDeleteFoundReply()); } return(new KVDeleteUnfoundReply()); } return(new KVInvalidRequestReply()); }
public byte[] HandleRequest(byte[] requestBytes) { KVRequest request = KVRequest.Decode(requestBytes, 0); KVReply reply = HandleRequestInternal(request); MemoryStream stream = new MemoryStream(); reply.Write(stream); return(stream.ToArray()); }