示例#1
0
        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);
        }
示例#2
0
        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)));
            }
        }