Beispiel #1
0
 string GetFilePath(File file)
 {
     using (var folderServices = new FolderServices())
     {
         return(folderServices.GetFullPath(file.IdUser, file.IdFolder) + file.Filename);
     }
 }
        public void Delete(string securityToken, string password)
        {
            try
            {
                var session = CheckSession(securityToken);
                var user    = _dao.Read(session.IdUser);
                if (user.Password != EncryptPassword(password))
                {
                    throw new FileSharingException(FileSharingException.INVALID_CREDENTIALS,
                                                   "The password is invalid");
                }

                using (var groupServices = new GroupServices())
                {
                    var groups = groupServices.GetAdministrableGroups(securityToken);
                    if (groups != null && groups.Count > 0)
                    {
                        throw new FileSharingException(FileSharingException.USER_CANNOT_BE_REMOVED,
                                                       "The user cannot be removed because he is group admin");
                    }
                }

                using (var fileService = new FileServices())
                {
                    foreach (var doc in user.Files)
                    {
                        fileService.Delete(securityToken, doc.Id);
                    }
                }

                using (var folderServices = new FolderServices())
                {
                    foreach (var folder in user.Folders)
                    {
                        folderServices.Delete(securityToken, folder.Id);
                    }
                }

                _dao.Delete(user);

                Audit(user.Id, user.Id.ToString(), typeof(User).Name, ActionDto.Delete, "User deleted: " + user);
            }
            catch (Exception e)
            {
                throw new FileSharingException(FileSharingException.ERROR_FILESHARING_SERVER, e.Message, e);
            }
        }