@@ -261,6 +261,7 @@ Use the Gantt HtmlHelper {% if site.core %}or TagHelper{% endif %} to add the co
261261
262262In the ` Home ` controller, declare the CRUD actions. Use the names of the actions you set in the DataSource and the ` DependenciesDataSource ` configurations in the previous step.
263263
264+ {% if site.mvc %}
264265``` Controller
265266public ActionResult Index()
266267{
@@ -498,6 +499,244 @@ public virtual JsonResult DestroyDependency([DataSourceRequest] DataSourceReques
498499 return Json(new[] { task }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
499500}
500501```
502+ {% else %}
503+ ``` Controller
504+ public ActionResult Index()
505+ {
506+ ViewBag.Message = "Welcome to ASP.NET Core!";
507+
508+ return View();
509+ }
510+
511+ public virtual JsonResult ReadTasks([DataSourceRequest] DataSourceRequest request)
512+ {
513+ return Json(GetAllTasks().ToDataSourceResult(request));
514+ }
515+
516+ public virtual JsonResult DestroyTask([DataSourceRequest] DataSourceRequest request, TaskViewModel task)
517+ {
518+ if (ModelState.IsValid)
519+ {
520+ var newTasks = GetAllTasks().Where(t => t.TaskID != task.TaskID);
521+ HttpContext.Session.SetObjectAsJson("tasks", newTasks);
522+ }
523+
524+ return Json(new[] { task }.ToDataSourceResult(request, ModelState));
525+ }
526+
527+ public virtual JsonResult CreateTask([DataSourceRequest] DataSourceRequest request, TaskViewModel task)
528+ {
529+ if (ModelState.IsValid)
530+ {
531+ task.TaskID = GetAllTasks().Last().TaskID + 1;
532+ var newTasks = GetAllTasks().ToList();
533+ newTasks.Add(task);
534+ HttpContext.Session.SetObjectAsJson("tasks", newTasks);
535+ }
536+
537+ return Json(new[] { task }.ToDataSourceResult(request, ModelState));
538+ }
539+
540+ public virtual JsonResult UpdateTask([DataSourceRequest] DataSourceRequest request, TaskViewModel task)
541+ {
542+ if (ModelState.IsValid)
543+ {
544+ var newTasks = GetAllTasks().Where(t => t.TaskID != task.TaskID).ToList();
545+ newTasks.Add(task);
546+ HttpContext.Session.SetObjectAsJson("tasks", newTasks);
547+ }
548+
549+ return Json(new[] { task }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
550+ }
551+
552+ private IEnumerable<TaskViewModel> GetAllTasks()
553+ {
554+ List<TaskViewModel> ganttTasks = new List<TaskViewModel>
555+ {
556+ new TaskViewModel
557+ {
558+ TaskID = 7,
559+ Title = "Software validation, research and implementation",
560+ ParentID = null,
561+ OrderId = 0,
562+ Start = new DateTime(2020, 6, 1, 3, 0, 0),
563+ End = new DateTime(2020, 6, 18, 3, 0, 0),
564+ PlannedStart = new DateTime(2020, 6, 1, 3, 0, 0),
565+ PlannedEnd = new DateTime(2020, 6, 12, 3, 0, 0),
566+ PercentComplete = 0.43M,
567+ Summary = true,
568+ Expanded = true
569+ },
570+
571+ new TaskViewModel
572+ {
573+ TaskID = 18,
574+ Title = "Project Kickoff",
575+ ParentID = 7,
576+ OrderId = 0,
577+ Start = new DateTime(2020, 6, 1, 3, 0, 0),
578+ End = new DateTime(2020, 6, 1, 3, 0, 0),
579+ PlannedStart = new DateTime(2020, 6, 1, 3, 0, 0),
580+ PlannedEnd = new DateTime(2020, 6, 1, 3, 0, 0),
581+ PercentComplete = 0.23M,
582+ Summary = false,
583+ Expanded = true
584+ },
585+ new TaskViewModel
586+ {
587+ TaskID = 13,
588+ Title = "Implementation",
589+ ParentID = 7,
590+ OrderId = 1,
591+ Start = new DateTime(2020, 6, 3, 3, 0, 0),
592+ End = new DateTime(2020, 6, 17, 3, 0, 0),
593+ PlannedStart = new DateTime(2020, 6, 2, 3, 0, 0),
594+ PlannedEnd = new DateTime(2020, 6, 17, 3, 0, 0),
595+ PercentComplete = 0.77M,
596+ Summary = true,
597+ Expanded = true
598+ },
599+ new TaskViewModel
600+ {
601+ TaskID = 100,
602+ Title = "Test",
603+ ParentID = 13,
604+ OrderId = 0,
605+ Start = new DateTime(2020, 6, 4, 3, 0, 0),
606+ End = new DateTime(2020, 6, 5, 1, 0, 0),
607+ PlannedStart = new DateTime(2020, 6, 4, 3, 0, 0),
608+ PlannedEnd = new DateTime(2020, 6, 5, 1, 0, 0),
609+ PercentComplete = 0.3M,
610+ Summary = false,
611+ Expanded = true
612+ },
613+ new TaskViewModel
614+ {
615+ TaskID = 24,
616+ Title = "Prototype",
617+ ParentID = 13,
618+ OrderId = 0,
619+ Start = new DateTime(2020, 6, 3, 3, 0, 0),
620+ End = new DateTime(2020, 6, 5, 3, 0, 0),
621+ PlannedStart = new DateTime(2020, 6, 3, 3, 0, 0),
622+ PlannedEnd = new DateTime(2020, 6, 6, 3, 0, 0),
623+ PercentComplete = 0.77M,
624+ Summary = false,
625+ Expanded = true
626+ },
627+ new TaskViewModel
628+ {
629+ TaskID = 26,
630+ Title = "Architecture",
631+ ParentID = 13,
632+ OrderId = 1,
633+ Start = new DateTime(2020, 6, 5, 3, 0, 0),
634+ End = new DateTime(2020, 6, 7, 3, 0, 0),
635+ PlannedStart = new DateTime(2020, 6, 4, 3, 0, 0),
636+ PlannedEnd = new DateTime(2020, 6, 6, 3, 0, 0),
637+ PercentComplete = 0.82M,
638+ Summary = false,
639+ Expanded = true
640+ },
641+ new TaskViewModel
642+ {
643+ TaskID = 27,
644+ Title = "Data Layer",
645+ ParentID = 13,
646+ OrderId = 2,
647+ Start = new DateTime(2020, 6, 3, 3, 0, 0),
648+ End = new DateTime(2020, 6, 8, 3, 0, 0),
649+ PlannedStart = new DateTime(2020, 6, 2, 3, 0, 0),
650+ PlannedEnd = new DateTime(2020, 6, 8, 3, 0, 0),
651+ PercentComplete = 1.00M,
652+ Summary = false,
653+ Expanded = true
654+ },
655+ new TaskViewModel
656+ {
657+ TaskID = 28,
658+ Title = "Unit Tests",
659+ ParentID = 13,
660+ OrderId = 4,
661+ Start = new DateTime(2020, 6, 9, 3, 0, 0),
662+ End = new DateTime(2020, 6, 11, 3, 0, 0),
663+ PlannedStart = new DateTime(2020, 6, 8, 3, 0, 0),
664+ PlannedEnd = new DateTime(2020, 6, 10, 3, 0, 0),
665+ PercentComplete = 0.68M,
666+ Summary = false,
667+ Expanded = true
668+ },
669+ new TaskViewModel
670+ {
671+ TaskID = 29,
672+ Title = "UI and Interaction",
673+ ParentID = 13,
674+ OrderId = 5,
675+ Start = new DateTime(2020, 6, 5, 3, 0, 0),
676+ End = new DateTime(2020, 6, 9, 3, 0, 0),
677+ PlannedStart = new DateTime(2020, 6, 4, 3, 0, 0),
678+ PlannedEnd = new DateTime(2020, 6, 7, 3, 0, 0),
679+ PercentComplete = 0.60M,
680+ Summary = false,
681+ Expanded = true
682+ },
683+ };
684+
685+ HttpContext.Session.SetObjectAsJson("tasks", ganttTasks);
686+
687+ return ganttTasks;
688+ }
689+
690+ public virtual JsonResult ReadDependencies([DataSourceRequest] DataSourceRequest request)
691+ {
692+ List<DependencyViewModel> dependencies = new List<DependencyViewModel>()
693+ {
694+ new DependencyViewModel() { DependencyID = 1, PredecessorID = 24 , SuccessorID = 26, Type = DependencyType.FinishStart },
695+ new DependencyViewModel() { DependencyID = 2, PredecessorID = 26 , SuccessorID = 27, Type = DependencyType.FinishStart },
696+
697+ };
698+
699+ var result = dependencies.Select(o =>
700+ new {
701+ DependencyID = o.DependencyID,
702+ PredecessorID = o.PredecessorID,
703+ SuccessorID = o.SuccessorID,
704+ Type = (int)o.Type
705+ }).ToList();
706+ return Json(result.ToDataSourceResult(request));
707+ }
708+
709+ public virtual JsonResult CreateDependency([DataSourceRequest] DataSourceRequest request, DependencyViewModel task)
710+ {
711+ if (ModelState.IsValid)
712+ {
713+ // ...
714+ }
715+
716+ return Json(new[] { task }.ToDataSourceResult(request, ModelState));
717+ }
718+
719+ public virtual JsonResult UpdateDependency([DataSourceRequest] DataSourceRequest request, DependencyViewModel task)
720+ {
721+ if (ModelState.IsValid)
722+ {
723+ // ...
724+ }
725+
726+ return Json(new[] { task }.ToDataSourceResult(request, ModelState));
727+ }
728+
729+ public virtual JsonResult DestroyDependency([DataSourceRequest] DataSourceRequest request, DependencyViewModel task)
730+ {
731+ if (ModelState.IsValid)
732+ {
733+ // ...
734+ }
735+
736+ return Json(new[] { task }.ToDataSourceResult(request, ModelState));
737+ }
738+ ```
739+ {% endif %}
501740
502741## (Optional) Reference Existing Gantt Instances
503742
0 commit comments