public ActionResult Edit(string id)
        {
            var person = DbContext.People.ProjectTo <PersonModel>(Mapper).First(u => u.Id == id);

            var viewModel = new PersonEditViewModel()
            {
                Person = person,
            };

            return(View(viewModel));
        }
        public async Task <ActionResult> Edit(string id, PersonEditViewModel model, List <string> selectedRoles)
        {
            selectedRoles = selectedRoles ?? new List <string>();

            if (ModelState.IsValid)
            {
                var command = new AddOrEditPersonCommand(model.Person, ModelState);

                var commandResult = await Mediator.SendAsync(command);

                if (commandResult.IsSuccess)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.Accepted));
                }
            }

            return(View(model));
        }