Esempio n. 1
0
        public async Task <IActionResult> AddUser(Guid id, AddUserToOrganizationViewModel viewModel)
        {
            if (!await IsOrganizationOwnerAsync(id))
            {
                return(new HttpUnauthorizedResult());
            }

            if (!ModelState.IsValid)
            {
                return(RedirectToAction("AddUser"));
            }

            var organization = await GetOrganizationForUserAsync(id);

            if (organization == null)
            {
                return(HttpBadRequest($"Invalid organization id: '{id}'."));
            }

            return(await _organizationService.AddUserAsync(id, viewModel.Email)
                   .Execute(
                       onSuccess: () =>
            {
                Notify(FlashNotificationType.Success, "User has been added to the organization.");
                return RedirectToAction("Details", new { id = organization.Id });
            },
                       onFailure: ex =>
            {
                Notify(FlashNotificationType.Error, ex.Message);
                return RedirectToAction("AddUser");
            }));
        }