示例#1
0
        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 }));
        }
示例#2
0
        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));
        }
示例#3
0
        public IActionResult Index()
        {
            var specification = new OrganizationWithPeopleSpecification();
            var viewModel     = _organizationRepository
                                .List(specification)
                                .Select(o => new OrganizationViewModel(o));

            return(View(viewModel));
        }
示例#4
0
        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));
        }