/BrainfuckNancy/BrainfuckNancy/Modules/Module.cs
https://gitlab.com/wipiano/BrainfuckNancy · C# · 51 lines · 46 code · 5 blank · 0 comment · 0 complexity · 19578f8a36c12037bff3454965d6726e MD5 · raw file
- #define DEBUG
- using System;
- using Nancy;
- using Nancy.ModelBinding;
- using BrainfuckNancy.Extensions;
- using BrainfuckNancy.Models;
- using BrainfuckCore;
- using BrainfuckCore.Exception;
- namespace BrainfuckNancy.Modules
- {
- public class Module : NancyModule
- {
- public Module()
- {
- Get["/"] = parameters => View["index"];
- Post["/exec"] = _ =>
- {
- const string success = "Success.";
- var request = this.Bind<ExecRequest>();
- var result = new ExecResult();
- try
- {
- result
- .SetOutput(
- new Interpreter(request.MemorySize)
- .Load(request.Code)
- .Execute(request.Input))
- .SetResult(success);
- }
- catch (BrainfuckException e)
- {
- result
- .SetOutput(e.ToString())
- .SetResult(e.ToShortString());
- }
- #if DEBUG
- catch (Exception e)
- {
- result.SetOutput(e.ToString());
- }
- #endif
- return Response.AsJson<ExecResult>(result);
- };
- }
- }
- }