/// <summary> /// This function is used to simplify the 2 REST interfaces if changes are needed! /// </summary> /// <param name="context"></param> /// <param name="whatToDo"></param> /// <returns></returns> private IHttpContext storeInDatabase(IHttpContext context, BUYORSELL whatToDo) { string payload = context.Request.Payload.ToString(); //Liefert einen JSON String mit escaped zeichen zurück JToken token = JToken.Parse(payload); JObject json = JObject.Parse(token.ToString()); if (payload == null || payload.Equals("")) { context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.InternalServerError, "Oops, something went wrong!"); return(context); } Order orderObject = JsonConvert.DeserializeObject <Order>(json.ToString()); bool isPresent = checkIfStockExists(orderObject); if (isPresent) { //Die Order ins Orderbuch eintragen. try { var dbOrders = dbConnectionOrders._db; MainOrder mainOrder = new MainOrder(orderObject, whatToDo); var test = new BsonDocument() { { "orderID", mainOrder.receivedOrder.orderID.ToString() }, { "aktienID", mainOrder.receivedOrder.aktienID.ToString() }, { "amount", mainOrder.receivedOrder.amount }, { "limit", mainOrder.receivedOrder.limit }, { "timestamp", mainOrder.receivedOrder.timestamp }, { "hash", mainOrder.receivedOrder.hash ?? "" }, { "useCase", mainOrder.useCase }, { "statusOfOrder", mainOrder.statusOfOrder } }; dbOrders.InsertOne(test); } catch (Exception ex) { Debug.WriteLine(ex); context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.InternalServerError, "Oops, something went wrong!"); return(context); } context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.Ok, "Check again with /check"); return(context); } else { context.Response.SendResponse(Grapevine.Shared.HttpStatusCode.NotFound, "aktienID not found"); return(context); } }
} // 0 if successfull, 1 in progress, 2 denied, 3 not enough goods, 4 wrong price public MainOrder(Order orderObject, BUYORSELL buy, int status = 1) { receivedOrder = orderObject; useCase = buy; statusOfOrder = status; }