Пример #1
0
        /// <summary>
        /// 卸载脚本
        /// </summary>
        /// <param name="appName">应用名</param>
        /// <param name="waitTime">等待时长,单位:毫秒</param>
        /// <returns>卸载脚本</returns>
        public void Unload(string appName, int waitTime = 2000)
        {
            IEngine eng = null;

            if (appName.EndsWith(".js"))
            {
                eng = new LUA();
            }
            else if (appName.EndsWith(".js"))
            {
                eng = new JS();
            }
            else if (appName.EndsWith(".cs"))
            {
                eng = new CS();
            }
            else if (appName.EndsWith(".lua"))
            {
                eng = new LUA();
            }
            else if (appName.EndsWith(".vbs"))
            {
                eng = new VBS();
            }
            else
            {
                Ex = "错误的脚本类型!";
                return;
            }
            eng.Unload(appName, waitTime);
            Ex = eng.GetEx();
        }
Пример #2
0
        /// <summary>
        /// 引擎获取
        /// </summary>
        /// <param name="appName">应用名</param>
        /// <returns>返回引擎</returns>
        public dynamic Get(string appName)
        {
            IEngine eng = null;

            if (appName.EndsWith(".js"))
            {
                eng = new LUA();
            }
            else if (appName.EndsWith(".js"))
            {
                eng = new JS();
            }
            else if (appName.EndsWith(".cs"))
            {
                eng = new CS();
            }
            else if (appName.EndsWith(".lua"))
            {
                eng = new LUA();
            }
            else if (appName.EndsWith(".vbs"))
            {
                eng = new VBS();
            }
            else
            {
                Ex = "错误的脚本类型!";
                return(null);
            }
            var dyn = eng.Get(appName);

            Ex = eng.GetEx();
            return(dyn);
        }
Пример #3
0
        /// <summary>
        /// 执行脚本
        /// </summary>
        /// <param name="appName">应用名</param>
        /// <param name="fun">函数名</param>
        /// <param name="param1">参数1</param>
        /// <param name="param2">参数2</param>
        /// <param name="param3">参数3</param>
        /// <returns>返回执行结果</returns>
        public object Run(string appName, object fun, object param1 = null, object param2 = null, object param3 = null)
        {
            IEngine eng = null;

            if (appName.EndsWith(".js"))
            {
                eng = new LUA();
            }
            else if (appName.EndsWith(".js"))
            {
                eng = new JS();
            }
            else if (appName.EndsWith(".cs"))
            {
                eng = new CS();
            }
            else if (appName.EndsWith(".lua"))
            {
                eng = new LUA();
            }
            else if (appName.EndsWith(".vbs"))
            {
                eng = new VBS();
            }
            else
            {
                Ex = "不支持的脚本类型!";
                return(null);
            }
            var ret = eng.Run(appName, fun, param1, param2, param3);

            Ex = eng.GetEx();
            return(ret);
        }
Пример #4
0
        public void SimpleExpressionTest()
        {
            //Arrange
            string evalExpr = "1+1";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);

            //Assert
            Assert.AreEqual("2", result, "Simple Expression Test");
        }
Пример #5
0
        public void DatePartExpressionTest_Year()
        {
            //Arrange
            string evalExpr = "DatePart(\"yyyy\", Now)";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);
            string year   = DateTime.Now.Year.ToString();

            //Assert
            Assert.AreEqual(year, result, "DatePart Expression Test");
        }
Пример #6
0
        public void MinuteExpressionTest()
        {
            //Arrange
            string evalExpr = "Minute(Now)";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);
            string minute = DateTime.Now.Minute.ToString();

            //Assert
            Assert.AreEqual(minute, result, "Minute Expression Test");
        }
Пример #7
0
        public void HourExpressionTest()
        {
            //Arrange
            string evalExpr = "Hour(Now)";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);
            string hour   = DateTime.Now.Hour.ToString();

            //Assert
            Assert.AreEqual(hour, result, "Hour Expression Test");
        }
Пример #8
0
        public void YearExpressionTest()
        {
            //Arrange
            string evalExpr = "Year(Now)";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);
            string year   = DateTime.Now.Year.ToString();

            //Assert
            Assert.AreEqual(year, result, "Year Expression Test");
        }
Пример #9
0
        public void InStrExpressionTest_FindStringPos()
        {
            //Arrange
            string evalExpr       = "InStr(\"This is a beautiful day!\",\"beautiful\")";
            string expectedResult = "11";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);

            //Assert
            Assert.AreEqual(expectedResult, result, "InStr Expression Test");
        }
Пример #10
0
        public void MonthExpressionTest()
        {
            //Arrange
            string evalExpr = "Month(Now)";

            //Act
            string result   = VBS.ExecuteVBSEval(evalExpr);
            string monthNum = DateTime.Now.Month.ToString();

            //Assert
            Assert.AreEqual(monthNum, result, "Month Expression Test");
        }
Пример #11
0
        public void MidExpressionTest_StartPointAndEndPoint()
        {
            //Arrange
            string evalExpr       = "Mid(\"MyTeslaTest\",3,5)";
            string expectedResult = "Tesla";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);

            //Assert
            Assert.AreEqual(expectedResult, result, "MID Expression Test");
        }
Пример #12
0
        public void MidExpressionTest_FullString()
        {
            //Arrange
            string evalExpr       = "Mid(\"MyTeslaTest\",1)";
            string expectedResult = "MyTeslaTest";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);

            //Assert
            Assert.AreEqual(expectedResult, result, "MID Expression Test");
        }
Пример #13
0
        public void SplitExpressionTest()
        {
            //Arrange
            string evalExpr       = "Split(\"My-TeslaTest\",\"-\")";
            string expectedResult = "My";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);

            //Assert
            Assert.AreEqual(expectedResult, result, "MID Expression Test");
        }
Пример #14
0
        public void ReplaceExpressionTest()
        {
            //Arrange
            string evalExpr       = "Replace(\"MyTeslaTest\",\"Tesla\",\"Toyota\")";
            string expectedResult = "MyToyotaTest";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);

            //Assert
            Assert.AreEqual(expectedResult, result, "Replace Expression Test");
        }
Пример #15
0
        public void InStrExpressionTest_UsingDifferentStartingPositions2()
        {
            //Arrange
            string evalExpr       = "InStr(7, \"This is a beautiful day!\",\"i\")";
            string expectedResult = "16";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);

            //Assert
            Assert.AreEqual(expectedResult, result, "InStr Expression Test");
        }
Пример #16
0
        public void RTrimExpressionTest()
        {
            //Arrange
            string evalExpr       = "RTrim(\"  Hello  \")";
            string expectedResult = "  Hello";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);

            //Assert
            Assert.AreEqual(expectedResult, result, "Trim Expression Test");
        }
Пример #17
0
        public void WeekdayExpressionTest()
        {
            //Arrange
            string evalExpr = "Weekday(Now)";

            //Act
            int result  = int.Parse(VBS.ExecuteVBSEval(evalExpr));
            int weekDay = (int)DateTime.Now.DayOfWeek + 1;

            //Assert
            Assert.AreEqual(weekDay, result, "Weekday Expression Test");
        }
Пример #18
0
        public void RightExpressionTest()
        {
            //Arrange
            string evalExpr       = "Right(\"This is a beautiful day!\",10)";
            string expectedResult = "tiful day!";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);

            //Assert
            Assert.AreEqual(expectedResult, result, "Right Expression Test");
        }
Пример #19
0
        public void SplitExpressionTest_ReturnsEmpty()
        {
            //Arrange
            string evalExpr       = "Split(\"My-Tesla-Test\",\"-\")(3)";
            string expectedResult = "";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);

            //Assert
            Assert.AreEqual(expectedResult, result, "Split Expression Test");
        }
Пример #20
0
        public void DatePartExpressionTest_Month()
        {
            //Arrange
            string evalExpr = "DatePart(\"m\", Now)";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);
            string month  = DateTime.Now.Month.ToString();

            //Assert
            Assert.AreEqual(month, result, "DatePart Expression Test");
        }
Пример #21
0
        public void NowExpressionTest()
        {
            //Arrange
            string evalExpr = "now";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);
            //12/31/2018 7:38:56 PM
            DateTime localDate = DateTime.Now;

            //Assert
            Assert.AreEqual(localDate.ToString(), result, "Simple Expression Test");
        }
Пример #22
0
        public void NowExpressionTest()
        {
            //Arrange
            string evalExpr = "now";

            //Act
            string result = VBS.ExecuteVBSEval(evalExpr);
            //12/31/2018 7:38:56 PM
            DateTime localDate = DateTime.Parse(result);

            //Assert
            Assert.IsTrue(!string.IsNullOrEmpty(result), "result not empty");
            Assert.AreEqual(localDate.ToString(), result, "Now Expression Test");
        }
Пример #23
0
        public override void Execute()
        {
            CalculateCondition(this.RunOnBusinessFlow, RunOnEnvironment, this);
            string rc = VBS.ExecuteVBSEval(ConditionCalculated.Trim());

            if (rc == "-1")
            {
                ConditionCalculated += " is True";
                this.Status          = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Passed;
            }
            else
            {
                ConditionCalculated += " is False";
                this.Status          = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed;
            }
        }
Пример #24
0
        public void IntExpressionTest()
        {
            //Arrange
            string evalExpr_1       = "Int(-6.13443)";
            string expectedResult_1 = "-7";
            string evalExpr_2       = "Int(6.83227)";
            string expectedResult_2 = "6";

            //Act
            string result_1 = VBS.ExecuteVBSEval(evalExpr_1);
            string result_2 = VBS.ExecuteVBSEval(evalExpr_2);

            //Assert
            Assert.AreEqual(expectedResult_1, result_1, "Int Expression Test");
            Assert.AreEqual(expectedResult_2, result_2, "Int Expression Test");
        }
Пример #25
0
        public void InStrRevExpressionTest_FindLetterUsingDifferentStartPos()
        {
            //Arrange
            string evalExpr        = "InStrRev(\"This is a beautiful day!\",\"T\",-1,1)";
            string expectedResult  = "15";
            string evalExpr1       = "InStrRev(\"This is a beautiful day!\",\"T\",-1,0)";
            string expectedResult1 = "1";


            //Act
            string result  = VBS.ExecuteVBSEval(evalExpr);
            string result1 = VBS.ExecuteVBSEval(evalExpr1);

            //Assert
            Assert.AreEqual(expectedResult, result, "InStrRev Expression Test");
            Assert.AreEqual(expectedResult1, result1, "InStrRev Expression Test");
        }
Пример #26
0
        public async Task <IActionResult> Create([Bind("EndDate,StartDate,ThemeName,AMStartTime,AMEndTime,AMMaxChildren,PMStartTime,PMEndTime,PMMaxChildren,FormStackAPIKey,FormStackFormId,FormStackImportPageKey")] CreateViewModel vBSCreateViewModel)
        {
            var vBS = new VBS {
                ThemeName              = vBSCreateViewModel.ThemeName,
                EndDate                = vBSCreateViewModel.EndDate,
                StartDate              = vBSCreateViewModel.StartDate,
                TenantId               = this.TenantId,
                FormStackAPIKey        = vBSCreateViewModel.FormStackAPIKey,
                FormStackFormId        = vBSCreateViewModel.FormStackFormId,
                FormStackImportPageKey = vBSCreateViewModel.FormStackImportPageKey
            };

            var amSession = new Session
            {
                Period      = Enums.SessionPeriod.AM,
                StartTime   = vBSCreateViewModel.AMStartTime,
                EndTime     = vBSCreateViewModel.AMEndTime,
                MaxChildren = vBSCreateViewModel.AMMaxChildren
            };

            var pmSession = new Session
            {
                Period      = Enums.SessionPeriod.PM,
                StartTime   = vBSCreateViewModel.PMStartTime,
                EndTime     = vBSCreateViewModel.PMEndTime,
                MaxChildren = vBSCreateViewModel.PMMaxChildren
            };

            vBS.Sessions = new List <Session>();
            vBS.Sessions.Add(amSession);
            vBS.Sessions.Add(pmSession);


            if (ModelState.IsValid)
            {
                _context.Add(vBS);
                _context.Add(amSession);
                _context.Add(pmSession);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(vBSCreateViewModel));
        }
Пример #27
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,EndDate,StartDate,ThemeName,FormStackAPIKey,FormStackFormId,FormStackImportPageKey")] VBS vBS)
        {
            if (id != vBS.Id)
            {
                return(NotFound());
            }

            var vbsContext = _context.VBS.Where(v => v.Id == vBS.Id && v.TenantId == this.TenantId).FirstOrDefault();

            //Set the tenant id based on the current user context.
            vBS.TenantId = this.TenantId;

            vbsContext.TenantId               = this.TenantId;
            vbsContext.EndDate                = vBS.EndDate;
            vbsContext.StartDate              = vBS.StartDate;
            vbsContext.ThemeName              = vBS.ThemeName;
            vbsContext.FormStackAPIKey        = vBS.FormStackAPIKey;
            vbsContext.FormStackFormId        = vBS.FormStackFormId;
            vbsContext.FormStackImportPageKey = vBS.FormStackImportPageKey;

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(vbsContext);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!VBSExists(vBS.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            return(View(vBS));
        }
Пример #28
0
        public override void Execute()
        {
            // in case of CS need to deferantionate failure reason compilation issue/ bool issue/false result and show info ontop act.exinfo
            string csharpError = "";

            CalculateCondition(this.RunOnBusinessFlow, RunOnEnvironment, this);
            string rc = String.Empty;

            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) && CalcEngineType.Equals(eCalcEngineType.VBS))
            {
                rc = VBS.ExecuteVBSEval(ConditionCalculated.Trim());
            }
            else
            {
                Boolean parsedValue;
                rc = CodeProcessor.GetEvaluteResult(ConditionCalculated.Trim(), out csharpError);
                if (Boolean.TryParse(rc.Trim(), out parsedValue))
                {
                    if (parsedValue)
                    {
                        rc = "-1";
                    }
                }
            }
            if (rc == "-1")
            {
                ConditionCalculated += " is True";
                this.Status          = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Passed;
                this.ExInfo          = ConditionCalculated;
            }
            else
            {
                ConditionCalculated += " is False";
                this.Status          = Amdocs.Ginger.CoreNET.Execution.eRunStatus.Failed;
                this.Error           = ConditionCalculated;
                if (!string.IsNullOrEmpty(csharpError))
                {
                    this.ExInfo = csharpError;
                }
            }
            return;
        }
Пример #29
0
        public async Task <IActionResult> Current(int id, [Bind("Id,EndDate,StartDate,ThemeName")] VBS vBS)
        {
            if (id != vBS.Id)
            {
                return(NotFound());
            }

            //Need to verify the requested VBS belongs to the tenant the user belongs to
            var vBSCheck = await _context.VBS.Include(v => v.Tenant).Where(vb => vb.Id == id && vb.TenantId == this.TenantId).SingleOrDefaultAsync();

            if (vBSCheck == null)
            {
                return(NotFound());
            }

            //Set the cookie to make the specified VBS the default context
            Response.Cookies.Append(Constants.CurrentVBSIdCookie, id.ToString());

            return(RedirectToAction("Index"));
        }
Пример #30
0
        public void RoundExpressionTest()
        {
            //Arrange
            string evalExpr_1       = "Round(24.13278)";
            string expectedResult_1 = "24";
            string evalExpr_2       = "Round(24.75122)";
            string expectedResult_2 = "25";
            string evalExpr_3       = "Round(24.13278,2)";
            string expectedResult_3 = "24.13";

            //Act
            string result_1 = VBS.ExecuteVBSEval(evalExpr_1);
            string result_2 = VBS.ExecuteVBSEval(evalExpr_2);
            string result_3 = VBS.ExecuteVBSEval(evalExpr_3);

            //Assert
            Assert.AreEqual(expectedResult_1, result_1, "Round Expression Test");
            Assert.AreEqual(expectedResult_2, result_2, "Round Expression Test");
            Assert.AreEqual(expectedResult_3, result_3, "Round Expression Test");
        }