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); } }
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(); } }