示例#1
0
        public string VisualizePatterns()
        {
            var karmaLegoIdChosen = Request.Form["Id"];
            // add merge option
            var klClassChosen = Request.Form["Class"];

            KarmaLego kl      = db.KarmaLegos.Find(Int32.Parse(karmaLegoIdChosen));
            Dataset   dataset = db.Datasets.Find(kl.Discretization.DatasetID);

            Discretistation.FileHandler fh = new Discretistation.FileHandler();

            Session["correntPathToIndex"] = kl.DownloadPath + "/KARMALEGOV/" + klClassChosen;
            Session["dataset"]            = dataset;
            Session["discConfig"]         = kl.Discretization.DownloadPath;


            return("");
        }
示例#2
0
        public string DiscoverPatterns()
        {
            var karmaLegoConfigs = Request.Form["Configs"].Split(',');

            //  List<int> discretizatonsIds = new List<int>();
            //  List<int> currentDiscretizationIds = new List<int>();
            foreach (var klc in karmaLegoConfigs)
            {
                var configs  = klc.Split('_');
                var configId = configs[0];
                //  currentDiscretizationIds.Add(Int32.Parse(configId));
            }
            // var configsToSendList = new List<string>();
            if (karmaLegoConfigs[0] != "")
            {
                foreach (var config in karmaLegoConfigs)
                {
                    var            configs      = config.Split('_');
                    var            configId     = configs[0];
                    var            fold         = configs[configs.Length - 1];
                    var            configParams = configs.Skip(1).Take(configs.Length - 2).Select(x => x).ToArray();
                    Discretization d            = db.Discretizations.Find(Int32.Parse(configId));
                    id = klRepository.GetNextId();
                    var path          = discretizationService.getPath(datasetService.getPath(d.DatasetID), d.DiscretizationID);
                    var inputPath     = Server.MapPath(path);
                    var karmaLegoPath = inputPath + @"\KARMALEGO\" + id.ToString();
                    inputPath += @"\KL.txt";

                    //if(fold == "1")
                    //{
                    //     karmaLegoPath = d.DownloadPath + "/KARMALEGO/" + String.Join("_", configParams);

                    //}
                    //configsToSendList.Add(karmaLegoPath);
                    string          currentUserId = User.Identity.GetUserId();
                    ApplicationUser currentUser   = db.Users.FirstOrDefault(y => y.Id == currentUserId);
                    if (!Int32.TryParse(configParams[0], out int tempInt))
                    {
                        return("Epslion value is not ok");
                    }
                    else
                    {
                        if (tempInt < 0)
                        {
                            return("Epslion value is not ok");
                        }
                    }
                    if (!Int32.TryParse(configParams[0], out tempInt))
                    {
                        return("Maximum gap value is not ok");
                    }
                    else
                    {
                        if (tempInt < 0)
                        {
                            return("Maximum gap value is not ok");
                        }
                    }
                    if (!Double.TryParse(configParams[2], out double tempDouble))
                    {
                        return("Vertical support value is not ok");
                    }
                    else
                    {
                        if (tempDouble < 0 || tempDouble > 100)
                        {
                            return("Vertical support value is not ok");
                        }
                    }
                    var epsilon            = Double.Parse(configParams[0]);
                    var maxGap             = Int32.Parse(configParams[1]);
                    var minVerticalSupport = Double.Parse(configParams[2]) / 100;
                    karmaLegoService.sendToKL(inputPath, karmaLegoPath, epsilon, minVerticalSupport, maxGap);
                    KarmaLego kl = new KarmaLego()
                    {
                        Discretization         = d,
                        Epsilon                = epsilon,
                        DownloadPath           = karmaLegoPath,
                        IsReady                = "In Progress",
                        MaximumGap             = maxGap,
                        MinimumVerticalSupport = minVerticalSupport,
                        Owner = currentUser,
                        Fold  = Int32.Parse(fold)
                    };
                    //discretizatonsIds.Add(d.DiscretizationID);

                    db.KarmaLegos.Add(kl);
                }
                //var llll = String.Join(" ", configsToSendList);
                db.SaveChanges();
                //List<string> klIds = new List<string>();
                //foreach (var kl in db.KarmaLegos)
                //{
                //    if(discretizatonsIds.IndexOf(kl.DiscretizationID) != -1 )
                //        klIds.Add(kl.KarmaLegoID.ToString());
                //}
                return("Success");
                //return Json(new
                //{
                //    Ids = String.Join("_", klIds),
                //    Classes = "Class1,Class2_Class3,Class4",
                //    Errors = ""
                //});
            }
            return("Error");
            //return Json(new
            //{
            //    Errors = "ERRORS"

            //});
        }