public IHttpActionResult GetReportExcellFiles([FromUri] SearchVeteranModel searchVeteranModel) { List <Veteran> searchVeterans; if (searchVeteranModel == null) { searchVeterans = _veteranService.GetAll().ToList(); } else { searchVeterans = _veteranService.SearchVeterans(searchVeteranModel).Pagination((searchVeteranModel.Page - 1) * searchVeteranModel.Size, searchVeteranModel.Size).ToList();; } var veteranMappings = Mapper.Map <IEnumerable <Veteran>, IEnumerable <VeteranMapping> >(searchVeterans); var fileName = ExcellParser.GenerateReport(veteranMappings.ToList()); var generateAbsolutePath = GenerateAbsolutePath(fileName); return(Ok(new { PathToFile = generateAbsolutePath })); }
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()); }