예제 #1
0
 public ConsoleOutput Run(ConsoleInput input)
 {
     _logRepository.Insert(new Log { InputCode = input.Code, IpAddress = GetClientIp(Request) });
     //TODO: use Roslyn to compile and run
     var co = new Models.ConsoleOutput();
     co.Code = input.Code;
     co.Output = CompileHelper.CompileAndRun(input.Code, input.Language);
     co.Id = input.Id;
     return co;
 }
예제 #2
0
        public ConsoleOutput Save(ConsoleInput input)
        {
            _logRepository.Insert(new Log { InputCode = input.Code, IpAddress = GetClientIp(Request) });

            string id = null;

            if (!string.IsNullOrEmpty(input.Id))
            {
                var fiddle = _fiddleRepository.Get(input.Id);
                if (fiddle != null)
                    id = fiddle.Id;
            }

            var co = Run(input);

            _fiddleRepository.Insert(new Fiddle { InputCode = input.Code, Id = id, Result = co.Output, Language = input.Language });

            return co;
        }
예제 #3
0
        public void RunHelloWorld()
        {
            // Arrange
            ConsoleController controller = new ConsoleController((Repos.ILogRepository)new Mock<Repos.ILogRepository>(), (Repos.IFiddleRepository)new Mock<Repos.IFiddleRepository>());

            string helloWorldCode = OpenFiddle.Resources.CodeSamples.HelloWorldConsoleCSharp;

            ConsoleInput input= new ConsoleInput
            {
                Id = "FakeHash",
                Code = helloWorldCode,
                Language = Models.Shared.Language.CSharp
            };

            // Act
            var result = controller.Run(input);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(input.Id, result.Id);
            Assert.AreEqual(helloWorldCode, result.Code);
            Assert.AreEqual("Hello World\r\n", result.Output);
        }
예제 #4
0
 public bool Compile(ConsoleInput input)
 {
     throw new NotImplementedException();
 }