public ErrorSink <DuplicateGrantingError> GrantAccessToFolders(GrantAccessDTO grantAccessDTO) { ErrorSink <DuplicateGrantingError> errors = new ErrorSink <DuplicateGrantingError>(); foreach (var userEmail /*userId*/ in grantAccessDTO.Users) { GrantAccessToFoldersToUser(new GrantAccessToUserDTO { CurrUser = grantAccessDTO.CurrUser, Folders = grantAccessDTO.Folders, User = userEmail }, errors); } return(errors); }
public async Task <ActionResult> GrantAccessToFolders(GrantAccessToFoldersViewModel model) { if (ModelState.IsValid) { var grantAccessDTO = new GrantAccessDTO { CurrUser = await UserManager.FindByIdAsync(User.Identity.GetUserId()), Folders = model.SelectedDropboxFolders, Users = model.FoundAppUsers }; try { var errorSink = grantAccessService.GrantAccessToFolders(grantAccessDTO); if (errorSink.HasErrors()) { foreach (var error in errorSink.ErrorsList) { AddErrors(error.ToString()); } return(View(await ReinitializeUsersAndFolders(model))); } } catch (GrantAccessToFolderException ex) { AddErrors(ex.Message); return(View(await ReinitializeUsersAndFolders(model))); } return(RedirectToAction("SuccessfulGranting")); } else { return(View(await ReinitializeUsersAndFolders(model))); } }