public async Task <HttpResponseMessage> ImportacaoFuncionarios(int codEleicao) { // Verifica se request contém multipart/form-data. if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } //Diretório App_Data, para salvar o arquivo temporariamente string root = HttpContext.Current.Server.MapPath("~/App_Data"); var provider = new MultipartFormDataStreamProvider(root); // Lê o arquivo da requisição assincronamente await Request.Content.ReadAsMultipartAsync(provider); ImportacaoOleDB imp = new ImportacaoOleDB(provider.FileData[0].LocalFileName, usuariosService.GetUsuario(User.Identity.Name)); try { imp.ExecutarImportacaoGestores(); List <InconsistenciaFuncionarioDTO> inconsistencias = imp.ExecutarImportacaoFuncionarios(codEleicao); File.Delete(provider.FileData[0].LocalFileName); //if (inconsistencias != null && inconsistencias.Count > 0) return Request.CreateResponse(HttpStatusCode.Accepted, inconsistencias); } catch (Exception e) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, e.Message)); } return(Request.CreateResponse(HttpStatusCode.OK)); }
public async Task <HttpResponseMessage> Upload() { // Check if the request contains multipart/form-data. if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } string root = HttpContext.Current.Server.MapPath("~/App_Data"); var provider = new MultipartFormDataStreamProvider(root); await Request.Content.ReadAsMultipartAsync(provider); foreach (MultipartFileData file in provider.FileData) { try { /*if (!int.TryParse(provider.FormData.Get("mes"), out int idMesRateio)) * return Request.CreateResponse(HttpStatusCode.BadRequest);*/ ImportacaoOleDB imp = new ImportacaoOleDB(file.LocalFileName, User); imp.ExecutarImportacao(); db.Importacao.Add(new Importacao { DataHora = DateTime.Now, LoginUsuario = User.Identity.Name, NomeArquivo = file.Headers.ContentDisposition.FileName.Replace("\"", ""), Arquivo = File.ReadAllBytes(file.LocalFileName) }); db.SaveChanges(); //File.Delete(file.LocalFileName); } catch (Exception e) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e.Message)); } finally { File.Delete(file.LocalFileName); } } return(Request.CreateResponse(HttpStatusCode.OK)); }