Ejemplo n.º 1
0
        private void WriteFiles(IFormFileCollection arquivos, int formularioId, string caminhoDiretorio)
        {
            foreach (IFormFile arquivo in arquivos)
            {
                decimal kb       = (arquivo.Length / 1024);
                Arquivo lArquivo = new Arquivo()
                {
                    Nome         = ContentDispositionHeaderValue.Parse(arquivo.ContentDisposition).FileName.ToString(),
                    Extensao     = Path.GetExtension(arquivo.FileName),
                    CaminhoSalvo = Path.Combine(caminhoDiretorio + arquivo.FileName.Trim('"')),
                    DataCadastro = DateTime.Now,
                    Tamanho      = kb,
                    Status       = (int)AppSettings.KdStatusArquivo.Ativo
                };

                this._context.Arquivo.Add(lArquivo);
                this._context.SaveChanges();

                if (formularioId > 0)
                {
                    Empresa empresa = (from e in this._context.Empresa
                                       join ef in this._context.EmpresaFormularios on e.Id equals ef.EmpresaId
                                       where ef.FormularioId == formularioId
                                       select e).FirstOrDefault();

                    decimal novoespaco = empresa.EspacoUtilizado + (((kb) / 1024) / 1024);

                    if (novoespaco > empresa.EspacoTotal)
                    {
                        throw new Exception("Espaço em disco contratado excedido");
                    }

                    empresa.EspacoUtilizado = decimal.Round(novoespaco, 2, MidpointRounding.AwayFromZero);

                    this._context.Update(empresa);

                    FormularioArquivos formularioArquivos = new FormularioArquivos()
                    {
                        FormularioId = formularioId,
                        ArquivoId    = lArquivo.Id
                    };

                    this._context.FormularioArquivos.Add(formularioArquivos);
                    this._context.SaveChanges();
                }

                using (var stream = new FileStream(lArquivo.CaminhoSalvo, FileMode.Create))
                {
                    arquivo.CopyTo(stream);
                }

                this.aArquivos.Add(lArquivo);
            }
        }
Ejemplo n.º 2
0
        private void criarRelacaoFormularioArquivo(IEnumerable <ArquivoDTO> arquivosDTO)
        {
            foreach (ArquivoDTO arquivo in arquivosDTO)
            {
                FormularioArquivos formularioArquivos = new FormularioArquivos();
                formularioArquivos.FormularioId = formularioId;
                formularioArquivos.ArquivoId    = arquivo.Id;

                this._context.FormularioArquivos.Add(formularioArquivos);
                this._context.SaveChanges();
            }
        }