public async Task <IActionResult> AddPerson(AddPersonViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var specification = new OrganizationWithPeopleSpecification(model.OrganizationId); var organization = _organizationRepository.GetBySpecification(specification); if (organization == null) { return(BadRequest()); } var authorizationResult = await _authorizationService .AuthorizeAsync(User, organization, Operations.Update); if (!authorizationResult.Succeeded) { return(Forbid()); } organization.AddPerson(model.FirstName, model.LastName, model.EmailAddress, model.PhoneNumber, model.Title, model.ReportsToPersonID); _organizationRepository.Update(organization); return(RedirectToAction(nameof(People), new { organizationId = organization.Id })); }
public async Task <IActionResult> Chart(int organizationId) { var specification = new OrganizationWithPeopleSpecification(organizationId); var organization = _organizationRepository.GetBySpecification(specification); if (organization == null) { return(NotFound()); } var authorizationResult = await _authorizationService.AuthorizeAsync(User, organization, Operations.Read); if (!authorizationResult.Succeeded) { return(Forbid()); } var people = organization.People .Select(p => new { Id = p.Id.ToString(), Name = (p.FirstName + " " + p.LastName).Trim(), p.Title, ReportsToId = p.ReportsTo?.Id.ToString() ?? "" }); var viewModel = new ChartViewModel { PeopleJson = JsonConvert.SerializeObject(people) }; return(View(viewModel)); }
public IActionResult Index() { var specification = new OrganizationWithPeopleSpecification(); var viewModel = _organizationRepository .List(specification) .Select(o => new OrganizationViewModel(o)); return(View(viewModel)); }
public async Task <IActionResult> AddPerson(int organizationId) { var specification = new OrganizationWithPeopleSpecification(organizationId); var organization = _organizationRepository.GetBySpecification(specification); if (organization == null) { return(NotFound()); } var authorizationResult = await _authorizationService.AuthorizeAsync(User, organization, Operations.Read); if (!authorizationResult.Succeeded) { return(Forbid()); } var viewModel = new AddPersonViewModel(organization); return(View(viewModel)); }