Esempio n. 1
0
        public ActionResult Post(ProjectsViewModel.Input model)
        {
            if (!ModelState.IsValid)
                return View("View");

            var person = DbSession.GetCurrentPerson();

            var project = Project.Forge(model.Name, model.Description);
            DbSession.Store(project);
            project.Grant(string.Empty, person);
            project.Initialize(DbSession);

            var projectViewModel = project.MapTo<ProjectsViewModel.Project>();
            projectViewModel.People = new List<PersonViewModel> {person.MapTo<PersonViewModel>()};

            if (Request.IsAjaxRequest())
                return new JsonNetResult {Data = projectViewModel};

            return RedirectToRoute("projects_get");
        }
Esempio n. 2
0
        public ActionResult Put(ProjectsViewModel.Input model)
        {
            if (!ModelState.IsValid)
                return View("View");

            var project = DbSession.Load<Project>(model.Id);
            project.Name = model.Name;
            project.Description = model.Description;

            return new JsonNetResult {Data = model};
        }
Esempio n. 3
0
        public ActionResult Get(int page = 1)
        {
            RavenQueryStatistics stats;
            var projects = DbSession.Query<Project>()
                .Statistics(out stats)
                .Customize(c => c.Include<Project>(p => p.People))
                .OrderByDescending(p => p.CreatedAt)
                .ToList();

            var vm = new ProjectsViewModel
                {
                    CurrentPage = page,
                    TotalCount = stats.TotalResults,
                    Projects = new List<ProjectsViewModel.Project>()
                };

            if (projects.Count > 0)
            {
                var results = DbSession
                    .Query<ProjectEntityCount.Result, ProjectEntityCount>()
                    .Where(r => r.Project.In(projects.Select(p => p.Id)))
                    .ToList();

                foreach (var result in results)
                {
                    var project = DbSession.Load<Project>(result.Project);

                    var projectViewModel = result.MapTo<ProjectsViewModel.Project>();
                    projectViewModel.People = DbSession.Load<Person>(project.People)
                        .Where(p => p != null).MapTo<PersonViewModel>();

                    projectViewModel.Name = project.Name;
                    projectViewModel.Description = project.Description;
                    vm.Projects.Add(projectViewModel);
                }
            }
            return View("View", vm);
        }