示例#1
0
        public string DownloadKarmaLegos(int[] discretizationIdList)
        {
            FileTransferrer fileTransferrer = new FileTransferrer();
            List <string>   downloadPath    = new List <string>();

            foreach (var id in discretizationIdList)
            {
                var discretization = db.KarmaLegos.Find(id);
                downloadPath.Add(discretization.DownloadPath);
            }
            return(String.Join(" ", downloadPath));
        }
示例#2
0
        public async Task <ActionResult> Edit(int?id)
        {
            string currentUserId = User.Identity.GetUserId();

            if (currentUserId == null)
            {
                return(RedirectToAction("Register", "Account"));
            }
            ApplicationUser user = db.Users.Find(currentUserId);

            if (currentUserId != null && !user.EmailConfirmed)
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Dataset dataset = datasetRepository.Get((int)id);

            if (dataset == null)
            {
                return(HttpNotFound());
            }
            FileTransferrer fileTransferrer = new FileTransferrer();

            foreach (var disc in dataset.Discretizations)
            {
                string discPath = discretizationService.getPath(datasetService.getPath(dataset.DatasetID), disc.DiscretizationID);
                discPath += "/KL.txt";
                if (System.IO.File.Exists(Server.MapPath(discPath)))

                {
                    disc.ParametersIsReady = "Ready";
                }
                else
                {
                    disc.ParametersIsReady = "In Progress";
                }
                discretizationRepository.Edit(disc);
            }
            datasetRepository.SaveChanges();
            return(View(new DiscretizationExistingViewModel()
            {
                DatasetID = (int)id,
                Discretizations = dataset.Discretizations,
                Dataset = dataset
            }));
        }
示例#3
0
        //TODO
        public string SendToDiscretization(SendDiscretizationViewModel sendDiscretizationViewModel)
        {
            string[]        methodsList           = Request.Form["Methods"].Split(',');
            var             knowledgeBasedMethods = Request.Form["KnowledgedBasedMethods"].Split(',');
            FileTransferrer fileTransferrer       = new FileTransferrer();
            Dataset         dataset       = db.Datasets.Find(sendDiscretizationViewModel.id);
            string          currentUserId = User.Identity.GetUserId();
            ApplicationUser currentUser   = db.Users.FirstOrDefault(y => y.Id == currentUserId);

            // Check that there are *not* knowledge based methods in the request
            if (methodsList[0] != "")
            {
                discretizationService.Discretize(methodsList, datasetService.getPath(dataset.DatasetID), id);
                List <Discretization> discretizations = discretizationService.CreateDiscretizations(dataset, methodsList, id, datasetService.getPath(dataset.DatasetID));
                for (int i = 0; i < discretizations.Count; i++)
                {
                    discretizations[i].Owner = currentUser;
                    discretizationRepository.Add(discretizations[i]);
                }
            }

            // Knowledge based methods with files uploaded
            if (Request.Files.Count > 0)
            {
                foreach (var knowledgeBasedMethod in knowledgeBasedMethods)
                {
                    var knowledgeBasedMethodSplit = knowledgeBasedMethod.ToString().Split('_');
                    var methodName         = knowledgeBasedMethodSplit[0];
                    var fileName           = knowledgeBasedMethodSplit[knowledgeBasedMethodSplit.Length - 1];
                    var maxGap             = knowledgeBasedMethodSplit[1];
                    var windowSize         = knowledgeBasedMethodSplit[2];
                    var statesFilyBytes    = fileTransferrer.GetBytesFromFile(Request.Files[fileName]);
                    var methodDownloadPath = fileTransferrer.ExpertDataset(dataset.Path, methodName + "/" + maxGap + "_" + windowSize, statesFilyBytes);

                    Discretization d = new Discretization()
                    {
                        Dataset           = dataset,
                        DownloadPath      = methodDownloadPath,
                        Visibility        = "",
                        Type              = "Discretized",
                        Owner             = currentUser,
                        FullName          = MethodEncodingToMethodName[methodName],
                        ParametersIsReady = "In Progress"
                    };
                    db.Discretizations.Add(d);
                }
            }
            discretizationRepository.SaveChanges();
            return("Discretizing...");
        }