Пример #1
0
        public ActionResult Save(CodeViewModel vm)
        {
            _logRepository.Insert(new Log { InputCode = vm.InputCode, IpAddress = Request.UserHostAddress });

            string id = null;

            if (!string.IsNullOrEmpty(vm.Id))
            {
                var fiddle = _fiddleRepository.Get(vm.Id);
                if (fiddle != null)
                    id = fiddle.Id;
            }
            if (id == null)
            {
                const string hashOptions = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
                var random = new Random();
                id = new string(
                    Enumerable.Repeat(hashOptions, 8)
                              .Select(s => s[random.Next(s.Length)])
                              .ToArray());
            }

            var result = CompileHelper.CompileAndRun(vm.InputCode);
            _fiddleRepository.Insert(new Fiddle { InputCode = vm.InputCode, Id = id, Result = result });

            return new JsonResult {Data = new {id, result}};
        }
Пример #2
0
        public ActionResult Index()
        {
            var code = new List<string>
            {
                "using System;",
                "",
                "public class Program",
                "{",
                "    public static void Main()",

                "    {",
                @"        Console.WriteLine(""Welcome!"");",
                "    }",
                "}"
            };

            var vm = new CodeViewModel
            {
                InputCode = string.Join(Environment.NewLine, code),
                Result = "<pre>Welcome!</pre>"
            };
            return View(vm);
        }
Пример #3
0
        public ActionResult Show(string id)
        {
            var fiddle = _fiddleRepository.Get(id);
            if (fiddle == null)
                return RedirectToAction("Index");

            var vm = new CodeViewModel
            {
                Id = fiddle.Id,
                InputCode = string.Join(Environment.NewLine, fiddle.InputCode),
                Result = fiddle.Result
            };
            return View("Index", vm);
        }
Пример #4
0
        public ActionResult Run(CodeViewModel vm)
        {
            _logRepository.Insert(new Log { InputCode = vm.InputCode, IpAddress = Request.UserHostAddress });

            return new ContentResult { Content = CompileHelper.CompileAndRun(vm.InputCode) };
        }