public virtual ActionResult ExportToExcelUK(string asin, MarketType market, string marketplaceId, bool useStyleImage) { LogI("ExportToExcelUK, asin=" + asin + ", market=" + market + ", marketplaceId=" + marketplaceId + ", useStyleImage=" + useStyleImage); var marketplaceManager = new MarketplaceKeeper(DbFactory, false); marketplaceManager.Init(); IMarketApi api = new MarketFactory(marketplaceManager.GetAll(), Time, LogService, DbFactory, null) .GetApi(AccessManager.Company.Id, market, marketplaceId); string filename; var output = ExcelProductUKViewModel.ExportToExcelUK(LogService, Time, AmazonCategoryService, HtmlScraper, api, Db, AccessManager.Company, asin, market, marketplaceId, useStyleImage, out filename); return(File(output.ToArray(), //The binary data of the XLS file "application/vnd.ms-excel", //MIME type of Excel files //string.Format("{0}s_{1}.xls", asin, DateTime.Now.ToString(DateHelper.DateTimeFormat)) filename)); //Suggested file name in the "Save as" dialog which will be displayed to the end user }
public void BuildMultilistingUKExcel(IList <string> usASINList) { var resultItems = new List <ExcelProductUKViewModel>(); var marketplaceManager = new MarketplaceKeeper(_dbFactory, false); marketplaceManager.Init(); IMarketApi api = new MarketFactory(marketplaceManager.GetAll(), _time, _log, _dbFactory, null) .GetApi(AccessManager.Company.Id, MarketType.Amazon, MarketplaceKeeper.AmazonUkMarketplaceId); var htmlScraper = new HtmlScraperService(_log, _time, _dbFactory); var filename = String.Empty; using (var db = _dbFactory.GetRWDb()) { foreach (var asin in usASINList) { var newItems = ExcelProductUKViewModel.GetItemsFor(_log, _time, _categoryService, htmlScraper, api, db, _company, asin, MarketType.Amazon, MarketplaceKeeper.AmazonComMarketplaceId, UseStyleImageModes.Auto, out filename); var resultList = new List <ExcelProductUKViewModel>(); foreach (var newItem in newItems) { if (newItem.StyleItemId.HasValue) { var styleItem = db.StyleItemCaches.GetForStyleItemId(newItem.StyleItemId.Value).FirstOrDefault(); if (styleItem != null && styleItem.RemainingQuantity > 0) { resultList.Add(newItem); } } else { //Parent record w/o StyleItemId resultList.Add(newItem); } } resultItems.AddRange(resultList); } } var templateFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files/Templates/Flat.File.Clothing.OneSheet.UK.xls"); var stream = ExcelHelper.ExportIntoFile(templateFile, "Template", resultItems); var outputFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, String.Format("UKListings_{0}.xls", _time.GetAppNowTime().ToString("MM_dd_yyyy_hh_mm_ss"))); stream.Seek(0, SeekOrigin.Begin); using (FileStream file = new FileStream(outputFile, FileMode.Create, System.IO.FileAccess.Write)) { byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, (int)stream.Length); file.Write(bytes, 0, bytes.Length); stream.Close(); } }