コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
        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);
            }
        }