private IEnumerator Get()
        {
            Type                 type         = null;
            string               code         = (string)UserData[0];
            bool                 done         = false;
            DateTime             start        = DateTime.Now;
            int                  milliseconds = 0;
            bool                 errorInCode  = false;
            List <CompilerError> errors       = new List <CompilerError>();


            try
            {
                type = RuntimeCompiler.CompileType(code, ref errorInCode, ref errors);
                TimeSpan span = DateTime.Now - start;
                milliseconds = span.Milliseconds;
                done         = true;
            }
            catch (Exception ex)
            {
                done = true;
                Debug.LogError(ex.StackTrace);
            }



            while (!done)
            {
                yield return(null);
            }

            if (errorInCode)
            {
                VRErrorManager.Instance.Show(ErrorHelper.GetErrorDescByCode(TM.Errors.ErrorCode.CompileCodeError));
            }

            if (type == null && errorInCode)
            {
                ((IRequest)this).OnResponseError($"Compile code error! {ToSingleString(errors)} ");
            }
            else
            {
                ResponseCompiler response = new ResponseCompiler {
                    CompiledType = type, Milliseconds = milliseconds
                };
                ((IRequest)this).OnResponseDone(response);
            }

            yield return(true);
        }
 protected override void Execute(List <GameEntity> entities)
 {
     foreach (var entity in entities)
     {
         var request = new RequestCompiler(entity.csCode.Value);
         LogManager.GetCurrentClassLogger().Info($"Compile started... Entity: {entity}");
         request.OnFinish += response =>
         {
             ResponseCompiler responseCompiler = (ResponseCompiler)response;
             Type             compiledType     = responseCompiler.CompiledType;
             entity.ReplaceType(compiledType);
             LogManager.GetCurrentClassLogger()
             .Info(
                 $"<Color=Green><b>Compile code successful! Time = {responseCompiler.Milliseconds} ms.</b></Color>");
         };
         request.OnError += s =>
         {
             //entity.ReplaceType(null);
         };
     }
 }