示例#1
0
        protected override void OnConstruct()
        {
            base.OnConstruct();
            _logLines = new string[GetMaxLines()];
            _vm       = new ScriptVm();
            _vm.ShowLineInfo(false);
            OnRegisterFunctions(_vm);
            _onDevConsoleId = "DeveloperConsole".GetUiActionGroupId();
            _markup         = MarkupContainer.CreateMarkup(MarkupSchema);
            _markup.AttachTheme(Resources.Load <MarkupTheme> (MarkupTheme));
            _markup.CreateVisuals();
            _markup.GetCanvas().sortingOrder = short.MaxValue;
            _markup.gameObject.SetActive(false);

            _logScroll                  = _markup.GetNamedNode(MarkupScrollViewName).GetComponent <ScrollRect> ().content;
            _logScroll.pivot            = new Vector2(0.5f, 0f);
            _logText                    = _markup.GetNamedNode(MarkupLogTextName).GetComponent <Text> ();
            _logText.horizontalOverflow = HorizontalWrapMode.Overflow;
            _logText.verticalOverflow   = VerticalWrapMode.Overflow;

            var inputTr = _markup.GetNamedNode(MarkupInputName);
            var offset  = inputTr.offsetMax;

            offset.x          = -CloseButtonWidth;
            inputTr.offsetMax = offset;
            _inputField       = inputTr.GetComponent <InputField> ();

            Singleton.Get <UnityEventBus> ().Subscribe <UiInputEndActionData> (OnInputEnd);
            Singleton.Get <UnityEventBus> ().Subscribe <UiClickActionData> (OnClose);
        }
示例#2
0
        protected override void OnAttachHostFunctions(ScriptVm vm)
        {
            base.OnAttachHostFunctions(vm);

            // Registering our custom methods for access from scripts.
            vm.RegisterHostFunction("test_sqrt", OnSqrt);
            vm.RegisterHostFunction("test_echo", OnTest);
        }
示例#3
0
        ScriptVar OnSqrt(ScriptVm vm)
        {
            var count = vm.GetParamsCount();
            var v     = vm.GetParamById(0);

            if (count < 1 || !v.IsNumber)
            {
                vm.SetRuntimeError("(nValue) parameter required");
                return(new ScriptVar());
            }
            return(new ScriptVar(Mathf.Sqrt(v.AsNumber)));
        }
示例#4
0
        ScriptVar OnTest(ScriptVm vm)
        {
            var count = vm.GetParamsCount();

            if (count != 1)
            {
                vm.SetRuntimeError("test_echo function requires only one parameter");
                return(new ScriptVar());
            }
            var v = vm.GetParamById(0);

            Debug.Log("OnTest callback called with parameter: " + v.AsString);
            return(v);
        }
示例#5
0
        public async Task <IActionResult> Save(int id, [FromBody] ScriptVm scriptVm)
        {
            Script script = await _db.Scripts.SingleOrDefaultAsync(s => s.Id == id);

            if (script == null)
            {
                return(NotFound());
            }
            if (script.UserId != _userManager.GetUserId(User))
            {
                return(Forbid());
            }
            script.Text       = scriptVm.Text;
            script.ModifiedOn = DateTime.Now;
            script.VerifiedOn = null;
            await _db.SaveChangesAsync();

            return(Json(_mapper.Map <Script, ScriptVm>(script)));
        }
示例#6
0
        public async Task <IActionResult> Create([FromBody] ScriptVm scriptVm)
        {
            GameData.Assignment assignment = _gameData.Threads.SingleOrDefault(t => t.AssignmentId == scriptVm.AssignmentId)?.Assignment;
            if (assignment == null)
            {
                return(NotFound());
            }
            Script script = new Script {
                UserId       = _userManager.GetUserId(User),
                AssignmentId = assignment.Id,
                ModifiedOn   = DateTime.Now,
                Name         = scriptVm.Name,
                Text         = assignment.Template
            };
            await _db.Scripts.AddAsync(script);

            await _db.SaveChangesAsync();

            return(Json(_mapper.Map <Script, ScriptVm>(script)));
        }
        public IActionResult ScriptsGenarate(ScriptVm aa)
        {
            if (HttpContext.Session.GetString("UserRole") == "2")
            {
                var a  = _context.BusSchedules.AsNoTracking().Where(s => s.BusId == aa.BusId).Include(cp => cp.Bus).FirstOrDefault();
                var ss = _context.TicketReservations.
                         Include(s => s.Passenger).Include(ab => ab.BusSchedule).ToList();
                var paseenger = _context.Passengers.AsNoTracking().ToList();
                var Query     = from t in _context.TicketReservations.Include(x => x.BusSchedule).ThenInclude(y => y.Bus)
                                .Include(m => m.BusSchedule.Place).
                                Include(s => s.Passenger).ToList() /*/*.Include(ab => ab.BusSchedule)/*where*/
                                                                   //t.Date.Day == aa.Date.Day
                                                                   //&& t.Date.Month == aa.Date.Month
                                                                   //&& t.Date.Year == aa.Date.Year
                                where t.PassengerId > 1 &&
                                t.Date.Month == aa.Date.Month &&
                                t.Date.Year == aa.Date.Year &&
                                t.Date.Day == aa.Date.Day &&
                                t.BusSchedule.BusId == aa.BusId
                                group t by t.PassengerId into groupPassenger
                                let temp = (
                    from val in groupPassenger
                    select new
                {
                    Name = val.Passenger.Name,
                    Mobile = val.Passenger.Mobile,
                    Seat = val.SeatNumber,
                    Statring = val.BusSchedule.Place.PlaceName,
                    BusName = val.BusSchedule.Bus.CoachName,
                }
                    ) select temp;


                if (Query.Count() == 0)
                {
                    ViewBag.SMS = "No Data";
                    return(RedirectToAction("Scripts"));
                }

                var Destinaio0n = _context.Places.Where(s => s.PlaceId == a.Destination).FirstOrDefault();
                ViewBag.Destinaion = Destinaio0n.PlaceName;


                var sent = new List <ScriptVm>();


                foreach (var item in Query)
                {
                    var str = new List <string>();


                    ScriptVm scriptVm = new ScriptVm();
                    int      abc      = 1;
                    foreach (var v in item)
                    {
                        if (abc == 1)
                        {
                            scriptVm = new ScriptVm();
                        }

                        scriptVm.Name    = v.Name;
                        scriptVm.Mobile  = v.Mobile;
                        scriptVm.Route   = v.Statring;
                        scriptVm.BusName = v.BusName;

                        str.Add(v.Seat);
                        abc++;
                    }



                    scriptVm.Seat = str;
                    sent.Add(scriptVm);
                }

                return(View(sent));
            }
            else
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
示例#8
0
//----------------------------------------------------------------------------------------------------------------------


        public Parser(ScriptVm vm, Scanner scanner)
        {
            _scanner = scanner;
            Vars     = new Vars(vm);
        }
 /// <summary>
 /// Should be implemented for custom functions processing at console.
 /// For registering functions - use _vm.RegisterHostFunction() method.
 /// </summary>
 /// <param name="vm">Script engine instance.</param>
 protected abstract void OnRegisterFunctions(ScriptVm vm);