public virtual ActionResult Input()
        {
            try
            {
                using (var bodyStream = new StreamReader(Request.Body))
                {
                    var     bodyText = bodyStream.ReadToEndAsync().GetAwaiter().GetResult();
                    dynamic json     = JsonConvert.DeserializeObject(bodyText);
                    var     action   = CodecFactory.GetCodecAction((string)json.Action);
                    // if action not found
                    if (action == null)
                    {
                        return(Json(ReturnResult <string> .Fail("Action not found")));
                    }

                    //TODO: add parameters
                    var tile = Tile.FromStrings(new Triplet <string>(
                                                    json.Inputs.X, json.Inputs.Y, json.Inputs.Z),
                                                new IntegerTileSerializer());

                    var result = action.DoAction(tile);
                    return(Json(result.GetStrings(TileSerializerFactory.GetDefaultSerizlizer())));
                }
            }
            catch (Exception ex)
            {
                return(Json(ReturnResult <string> .Fail(ex.Message)));
            }
        }
Example #2
0
        public virtual ActionResult Input()
        {
            dynamic json = GetJsonObject(Request.InputStream);

            var action = CodecFactory.GetCodecAction((string)json.Action);

            // if action not found
            if (action == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.NotFound));
            }

            //TODO: add parameters

            var tile = Tile.FromStrings(new Triplet <string>(
                                            json.Inputs.X, json.Inputs.Y, json.Inputs.Z),
                                        new IntegerTileSerializer());

            var result = action.DoAction(tile);

            return(Json(result.GetStrings(TileSerializerFactory.GetDefaultSerizlizer())));
        }