示例#1
0
        public void ProcessImage(string imageUrlListFile, string sourceTargetUrlMappingFile)
        {
            this.WriteLog(EventType.Critical, "[Start] | [{0}]", "ProcessImage");

            string   logPath = Path.Combine(this.WorkingFolder, "prolog.txt");//ImageWorkingFile.ImageProcessLogFile);
            TraceLog log     = new TraceLog("ImageProcess", logPath);

            string imageUrlListFilePath = Path.Combine(this.WorkingFolder, imageUrlListFile);

            string imageDownloadFolder = Path.Combine(this.WorkingFolder, "Download");

            if (!Directory.Exists(imageDownloadFolder))
            {
                Directory.CreateDirectory(imageDownloadFolder);
            }

            string imageScaleFolder = Path.Combine(this.WorkingFolder, "Scale");

            if (!Directory.Exists(imageScaleFolder))
            {
                Directory.CreateDirectory(imageScaleFolder);
            }

            string imageUrlMappingFile = Path.Combine(this.WorkingFolder, sourceTargetUrlMappingFile);
            string serverFile          = CosmosStream.BuildUrlPath("https://cosmos08.osdinfra.net/cosmos/bingads.marketplace.VC2/local/RAACenter/Data/SnRAA/", sourceTargetUrlMappingFile);

            if (CosmosStream.StreamExists(serverFile))
            {
                CosmosStream.DownloadStream(serverFile, imageUrlMappingFile);
            }

            int oriImageCount = 0;

            if (File.Exists(imageUrlMappingFile))
            {
                List <string> lines = File.ReadAllLines(imageUrlMappingFile).ToList();
                oriImageCount = lines.Where(l => !string.IsNullOrEmpty(l)).Count();
            }

            bool bSuccess = ImageProcessor.ProcessImage(imageUrlListFilePath, imageDownloadFolder, imageScaleFolder, imageUrlMappingFile, serverFile, log, this.feedWriteLog);

            if (bSuccess)
            {
                this.Result = BuildResults.Image_Succeed;
                this.WriteLog(EventType.Critical, "[{0}] Image succeeded.", "Process");
            }
            else
            {
                this.Result = BuildResults.Image_ProcessImageFailed;
                this.WriteLog(EventType.Critical, "[{0}] Image failed.", "Process");
                //this.addAttachFile(ImageLibrary.ImageWorkingFile.ImageProcessLogFile);
                //this.WriteLog(EventType.Error, "Please refer the image log [{0}] for more details", ImageLibrary.ImageWorkingFile.ImageProcessLogFile);
            }

            int newImageCount = 0;

            if (File.Exists(imageUrlMappingFile))
            {
                List <string> lines = File.ReadAllLines(imageUrlMappingFile).ToList();
                newImageCount = lines.Where(l => !string.IsNullOrEmpty(l)).Count();
            }
            this.WriteLog(EventType.Critical, "[ProcessedImageCount] | [{0}]", newImageCount - oriImageCount);

            log.Close();
            log = null;
            this.WriteLog(EventType.Critical, "[End] | [{0}]", "ProcessImage");
        }