Beispiel #1
0
        public async static Task DeleteAsync(long id)
        {
            IArquivoRepository arquivoRepository = ArquivoRepositoryFactory.Create();

            if (!(await arquivoRepository.FindWhereParentEqualsAsync(id)).Any())
            {
                IFileManager fileManager = FileManagerFactory.Create();

                await fileManager.DeleteAsync(await arquivoRepository.FindByIdAsync(id));

                await arquivoRepository.DeleteAsync(id);
            }
            else
            {
                throw new ArgumentException("Diretório não pode ser excluído pois possui dependentes");
            }
        }
Beispiel #2
0
        public async static Task <Arquivo> AddAsync(string nome, bool isDiretorio, long fkParent)
        {
            IArquivoRepository arquivoRepository = ArquivoRepositoryFactory.Create();

            if (isDiretorio)
            {
                if ((await arquivoRepository.FindWhereParentAndNameEqualsAsync(fkParent, nome)).Any())
                {
                    throw new ArgumentException("Diretório não pode ser inserido com nome repetido dentro desta pasta");
                }
            }

            // Adicionar verificação de versão para criar a referência com o versionamento correto

            Arquivo parent = await arquivoRepository.FindByIdAsync(fkParent);

            Arquivo arquivo = ArquivoFactory.Create(nome, isDiretorio, parent);

            await arquivoRepository.AddAsync(arquivo);

            return(arquivo);
        }