Exemplo n.º 1
0
        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();
            }
        }