Beispiel #1
0
        public static ImageModel GenerateRunTimePhysicalImageByComputerAccount(WhitmanEntepriseMasterVehicleInfo vehicle, List <WhitmanEntepriseMasterVehicleInfo> squareRandom)
        {
            var imageModel = new ImageModel {
                PhysicalImageUrl = new List <string>()
            };

            var random = new Random();


            string[] carImage = vehicle.CarImageUrl.Split(new string[] { ",", "|" },
                                                          StringSplitOptions.RemoveEmptyEntries);

            int number = random.Next(4, 6);

            int count = 1;

            var physicalImagePath = @"C:\ImageWarehouse" + "\\" + vehicle.DealerId + "\\" + vehicle.Vin;

            try
            {
                var dirNormal = new DirectoryInfo(physicalImagePath);

                if (!dirNormal.Exists)
                {
                    dirNormal.Create();
                }


                var htmlToImageConverter = new HtmlToImage
                {
                    SerialNumber      = ConfigurationManager.AppSettings["PDFSerialNumber"],
                    BrowserWidth      = 570,
                    HtmlLoadedTimeout = 15,
                    TransparentImage  = false
                };


                string snapshotfilePath = dirNormal + "\\" + vehicle.StockNumber + "-" + (count++);

                //string square4FilePath = dirNormal + "\\" + vehicle.StockNumber + "-" + (count++);

                var imageObjectSnapshot =
                    htmlToImageConverter.ConvertHtmlToImage(
                        ComputerAccountHelper.GenerateHtmlImageCodeSnapshotInfo(vehicle), null)[0];

                imageObjectSnapshot.Save(snapshotfilePath, System.Drawing.Imaging.ImageFormat.Jpeg);

                //if (squareRandom.Count >= 4)
                //{

                //    var imageObjectSquare =
                //        htmlToImageConverter.ConvertHtmlToImage(
                //            ComputerAccountHelper.GenerateHtmlImageCodeSquare4Pictures(squareRandom), null)[0];

                //    imageObjectSquare.Save(square4FilePath, System.Drawing.Imaging.ImageFormat.Jpeg);
                //}



                imageModel.PhysicalImageUrl.Add(snapshotfilePath);

                foreach (string tmp in carImage)
                {
                    string imageFileName = vehicle.StockNumber + "-" + count;

                    var imageObject =
                        htmlToImageConverter.ConvertHtmlToImage(
                            ComputerAccountHelper.GenerateHtmlImageCodeOverlay(vehicle, tmp), null)[0];

                    string filePath = dirNormal + "\\" + imageFileName + ".jpg";



                    imageObject.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);



                    imageModel.PhysicalImageUrl.Add(filePath);

                    count++;

                    break;

                    //if (imageModel.PhysicalImageUrl.Count > number)
                    //    break;
                }


                foreach (var tmp in squareRandom)
                {
                    if (!String.IsNullOrEmpty(tmp.CarImageUrl))
                    {
                        string[] totalImage = tmp.CarImageUrl.Split(new[] { "|", "," }, StringSplitOptions.RemoveEmptyEntries);

                        string imageFileName = vehicle.StockNumber + "-" + count;

                        var imageObject = htmlToImageConverter.ConvertHtmlToImage(ComputerAccountHelper.GenerateHtmlImageCodeOverlayForRandomSimilarCars(tmp, totalImage[0]), null)[0];

                        string filePath = dirNormal + "\\" + imageFileName + ".jpg";

                        imageObject.Save(filePath, System.Drawing.Imaging.ImageFormat.Jpeg);

                        imageModel.PhysicalImageUrl.Add(filePath);

                        count++;
                    }
                }


                //if (squareRandom.Count >= 4)


                //    imageModel.PhysicalImageUrl.Add(square4FilePath);
            }
            catch (Exception)
            {
            }
            return(imageModel);
        }