public async Task <IHttpActionResult> PostUploadExcellFiles() { if (!Request.Content.IsMimeMultipartContent()) { return(BadRequest()); } var provider = new MultipartMemoryStreamProvider(); string path = null; Tuple <byte[], HttpContent> fileArrayAndFileHttpContent = await GetFileArrayAndFileHttpContentFromProvider(provider); var filename = GetFilename(fileArrayAndFileHttpContent.Item2); filename += Guid.NewGuid() + ".xlsx"; path = Path.Combine(HttpContext.Current.Server.MapPath("~" + ConfigurationSettingsModule.GetItem("Temp")), filename); if (!Directory.Exists(HttpContext.Current.Server.MapPath("~" + ConfigurationSettingsModule.GetItem("Temp")))) { Directory.CreateDirectory( HttpContext.Current.Server.MapPath("~" + ConfigurationSettingsModule.GetItem("Temp"))); } using (FileStream fs = new FileStream(path, FileMode.Create)) { fs.Write(fileArrayAndFileHttpContent.Item1, 0, fileArrayAndFileHttpContent.Item1.Length); } try { ExcellParser excellParser = new ExcellParser(path); var veteranMappings = excellParser.GetVeterans(); foreach (var veteranMapping in veteranMappings) { var veteranBindingModel = Mapper.Map <VeteranMapping, VeteranBindingModel>(veteranMapping); var listParsedUrls = UrlParser.Parse(veteranMapping.UrlImages); veteranBindingModel.Images = UrlParser.DownloadFromUrls(listParsedUrls); var veteran = Mapper.Map <VeteranBindingModel, Veteran>(veteranBindingModel); veteran.User = _userService.GetById(User.Identity.GetUserId()); var googleMapsService = new GoogleMapsService(string.Empty); var latLng = googleMapsService.GetLatLng(veteran.BirthPlace); veteran.Latitude = latLng.Latitude; veteran.Longitude = latLng.Longitude; _veteranService.Add(veteran); } } catch (Exception exception) { var resp = new HttpResponseMessage(HttpStatusCode.InternalServerError) { Content = new StringContent("Problems with parsing the file"), ReasonPhrase = "File Not Parsed" }; _logger.Error(exception); throw new HttpResponseException(resp); } finally { if (File.Exists(path)) { File.Delete(path); } } return(Ok()); }