示例#1
0
        public async Task <IHttpActionResult> Import()
        {
            if (!Request.Content.IsMimeMultipartContent())
            {
                return(BadRequest("You are supposed to upload a file."));
            }

            var uploadFolder = HostingEnvironment.MapPath($"~/App_Data/Uploads/{System.Guid.NewGuid()}");

            Directory.CreateDirectory(uploadFolder);
            var streamProvider = new MultipartFormDataStreamProvider(uploadFolder);
            var result         = await Request.Content.ReadAsMultipartAsync(streamProvider);

            var states = result
                         .FileData
                         .Select(fd => _templateParser.FromFile(fd.LocalFileName)) // get Product instances
                         .Select(prod => new State(prod));                         // get State instances

            var stateIds = new List <string>();

            foreach (var state in states)
            {
                var stateId = System.Guid.NewGuid().ToString();
                SerializeState(state, stateId);
                stateIds.Add(stateId);
            }
            await Task.Run(() => Directory.Delete(uploadFolder, true));

            return(Ok(stateIds));
        }