public async Task <IHttpActionResult> Post() { // Check if the request contains multipart/form-data. if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } var provider = new MultipartFormDataStreamProvider(Folder); string filePath = null; try { // Read the form data. await Request.Content.ReadAsMultipartAsync(provider); var fileData = provider.FileData[0]; filePath = Path.Combine(Folder, fileData.LocalFileName); MaterialImportResults results = null; using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { var importer = new MaterialImporter(manager); results = await importer.ImportFromStream(stream); stream.Close(); } //foreach (var question in results.CreatedQuestions) // await Logger.AddInformation(" \"{0}\" был добавлен в результате импорта.", .Name); //foreach (var question in results.UpdatedQuestions) // await Logger.AddInformation(" \"{0}\" был обновлен в результате импорта.", .Name); return(Ok(new { CreatedMaterials = results.CreatedMaterials.Count, UpdatedMaterials = results.UpdatedMaterials.Count, Errors = results.Errors, })); } catch (Exception e) { return(InternalServerError(e)); } finally { if (!String.IsNullOrWhiteSpace(filePath) && File.Exists(filePath)) { File.Delete(filePath); } } }
public async Task <IHttpActionResult> Post(int orderId) { // Check if the request contains multipart/form-data. if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } var provider = new MultipartFormDataStreamProvider(Folder); string filePath = null; try { // Read the form data. await Request.Content.ReadAsMultipartAsync(provider); var fileData = provider.FileData[0]; filePath = Path.Combine(Folder, fileData.LocalFileName); var orderFolder = Path.Combine(Folder, orderId.ToString()); if (!Directory.Exists(orderFolder)) { Directory.CreateDirectory(orderFolder); } var newFilePath = Path.Combine(orderFolder, Path.GetFileName(filePath)); File.Copy(filePath, newFilePath); manager.AddEntity(new OrderFiles() { OrderId = orderId, FileName = newFilePath, }); manager.SaveChanges(); return(Ok(new { })); } catch (Exception e) { return(InternalServerError(e)); } finally { if (!String.IsNullOrWhiteSpace(filePath) && File.Exists(filePath)) { File.Delete(filePath); } } }
public async Task<IHttpActionResult> Post() { // Check if the request contains multipart/form-data. if (!Request.Content.IsMimeMultipartContent()) throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); var provider = new MultipartFormDataStreamProvider(Folder); string filePath = null; try { // Read the form data. await Request.Content.ReadAsMultipartAsync(provider); var fileData = provider.FileData[0]; filePath = Path.Combine(Folder, fileData.LocalFileName); MaterialImportResults results = null; using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) { var importer = new MaterialImporter(manager); results = await importer.ImportFromStream(stream); stream.Close(); } //foreach (var question in results.CreatedQuestions) // await Logger.AddInformation(" \"{0}\" был добавлен в результате импорта.", .Name); //foreach (var question in results.UpdatedQuestions) // await Logger.AddInformation(" \"{0}\" был обновлен в результате импорта.", .Name); return Ok(new { CreatedMaterials = results.CreatedMaterials.Count, UpdatedMaterials = results.UpdatedMaterials.Count, Errors = results.Errors, }); } catch (Exception e) { return InternalServerError(e); } finally { if (!String.IsNullOrWhiteSpace(filePath) && File.Exists(filePath)) File.Delete(filePath); } }