Exemple #1
0
        public static ImageModel GenerateRunTimeImageBlobByComputerAccount(WhitmanEntepriseMasterVehicleInfo vehicle)
        {
            var imageModel = new ImageModel();

            try
            {
                WebsitesScreenshot.WebsitesScreenshot bottomObj = null;
                if (vehicle.DealerId != 17716 && vehicle.DealerId != 14853)
                {
                    var _Obj = new WebsitesScreenshot.WebsitesScreenshot(
                        ConfigurationManager.AppSettings["WebScreenShotSerialKey"].ToString
                            (CultureInfo.InvariantCulture));

                    bottomObj =
                        new WebsitesScreenshot.WebsitesScreenshot(
                            ConfigurationManager.AppSettings["WebScreenShotSerialKey"].ToString
                                (CultureInfo.InvariantCulture));


                    WebsitesScreenshot.WebsitesScreenshot.Result result;

                    WebsitesScreenshot.WebsitesScreenshot.Result bottomResult;

                    if (vehicle.DealerId == 113738 || vehicle.DealerId == 3738)
                    {
                        var firstImageString = ComputerAccountHelper.GenerateHtmlImageCodeForAudiByComputerAccount(
                            vehicle);

                        result =
                            _Obj.CaptureHTML("<html><body>" + firstImageString + "</body></html>");

                        var secondImageString = ComputerAccountHelper.GenerateHtmlImageCodeForSecondBottomImage(
                            vehicle);

                        if (!String.IsNullOrEmpty(secondImageString))
                        {
                            bottomResult =
                                bottomObj.CaptureHTML("<html><body>" + secondImageString + "</body></html>");
                        }
                        else
                        {
                            bottomResult = bottomObj.CaptureHTML("<html><body>" + firstImageString + "</body></html>");
                        }
                    }

                    else
                    {
                        var firstImageString = ComputerAccountHelper.GenerateHtmlImageCode(
                            vehicle);


                        result =
                            _Obj.CaptureHTML("<html><body>" +
                                             firstImageString + "</body></html>");

                        var secondImageString = ComputerAccountHelper.GenerateHtmlImageCodeForSecondBottomImage(
                            vehicle);


                        if (!String.IsNullOrEmpty(secondImageString))
                        {
                            bottomResult =
                                bottomObj.CaptureHTML("<html><body>" +
                                                      secondImageString + "</body></html>");
                        }
                        else
                        {
                            bottomResult = bottomObj.CaptureHTML("<html><body>" + firstImageString + "</body></html>");
                        }
                    }



                    if (result == WebsitesScreenshot.WebsitesScreenshot.Result.Captured &&
                        bottomResult == WebsitesScreenshot.WebsitesScreenshot.Result.Captured)
                    {
                        _Obj.ImageFormat = WebsitesScreenshot.
                                           WebsitesScreenshot.ImageFormats.JPG;

                        bottomObj.ImageFormat = WebsitesScreenshot.
                                                WebsitesScreenshot.ImageFormats.JPG;

                        _Obj.DelaySeconds = 10;

                        bottomObj.DelaySeconds = 10;


                        var _Image = _Obj.GetImage();

                        var _BottomImage = bottomObj.GetImage();

                        var stream = new MemoryStream();

                        var bottomStream = new MemoryStream();

                        _Image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);

                        _BottomImage.Save(bottomStream, System.Drawing.Imaging.ImageFormat.Jpeg);

                        var bytes = stream.ToArray();

                        var bottombytes = bottomStream.ToArray();

                        imageModel.BottomImage = bottombytes;

                        imageModel.TopImage = bytes;

                        stream.Dispose();

                        stream.Close();

                        bottomStream.Dispose();

                        bottomStream.Close();

                        _Obj.Dispose();

                        bottomObj.Dispose();
                    }
                }
                else
                {
                    bottomObj =
                        new WebsitesScreenshot.WebsitesScreenshot(
                            System.Configuration.ConfigurationManager.AppSettings["WebScreenShotSerialKey"].ToString
                                (CultureInfo.InvariantCulture));

                    WebsitesScreenshot.WebsitesScreenshot.Result _BottomResult;

                    _BottomResult =
                        bottomObj.CaptureHTML("<html><body>" +
                                              ComputerAccountHelper.GenerateHtmlImageCodeForSecondBottomImage(
                                                  vehicle) + "</body></html>");

                    if (_BottomResult == WebsitesScreenshot.WebsitesScreenshot.Result.Captured)
                    {
                        bottomObj.ImageFormat = WebsitesScreenshot.
                                                WebsitesScreenshot.ImageFormats.JPG;

                        bottomObj.DelaySeconds = 5;


                        var bottomImage = bottomObj.GetImage();

                        var htmlToImageConverter = new HtmlToImage();

                        htmlToImageConverter.SerialNumber = ConfigurationManager.AppSettings["PDFSerialNumber"];
                        // set browser width
                        htmlToImageConverter.BrowserWidth = 1200;

                        // set HTML Load timeout
                        htmlToImageConverter.HtmlLoadedTimeout = 5;

                        // set whether the resulted image is transparent
                        htmlToImageConverter.TransparentImage = false;

                        System.Drawing.Image imageObject = null;

                        string htmlCode =
                            ComputerAccountHelper.GenerateHtmlImageCodeForCaliforniaBeemerByComputerAccount(vehicle);

                        imageObject = htmlToImageConverter.ConvertHtmlToImage(htmlCode, null)[0];

                        var stream = new MemoryStream();

                        var bottomStream = new MemoryStream();

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

                        bottomImage.Save(bottomStream, System.Drawing.Imaging.ImageFormat.Jpeg);

                        var bytes = stream.ToArray();


                        var bottombytes = bottomStream.ToArray();

                        imageModel.BottomImage = bottombytes;

                        imageModel.TopImage = bytes;

                        stream.Dispose();

                        stream.Close();

                        bottomStream.Dispose();

                        bottomStream.Close();

                        imageObject.Dispose();

                        bottomObj.Dispose();
                    }
                }
            }
            catch (Exception ex)
            {
                //string body = "Error = " + ex.Message + ex.Source + ex.InnerException + ex.TargetSite + ex.StackTrace +
                //             "**************************************************************************************" +
                //             _subMasterVehicleList.ElementAt(0).ListingId + "----" +
                //             _subMasterVehicleList.ElementAt(0).DealerId;

                //if (_subMasterVehicleList.Any())
                //    _subMasterVehicleList.RemoveAt(0);

                //timerPostAccount.Enabled = true;

                //return imageModel;
            }


            return(imageModel);
        }