コード例 #1
0
        public ActionResult AddSelectedKnowledgesAsCurrentCompetencies(GaTask task)
        {
            string stringOfKnowledgesIds = Request["selectedIds"];
            if (!stringOfKnowledgesIds.IsEmpty())
            {
                List<Competence> competencies = new List<Competence>();
                HashSet<string> listOfKnIds = new HashSet<string>(stringOfKnowledgesIds.Split(',').ToList());
                foreach (var id in listOfKnIds)
                {
                    var kn = _dbContext.Ontology.Find(x => x.Id == ObjectId.Parse(id)).SingleOrDefaultAsync().Result;
                    if (kn != null)
                    {
                        competencies.Add(new Competence(kn.Id, BloomLevel.None));
                    }
                }

                if (task.Prerequisites == null)
                {
                    task.Prerequisites = competencies.ToArray();
                }
                else
                {
                    List<Competence> tmpList = new List<Competence>(task.Prerequisites);
                    tmpList.Concat(competencies);
                    task.Prerequisites = tmpList.ToArray();
                }
            }
            return View("NewTask", task);
        }
コード例 #2
0
        public ActionResult TaskDetails(GaTask task)
        {
            //TODO check it, if task still run and we want to save course
            if (task == null)
            {
                _logger.Trace("Course saving from task. Error: task == null");
                return RedirectToAction("MessagePage", "Home", "Task is null");
            }

            Course course = new Course(task.Title, task.AuthorEmail);
            course.Description = task.Description;

            course.ListOfLosId = new List<ObjectId>();
            foreach (var resultLO in task.ResultLearningObjects)
            {
                course.ListOfLosId.Add(resultLO.Id);
            }
            course.CreationTime = DateTime.Now;
            _dbContext.Courses.InsertOneAsync(course);

            var coursesList = _dbContext.Courses.Find(x => true).ToListAsync().Result;
            _logger.Trace("Course saving from task.");
            return View("CoursesList", coursesList);
        }
コード例 #3
0
 public ActionResult RemoveTargetCompetencyFromTask(GaTask task)
 {
     string knowledgeIdInCompetencyToDelete = Request["targetCompetencyId"];
     ObjectId idToDelete = ObjectId.Parse(knowledgeIdInCompetencyToDelete);
     task.Outcomes = task.Outcomes.Where(x => x.KnowledgeId != idToDelete).ToArray();
     _logger.Trace("Removing outcome from task.");
     return View("NewTask", task);
 }
コード例 #4
0
        public ActionResult NewTask(GaTask task)
        {
            if (ModelState.IsValid)
            {
                User currentUser = null;
                var obj = ViewData["CustomUser"];
                if (obj != null)
                {
                    currentUser = obj as User;
                }

                if (currentUser == null)
                {
                    MessageOnPage msg = new MessageOnPage("Error with user identification");
                    return RedirectToAction("MessagePage", "Home", msg);
                }

                var loList = _dbContext.LOs.Find(x => true).ToListAsync().Result;

                task.SourceLearningObjects = new LearningObject[loList.Count];
                for (int i = 0; i < loList.Count; i++)
                {
                    task.SourceLearningObjects[i] = loList[i];
                }

                task.CreatigTime = DateTime.Now;
                task.AuthorEmail = currentUser.Email;
                TaskManagerClient client = new TaskManagerClient();
                client.TaskRunAsync(task);
                _logger.Trace("Course creating task launching.");
                return RedirectToAction("UserTasks", "Home");
            }
            else
            {
                _logger.Trace("Course creating task launching. Attempt to launch. User is unregistered");
                return View(task);
            }
        }
コード例 #5
0
        public ActionResult NewTask()
        {
            User currentUser = null;
            var obj = ViewData["CustomUser"];
            if (obj != null)
            {
                currentUser = obj as User;
            }

            if (currentUser == null)
            {
                _logger.Trace("New task page request by unregistered user.");
                MessageOnPage msg = new MessageOnPage("Error with user identification");
                return RedirectToAction("MessagePage", "Home", msg);
            }

            GaTask task = new GaTask()
            {
                Title = "Default task",
                Description = "Default task description",
                AuthorEmail = currentUser.Email,
                BestFfValues = new Dictionary<int, double>(),
                AverageFFvalues = new Dictionary<int, double>(),
                WorstFfValues = new Dictionary<int, double>(),
                DesiredDuration = 0,
                GaConfigs = new GAConfigs()
                {
                    GAIterationsNumber = 100,
                    CrossoverProbability = 60,
                    MutationProbability = 5,
                    ElitismPercentage = 30,
                    PopulationSize = 50,
                    MutationPeriod = 0
                }
            };
            _logger.Trace("New task page request by: " + currentUser.Email);
            return View(task);
        }
コード例 #6
0
        public ActionResult MoveUpLOInTask(GaTask task)
        {
            //TODO some problems in this method
            string stringOfLoId = Request["loidtoPickUp"];
            ObjectId id;
            ObjectId.TryParse(stringOfLoId, out id);

            int index = -1;
            for (int i = 0; i < task.ResultLearningObjects.Length; i++)
            {
                if (task.ResultLearningObjects[i].Id != id) continue;
                index = i;
                break;
            }

            if (index > 0)
            {
                List<LearningObject> tmpLosList = task.ResultLearningObjects.ToList();
                var tmpLo = tmpLosList[index - 1];
                tmpLosList[index - 1] = tmpLosList[index];
                tmpLosList[index] = tmpLo;
                task.ResultLearningObjects = tmpLosList.ToArray();
            }

            _logger.Trace("LO moved up in task LOs list.");
            return View("TaskDetails", task);
        }
コード例 #7
0
        public ActionResult RemoveCurrentCompetencyFromTask(GaTask task)
        {
            string knowledgeIdInCompetencyToDelete = Request["currentCompetencyId"];
            ObjectId idToDelete = ObjectId.Parse(knowledgeIdInCompetencyToDelete);
            task.Prerequisites = task.Prerequisites.Where(x => x.KnowledgeId != idToDelete).ToArray();

            return View("NewTask", task);
        }
コード例 #8
0
 public ActionResult CourseCompiler(GaTask gaTask)
 {
     if (ModelState.IsValid)
     {
         var client = new TaskManagerClient();
         client.TaskRun(gaTask);
         return View("UserTasks");
     }
     return View(gaTask);
 }
コード例 #9
0
 public ActionResult CourseCompiler()
 {
     GaTask gaTask = new GaTask();
     return View(gaTask);
 }