private async Task <string> RunExperiment(ApplicationVersionModel applicationVersion, FoldModel fold, int index)
        {
            var versionId = Guid.NewGuid().ToString().Substring(0, 5) + index;

            try
            {
                Console.WriteLine($"Uploading Version: {index}");

                await ImportFoldVersion(applicationVersion, fold, versionId);

                ColoredConsole.WriteLine($"Success Uploading Version: {index}", ConsoleColor.Green);

                Console.WriteLine($"Training Version: {index}");

                await _luisClient.TrainVersion(_applicationId, versionId);

                await this.WaitForTraining(versionId);

                ColoredConsole.WriteLine($"Success Training Version: {versionId}", ConsoleColor.Green);

                var testId = (await _luisClient.CreateTestDataSet(_applicationId, versionId, fold.TestSet.ToArray())).DeserializeObject <string>();

                return(await _luisClient.RunDataSetTest(_applicationId, versionId, testId));
            }
            catch (Exception e)
            {
                ColoredConsole.WriteLine(e.Message, ConsoleColor.Red);
                throw;
            }
        }
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            EncryptDecrypt enc = new EncryptDecrypt();

            if (Request.Cookies["AppModel" + cons.cModuleID] != null)
            {
                apps = JsonConvert.DeserializeObject <ApplicationVersionModel>(Request.Cookies["AppModel" + cons.cModuleID].Value);

                connString          = enc.Decrypt(ConfigurationManager.ConnectionStrings["SghDbContextConnString"].ConnectionString, true);
                SqlConnectionString = connString + ";Application Name=WebUtilities";
                SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(SqlConnectionString);

                string IPAddress = builder.DataSource;
                ViewBag.VersionID          = apps.MajorVersion + "." + apps.MinorVersion;
                ViewBag.Title              = apps.ModuleName;
                ViewBag.BranchCode         = apps.ModuleName;
                ViewBag.DateDeployed       = apps.DateDeployed;
                ViewBag.BranchName         = apps.Name;
                ViewBag.Address            = apps.Address;
                ViewBag.PhoneNo            = apps.PhoneNo;
                ViewBag.FaxNo              = apps.FaxNo;
                ViewBag.IssueAuthorityCode = apps.IssueAuthorityCode;
                ViewBag.Developer          = apps.Developer;
                ViewBag.ConServer          = "HIS"; // TBA
                ViewBag.LocalIPAddress     = LocalIPAddress();
                ViewBag.CopyRight          = apps.CopyRight;
            }

            base.OnActionExecuting(filterContext);
            _setLogInfo();
        }
        private async Task <string> ImportFoldVersion(ApplicationVersionModel applicationVersion, FoldModel fold, string versionName)
        {
            var foldVersion = applicationVersion.DeepClone();

            foldVersion.Utterances = fold.TrainingSet.ToArray();
            foldVersion.Intents    = foldVersion.Intents.Where(x => foldVersion.Utterances.Any(y => y.Intent == x.Name)).ToArray();
            var response = await _luisClient.ImportVersion(_applicationId, versionName, foldVersion);

            return(response);
        }
예제 #4
0
        public PartialViewResult GetMenu()
        {
            ApplicationVersionModel apps = new ApplicationVersionModel();
            ApplicationGlobal       glob = new ApplicationGlobal();
            ConstantModel           cons = new ConstantModel();

            glob.UserID = this.OperatorId.ToString();
            List <ApplicationMenuModel> menu = glob.GetApplicationMenu();

            return(PartialView("_Menu", menu));
        }
예제 #5
0
        public ActionResult Index()
        {
            ApplicationVersionModel apps = new ApplicationVersionModel();
            ApplicationGlobal       glob = new ApplicationGlobal();
            ConstantModel           cons = new ConstantModel();

            glob.UserID = this.OperatorId.ToString();
            List <ApplicationMenuModel> menu = glob.GetApplicationMenu();

            return(View(menu));
            // return View();
        }
        public async Task <List <TestResultModel[]> > RunExperiment(string applicationId, string versionId, bool stratified, int numberOfFolds = 5)
        {
            try
            {
                Console.Write($"Downloading Application Version: ");

                _applicationVersion = (await _luisClient.ExportVersion(applicationId, versionId)).DeserializeObject <ApplicationVersionModel>();

                ColoredConsole.WriteLine("Success", ConsoleColor.Green);

                Console.Write($"Creating Experiment Application: ");

                _applicationId = await this.CreateApplication(_applicationVersion.Name, _applicationVersion.Culture);

                ColoredConsole.WriteLine("Success", ConsoleColor.Green);

                FoldFactory foldFactory = stratified ? new FoldFactoryStratified() as FoldFactory : new FoldFactoryCluster() as FoldFactory;

                var folds = foldFactory.SeparateFolds(_applicationVersion.Utterances, numberOfFolds);

                var tasks = new List <Task <string> >();
                var index = 1;
                foreach (var fold in folds)
                {
                    tasks.Add(Task.Run(async() => await RunExperiment(_applicationVersion, fold, index++)));
                    Thread.Sleep(1000);
                }

                Task.WaitAll(tasks.ToArray());

                return(tasks.Select(x => x.Result.DeserializeObject <TestResultModel[]>()).ToList());
            }
            catch (Exception e)
            {
                ColoredConsole.WriteLine(e.Message, ConsoleColor.Red);
                throw;
            }
            finally
            {
                if (!string.IsNullOrEmpty(_applicationId))
                {
                    Console.Write($"Deleting Experiment Application: ");

                    await this._luisClient.DeleteApplication(_applicationId);

                    ColoredConsole.WriteLine("Success", ConsoleColor.Green);
                }
                this._luisClient.Dispose();
            }
        }
 public void GetApplicationMenu()
 {
     if (Request.Cookies["MenuModel"] == null)
     {
         ApplicationGlobal       app   = new ApplicationGlobal();
         ApplicationVersionModel model = app.GetApplicationDetail();
         ControllerContext.StoreModelToCookies("MenuModel", model);
     }
     else
     {
         var d = JsonConvert.DeserializeObject <ApplicationVersionModel>(Request.Cookies["AppModel"].Value);
         _version = d.MajorVersion + "." + d.MinorVersion;
     }
 }