예제 #1
0
 public static List <TradeInReport> GetSampleVinReport()
 {
     using (var context = new VincontrolEntities())
     {
         var result = (from y in context.YearMakes
                       join m in context.Makes on y.MakeId equals m.MakeId
                       join mo in context.Models on y.YearMakeId equals mo.YearMakeId
                       join tr in context.Trims.Distinct() on mo.ModelId equals tr.ModelId
                       join tt in context.TrimTradeIns on tr.TrimId equals tt.TrimId into temp
                       from tt in temp.DefaultIfEmpty()
                       where tt == null || string.IsNullOrEmpty(tt.SampleVIN)
                       select
                       new TradeInReport
         {
             Year = y.Year,
             Make = m.Value,
             Model = mo.Value,
             TrimName = tr.TrimName
         }).Distinct()
                      .OrderByDescending(x => x.Year)
                      .ThenBy(x => x.Make)
                      .ThenBy(x => x.Model)
                      .ThenBy(x => x.TrimName)
                      .ToList();
         return(result);
     }
 }
예제 #2
0
 private void CreateData(TradeinValueModel model)
 {
     try
     {
         using (var context = new VincontrolEntities())
         {
             if (model.Trim != null)
             {
                 var tradein = new TrimTradeIn();
                 tradein.TrimId    = model.Trim.Value;
                 tradein.SampleVIN = model.SampleVin;
                 //decimal tradeinValue = 0;
                 //decimal.TryParse(TradeInValue.Text, out tradeinValue);
                 if (model.TradeinValue != null)
                 {
                     tradein.TradeInValue = model.TradeinValue.Value;
                 }
                 //long estimatedMileage = 0;
                 //long.TryParse(EstimatedMileage.Text, out estimatedMileage);
                 tradein.EstimatedZeroPointMileage = model.EstimatedMileage;
                 context.AddToTrimTradeIns(tradein);
                 context.SaveChanges();
                 MessageBox.Show("Tradein information has been successfully added.");
             }
         }
     }
     catch (Exception)
     {
         MessageBox.Show("There is already this year make model trim in the database.");
     }
 }
예제 #3
0
        //private static void UpdatePriceChangeActivity()
        //{
        //    using (var dataContext = new VincontrolEntities())
        //    {
        //        foreach (var item in dataContext.InventoryDealerActivities.Where(i => i.DealerActivitySubTypeCodeId == 10))
        //        {
        //            if (string.IsNullOrEmpty(item.Detail)) continue;
        //            var resultString = item.Detail.Split(',');
        //            var inventoryId = resultString[0];

        //            //item.VIN = GetContent(vinString).Trim();
        //            //item.Stock = GetContent(stockString).Trim();
        //            var oldInventoryId = int.Parse(GetContent(inventoryId).Trim());
        //            item.OldPrice = decimal.Parse(GetContent(resultString[2].Split(';')[0]).Trim(), NumberStyles.Currency);
        //            if (resultString[2].Split(';').Length >= 2)
        //            {
        //                item.NewPrice = decimal.Parse(GetContent(resultString[2].Split(';')[1]).Trim(),
        //                                              NumberStyles.Currency);
        //            }
        //            var inventory = dataContext.Inventories.Include("Vehicle").FirstOrDefault(i => i.OldInventoryId == oldInventoryId);
        //            if (inventory != null)
        //            {
        //                item.InventoryId = inventory.InventoryId;
        //                item.VIN = inventory.Vehicle.Vin;
        //                item.Stock = inventory.Stock;
        //                item.Year = inventory.Vehicle.Year;
        //                item.Make = inventory.Vehicle.Make;
        //                item.Model = inventory.Vehicle.Model;
        //                item.Trim = inventory.Vehicle.Trim;

        //            }
        //        }

        //        dataContext.SaveChanges();
        //    }
        //}

        private static void UpdatePriceChangeActivity()
        {
            using (var dataContext = new VincontrolEntities())
            {
                foreach (var item in dataContext.InventoryDealerActivities.Where(i => i.DealerActivitySubTypeCodeId == 10))
                {
                    if (string.IsNullOrEmpty(item.Detail))
                    {
                        continue;
                    }
                    var resultString = item.Detail.Split(';');
                    item.NewPrice = decimal.Parse(GetContent(resultString[1]).Trim(),
                                                  NumberStyles.Currency);
                    var newResultString = resultString[0].Split('$');
                    item.OldPrice = decimal.Parse(newResultString[1],
                                                  NumberStyles.Currency);
                    var oldInventoryId = int.Parse(GetContent(newResultString[0].Split(',')[0]));

                    var inventory = dataContext.Inventories.Include("Vehicle").FirstOrDefault(i => i.OldInventoryId == oldInventoryId);
                    if (inventory != null)
                    {
                        item.InventoryId = inventory.InventoryId;
                        item.VIN         = inventory.Vehicle.Vin;
                        item.Stock       = inventory.Stock;
                        item.Year        = inventory.Vehicle.Year;
                        item.Make        = inventory.Vehicle.Make;
                        item.Model       = inventory.Vehicle.Model;
                        item.Trim        = inventory.Vehicle.Trim;
                    }
                }

                dataContext.SaveChanges();
            }
        }
예제 #4
0
        private void TrackActivity(string emails, string names, Inventory existingInventory, User user)
        {
            var emailList = emails.Split(',').ToList();
            var nameList  = names.Split(',').ToList();

            using (var context = new VincontrolEntities())
            {
                for (var i = 0; i < emailList.Count; i++)
                {
                    var activity = new FlyerShareDealerActivity
                    {
                        CustomerEmail = emailList[i],
                        CustomerName  = nameList[i],
                        DateStamp     = DateTime.Now,
                        UserStampId   = user.UserId,
                        DealerId      = existingInventory.Dealer.DealerId,
                        Year          = existingInventory.Vehicle.Year,
                        Make          = existingInventory.Vehicle.Make,
                        Model         = existingInventory.Vehicle.Model,
                        Trim          = existingInventory.Vehicle.Trim,
                        Stock         = existingInventory.Stock,
                        VIN           = existingInventory.Vehicle.Vin,
                        IsBrochure    = false
                    };
                    context.AddToFlyerShareDealerActivities(activity);
                }
                context.SaveChanges();
            }
        }
예제 #5
0
 public static List <int> GetYears()
 {
     using (var context = new VincontrolEntities())
     {
         return(context.YearMakes.Select(i => i.Year).Distinct().OrderByDescending(i => i).ToList());
     }
 }
예제 #6
0
 private static void UpdateUserActivity()
 {
     using (var dataContext = new VincontrolEntities())
     {
         foreach (var item in dataContext.UserDealerActivities)
         {
             if (string.IsNullOrEmpty(item.Detail))
             {
                 continue;
             }
             var resultString        = item.Detail.Split(';');
             var usernameString      = resultString[0];
             var usernameStringArray = usernameString.Split(':');
             if (usernameStringArray.Length > 1)
             {
                 var username       = usernameStringArray[1].Trim();
                 var firstOrDefault = dataContext.Users.FirstOrDefault(i => i.UserName == username);
                 item.UserName = username;
                 item.Email    = GetContent(resultString[1]).Trim();
                 item.Phone    = GetContent(resultString[2]).Trim();
                 item.Role     = GetContent(resultString[3]).Trim();
                 if (firstOrDefault != null)
                 {
                     item.UserId = firstOrDefault.UserId;
                 }
             }
         }
         dataContext.SaveChanges();
     }
 }
예제 #7
0
        private List <Inventory> GetInventoryList(IEnumerable <USBCarViewModel> vehicles)
        {
            var context = new VincontrolEntities();

            return(context.Inventories.Where(BuildContainsExpression
                                             <Inventory, int>(
                                                 e => e.InventoryId,
                                                 vehicles.Select(i => i.ListingId))).ToList());
        }
예제 #8
0
        private void LoadMarketWorkertranactionDoWork(object sender, DoWorkEventArgs e)
        {
            var vehicle = new VehicleViewModel()
            {
                Mileage  = _manheimVehicle.Odometer,
                Year     = _manheimVehicle.Year,
                Make     = _manheimVehicle.Make,
                Model    = _manheimVehicle.Model,
                Trim     = _manheimVehicle.Trim,
                Vin      = _manheimVehicle.Vin,
                Mmr      = _manheimVehicle.Price,
                DealerId = _dealer.DealerId
            };

            try
            {
                using (var context = new VincontrolEntities())
                {
                    var queryDealer = context.Dealers.FirstOrDefault(d => d.DealerId == vehicle.DealerId);

                    var dealer = new DealershipViewModel(queryDealer);

                    if (!String.IsNullOrEmpty(vehicle.Vin))
                    {
                        var autoService = new ChromeAutoService();

                        var vehicleInfo = autoService.GetVehicleInformationFromVin(vehicle.Vin);

                        if (vehicleInfo != null)
                        {
                            vehicle.Make = vehicleInfo.bestMakeName;

                            vehicle.Year = vehicleInfo.modelYear;

                            vehicle.Model = vehicleInfo.bestModelName;

                            if (!String.IsNullOrEmpty(vehicleInfo.bestTrimName) &&
                                !vehicleInfo.bestTrimName.Contains("/"))
                            {
                                vehicle.Trim = vehicleInfo.bestTrimName;
                            }

                            if (!String.IsNullOrEmpty(vehicleInfo.vinDescription.bodyType))
                            {
                                vehicle.BodyStyle = vehicleInfo.vinDescription.bodyType;
                            }
                        }
                    }
                    _marketData = MarketHelper.GetMarketCarsForNationwideMarketOnVinsell(vehicle, dealer);
                }
            }
            catch (Exception ex)
            {
                _marketData.Error = ex.Message;
            }
        }
예제 #9
0
 public static List <ModelItem> GetModels(int yearMakeId)
 {
     using (var context = new VincontrolEntities())
     {
         return
             (context.Models.Where(i => i.YearMakeId == yearMakeId).Select(i => new ModelItem {
             ModelId = i.ModelId, ModelValue = i.Value
         }).Distinct().OrderBy(x => x.ModelValue)
              .ToList());
     }
 }
예제 #10
0
        public static int GetLatestVersionNumber()
        {
            using (var context = new VincontrolEntities())
            {
                var versionNumber = (from l in context.VincaptureDesktopTools
                                     orderby l.VersionId descending
                                     select l).First();

                return(versionNumber.VersionNumber);
            }
        }
예제 #11
0
 public static List <YearMakeItem> GetMakes(int year)
 {
     using (var context = new VincontrolEntities())
     {
         return
             (context.YearMakes.Where(i => i.Year == year).Select(i => new YearMakeItem {
             MakeValue = i.Make.Value, YearMakeId = i.YearMakeId
         }).Distinct().OrderBy(x => x.MakeValue)
              .ToList());
     }
 }
예제 #12
0
        private void Init(List <EmailItem> emailList, int dealerID)
        {
            if (!emailList.Any())
            {
                var context = new VincontrolEntities();
                emailList.AddRange(context.Users.Where(i => i.DefaultLogin == dealerID).Select(
                                       i => new EmailItem {
                    Email = i.Email, UserName = i.Name
                }).ToList().Distinct(new EmailComparer()));
            }


            Emails = emailList;
        }
예제 #13
0
        private static void UpdateInventoryActivity()
        {
            using (var dataContext = new VincontrolEntities())
            {
                foreach (var item in dataContext.InventoryDealerActivities.Where(i => i.DealerActivitySubTypeCodeId == 13))
                {
                    if (string.IsNullOrEmpty(item.Detail))
                    {
                        continue;
                    }
                    var resultString = item.Detail.Split(';');
                    var appraisalId  = resultString[0];
                    var inventoryId  = resultString[1];
                    //var vinString = resultString[1];
                    //var stockString = resultString[2];
                    var yearString  = resultString[2];
                    var makeString  = resultString[3];
                    var modelString = resultString[4];
                    var trimString  = resultString[5];

                    //item.VIN = GetContent(vinString).Trim();
                    //item.Stock = GetContent(stockString).Trim();
                    var oldInventoryId = int.Parse(GetContent(inventoryId).Trim());

                    var inventory = dataContext.Inventories.Include("Vehicle").FirstOrDefault(i => i.OldInventoryId == oldInventoryId);
                    if (inventory != null)
                    {
                        item.InventoryId = inventory.InventoryId;
                        item.VIN         = inventory.Vehicle.Vin;
                        item.Stock       = inventory.Stock;
                    }

                    if (!string.IsNullOrEmpty(GetContent(appraisalId).Trim()))
                    {
                        var oldAppraisalId = int.Parse(GetContent(appraisalId));
                        var appraisal      = dataContext.Appraisals.FirstOrDefault(i => i.OldAppraisalId == oldAppraisalId);

                        if (appraisal != null)
                        {
                            item.AppraisalId = appraisal.AppraisalId;
                        }
                    }
                    item.Year  = int.Parse(GetContent(yearString).Trim());
                    item.Make  = GetContent(makeString).Trim();
                    item.Model = GetContent(modelString).Trim();
                    item.Trim  = GetContent(trimString).Trim();
                }
                dataContext.SaveChanges();
            }
        }
예제 #14
0
 public static List <TrimItem> GetTrims(int modelId)
 {
     using (var context = new VincontrolEntities())
     {
         return
             (context.Trims.Where(i => i.ModelId == modelId)
              .Select(i => new TrimItem {
             TrimId = i.TrimId, TrimValue = i.StyleName
         })
              .OrderBy(x => x.TrimValue)
              .GroupBy(r => r.TrimValue)
              .Select(g => g.FirstOrDefault()).ToList());
     }
 }
예제 #15
0
 public static TradeinInfo GetTradeInInfo(int trimId)
 {
     using (var context = new VincontrolEntities())
     {
         var trimTradeIns = context.TrimTradeIns.FirstOrDefault(i => i.TrimId == trimId);
         if (trimTradeIns == null)
         {
             return(null);
         }
         return(new TradeinInfo()
         {
             EstimatedZeroPointMileage = trimTradeIns.EstimatedZeroPointMileage, TradeInValue = trimTradeIns.TradeInValue, SampleVIN = trimTradeIns.SampleVIN
         });
     }
 }
예제 #16
0
        private void CreateData(int trimId)
        {
            using (var context = new VincontrolEntities())
            {
                var tradein = new TrimTradeIn();

                //tradein.TrimId = trimId;
                //tradein.SampleVIN = SampleVin.Text;
                //decimal tradeinValue = 0;
                //decimal.TryParse(TradeInValue.Text, out tradeinValue);
                //tradein.TradeInValue = tradeinValue;
                //long estimatedMileage = 0;
                //long.TryParse(EstimatedMileage.Text, out estimatedMileage);
                //tradein.EstimatedZeroPointMileage = estimatedMileage;
                //context.AddToTrimTradeIns(tradein);
                context.SaveChanges();
            }
        }
예제 #17
0
        public override void SendFlyer(int inventoryId, string emails, string names, int userId)
        {
            IEmail emailWrapper = new Email();

            using (var context = new VincontrolEntities())
            {
                var existingInventory = context.Inventories.FirstOrDefault(i => i.InventoryId == inventoryId);
                var user = context.Users.FirstOrDefault(i => i.UserId == userId);

                var content    = GenerateFlyerStringContent(existingInventory);
                var workStream = GetStreamFromByte(GenerateFlyerByteContent(existingInventory.Dealer.Name, content));

                TrackActivity(emails, names, existingInventory, user);

                if (existingInventory != null)
                {
                    var trim = existingInventory.Vehicle.Trim;
                    if (String.IsNullOrEmpty(trim))
                    {
                        trim = "Base";
                    }
                    var emailContent = EmailTemplateReader.GetFlyerEmailContent();
                    emailContent = emailContent.Replace(EmailTemplateReader.UserFullName, user.Name);
                    emailContent = emailContent.Replace(EmailTemplateReader.DealerName, existingInventory.Dealer.Name);
                    emailContent = emailContent.Replace(EmailTemplateReader.Year, existingInventory.Vehicle.Year.GetValueOrDefault().ToString());
                    emailContent = emailContent.Replace(EmailTemplateReader.Make, existingInventory.Vehicle.Make);
                    emailContent = emailContent.Replace(EmailTemplateReader.Model, existingInventory.Vehicle.Model);
                    emailContent = emailContent.Replace(EmailTemplateReader.Trim, existingInventory.Vehicle.Trim);
                    emailContent = emailContent.Replace(EmailTemplateReader.Phone, user.CellPhone);
                    emailContent = emailContent.Replace(EmailTemplateReader.Address, existingInventory.Dealer.Address + " " + existingInventory.Dealer.City + ", " + existingInventory.Dealer.State + " " + existingInventory.Dealer.ZipCode);
                    emailContent = emailContent.Replace(EmailTemplateReader.LandingPageURL,
                                                        String.Format("http://vinadvisor.com/Inventory/{0}/{1}-{2}-{3}-{4}/{5}",
                                                                      existingInventory.Dealer.Name.ToLower().Replace(" ", ""),
                                                                      existingInventory.Vehicle.Year,
                                                                      existingInventory.Vehicle.Make.Replace(" ", ""),
                                                                      existingInventory.Vehicle.Model.Replace(" ", ""),
                                                                      trim,
                                                                      existingInventory.Vehicle.Vin));

                    emailWrapper.SendEmail(emails.Split(',').ToList(), "You received a flyer from " + existingInventory.Dealer.Name, emailContent, workStream);
                }
            }
        }
예제 #18
0
        public static IEnumerable <string> GetEmails(int dealerId)
        {
            using (var dbContext = new VincontrolEntities())
            {
                var emailsList = from e in dbContext.UserNotifications
                                 from et in dbContext.Users
                                 where
                                 e.DealerId == dealerId && e.ImageUploadNotified && et.Active.Value && e.UserId == et.UserId
                                 select new
                {
                    et.Email
                };

                if (emailsList.Any())
                {
                    return(emailsList.Select(x => x.Email).Distinct().ToList());
                }
                return(ConfigurationManager.AppSettings["CCEmails"].Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList());
            }
        }
예제 #19
0
        public static DealerUser CheckUserExistWithStatus(string userName, string passWord)
        {
            var user = new DealerUser();

            using (var context = new VincontrolEntities())
            {
                //check if master login
                var firstOrDefault =
                    context.Users.FirstOrDefault(o => o.UserName == userName && o.Password == passWord && o.Active.Value);

                if (firstOrDefault != null)
                {
                    var firstDealer =
                        context.Dealers.FirstOrDefault(
                            x => x.DealerId == firstOrDefault.DefaultLogin);

                    user.DealerId = firstOrDefault.DefaultLogin.GetValueOrDefault();

                    user.Username = firstOrDefault.UserName;

                    user.Name = firstOrDefault.Name;

                    if (firstDealer != null)
                    {
                        user.DealerName = firstDealer.Name;

                        user.HeaderOverlayUrl = firstDealer.Setting.HeaderOverlayURL;

                        user.FooterOverlayUrl = firstDealer.Setting.FooterOverlayURL;
                    }
                }
                else
                {
                    return(null);
                }
            }

            return(user);
        }
예제 #20
0
        private static void UpdateAppraisalActivity()
        {
            using (var dataContext = new VincontrolEntities())
            {
                foreach (var item in dataContext.AppraisalDealerActivities)
                {
                    if (string.IsNullOrEmpty(item.Detail) || item.Detail.Contains("Stock Number"))
                    {
                        continue;
                    }
                    var resultString      = item.Detail.Split(';');
                    var appraisalIdString = resultString[0];
                    var vinString         = resultString[1];
                    //var stockString = resultString[2];
                    var yearString  = resultString[2];
                    var makeString  = resultString[3];
                    var modelString = resultString[4];
                    var trimString  = resultString[5];

                    item.VIN = GetContent(vinString).Trim();
                    //item.Stock = GetContent(stockString).Trim();
                    var oldAppraisalId = int.Parse(GetContent(appraisalIdString).Trim());
                    var appraisal      = dataContext.Appraisals.FirstOrDefault(i => i.OldAppraisalId == oldAppraisalId);
                    item.Stock = null;
                    if (appraisal != null)
                    {
                        item.AppraisalId = appraisal.AppraisalId;
                        item.Stock       = appraisal.Stock;
                    }
                    item.Year  = int.Parse(GetContent(yearString).Trim());
                    item.Make  = GetContent(makeString).Trim();
                    item.Model = GetContent(modelString).Trim();
                    item.Trim  = GetContent(trimString).Trim();
                }
                dataContext.SaveChanges();
            }
        }
예제 #21
0
        public static void Rename(string fromPath, string toPath, int dealerId, string alternativeSubFolder = "Corrected", bool makeOverlay = false)
        {
            Console.WriteLine("*** START ***");
            var context    = new VincontrolEntities();
            var rootFolder = new DirectoryInfo(fromPath);

            if (rootFolder.Exists)
            {
                var subFolders = Directory.GetDirectories(fromPath);
                foreach (var item in subFolders)
                {
                    var subFolder             = new DirectoryInfo(item + (String.IsNullOrEmpty(alternativeSubFolder) ? "" : "\\" + alternativeSubFolder));
                    var subFolderName         = Path.GetFileName(item);
                    var listOfNormalImages    = new List <string>();
                    var listOfThumbnailImages = new List <string>();
                    Console.WriteLine("*** {0} ***", subFolderName);
                    var inventory = context.Inventories.FirstOrDefault(i => i.Vehicle.Vin.Equals(subFolderName) && i.DealerId.Equals(dealerId));
                    if (inventory == null)
                    {
                        continue;
                    }

                    var newNormalFolder    = toPath + "\\" + subFolderName + "\\" + "NormalSizeImages";
                    var newThumbnailFolder = toPath + "\\" + subFolderName + "\\" + "ThumbnailSizeImages";
                    if (!Directory.Exists(newNormalFolder))
                    {
                        Directory.CreateDirectory(newNormalFolder);
                    }
                    if (!Directory.Exists(newThumbnailFolder))
                    {
                        Directory.CreateDirectory(newThumbnailFolder);
                    }

                    var count = 1;
                    foreach (FileInfo image in subFolder.GetFiles().OrderBy(f => f.CreationTime))
                    {
                        if (image != null && (image.Extension.Equals(".jpg") || image.Extension.Equals(".png")) && (String.IsNullOrEmpty(inventory.PhotoUrl) || inventory.PhotoUrl.ToLower().Contains(image.Name.ToLower())))
                        {
                            var newImageName = String.Format("{0} {1} {2} {3}.jpg", inventory.Vehicle.Year, inventory.Vehicle.Make, inventory.Vehicle.Model, string.IsNullOrEmpty(inventory.Vehicle.Trim) ? (count++).ToString() : inventory.Vehicle.Trim + " " + (count++).ToString());
                            newImageName = newImageName.Replace(" ", "-").Replace("/", "").Replace("\\", "");
                            //image.CopyTo(newNormalFolder + "\\" + newImageName, true);
                            //File.Copy(image.FullName, newNormalFolder + "\\" + newImageName, true);
                            if (!File.Exists(newNormalFolder + "\\" + newImageName))
                            {
                                image.CopyTo(newNormalFolder + "\\" + newImageName, true);
                            }

                            if (makeOverlay)
                            {
                                OverlayImage(newNormalFolder + "\\" + newImageName, newNormalFolder + "\\" + newImageName, dealerId);
                            }
                            Console.WriteLine(newNormalFolder + "\\" + newImageName);
                            var imgObj = Image.FromFile(/*image.FullName*/ newNormalFolder + "\\" + newImageName);
                            var tmp    = Resize(imgObj, 260, 210);
                            WriteFile(tmp, newThumbnailFolder + "\\", newImageName);
                            //if (makeOverlay) OverlayImage(newThumbnailFolder + "\\" + newImageName, newThumbnailFolder + "\\" + newImageName, dealerId);

                            listOfNormalImages.Add(String.Format("http://apps.vincontrol.com/DealerImages/{0}/{1}/{2}/{3}", dealerId, subFolderName, "NormalSizeImages", newImageName));
                            listOfThumbnailImages.Add(String.Format("http://apps.vincontrol.com/DealerImages/{0}/{1}/{2}/{3}", dealerId, subFolderName, "ThumbnailSizeImages", newImageName));
                        }
                    }

                    if (listOfNormalImages.Any())
                    {
                        {
                            inventory.PhotoUrl     = listOfNormalImages.Aggregate((x, y) => x + "," + y);
                            inventory.ThumbnailUrl = listOfThumbnailImages.Aggregate((x, y) => x + "," + y);
                        }
                    }
                }
                context.SaveChanges();
            }
            Console.WriteLine("*** END ***");
        }
예제 #22
0
        private void SaveImageUrl()
        {
            using (var dbContext = new VincontrolEntities())
            {
                var row =
                    dbContext.Inventories.FirstOrDefault(x => x.InventoryId == _vm.ListingId);
                if (row != null)
                {
                    if (String.IsNullOrEmpty(row.PhotoUrl))
                    {
                        row.PhotoUrl = GetFileUrLs();
                    }
                    else
                    {
                        string[] carImagesList = row.PhotoUrl.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                        if (carImagesList.First().Contains(GetWebURL()))
                        {
                            if (carImagesList.First().Contains("DefaultStockImage"))
                            {
                                row.PhotoUrl = GetFileUrLs();
                            }
                            else
                            {
                                row.PhotoUrl = row.PhotoUrl + "," + GetFileUrLs();
                            }
                        }
                        else
                        {
                            row.PhotoUrl = GetFileUrLs();
                        }
                    }

                    if (String.IsNullOrEmpty(row.ThumbnailUrl))
                    {
                        row.ThumbnailUrl = GetThumbnailFileUrLs();
                    }
                    else
                    {
                        string[] carImagesList = row.ThumbnailUrl.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                        if (carImagesList.First().Contains(GetWebURL()))
                        {
                            if (carImagesList.First().Contains("DefaultStockImage"))
                            {
                                row.ThumbnailUrl = GetThumbnailFileUrLs();
                            }
                            else
                            {
                                row.ThumbnailUrl = row.ThumbnailUrl + "," + GetThumbnailFileUrLs();
                            }
                        }
                        else
                        {
                            row.ThumbnailUrl = GetThumbnailFileUrLs();
                        }
                    }

                    row.LastUpdated = DateTime.Now;

                    dbContext.SaveChanges();
                }
            }
        }
예제 #23
0
        public static string GenerateHtmlImageCode(string mainImageUrl, int dealerId)
        {
            var context       = new VincontrolEntities();
            var dealerSetting = context.Settings.First(x => x.DealerId == dealerId);

            var builder = new StringBuilder();

            if (!String.IsNullOrEmpty(dealerSetting.HeaderOverlayURL) && !String.IsNullOrEmpty(dealerSetting.FooterOverlayURL))
            {
                builder.Append("<html>");

                builder.Append("<head>");
                builder.Append("  <title></title>");
                builder.Append("</head>");

                builder.Append("<style type=\"text/css\">");
                builder.Append("html, body, div {");
                builder.Append("  padding: 0;");
                builder.Append("  margin: 0;");
                builder.Append("}");
                builder.Append("div {overflow: hidden;}");
                builder.Append("  .image-wrap {");
                builder.Append("    display: inline-block;");
                builder.Append("    position: relative;");
                builder.Append("  }");
                builder.Append(".image-wrap img.car-photo{");
                builder.Append("  }");
                builder.Append("  .overlay-top {");
                builder.Append("    width: 100%;");
                builder.Append("    background: white;");
                builder.Append("    text-align: center;");
                builder.Append(" }");
                builder.Append("  .overlay-top img {");
                builder.Append("    width: 100%;");
                builder.Append("}");
                builder.Append("  .overlay-bottom {");
                builder.Append("    font-size: 1.5em;");
                builder.Append("    width: 100%;");
                builder.Append("    color: white;");
                builder.Append("   font-weight: bold;");
                builder.Append("  }");
                builder.Append("  .overlay-bottom img{");
                builder.Append("   width: 100%;");
                builder.Append("}");
                builder.Append("</style>");

                builder.Append("<body>");
                builder.Append("<div class=\"image-wrap\">");
                builder.Append("  <div class=\"overlay-top\"><img src=\"" + dealerSetting.HeaderOverlayURL + "\" /></div>");
                builder.Append("  <img class=\"car-photo\" src=\"" + mainImageUrl + "\" />");
                builder.Append("  <div class=\"overlay-bottom\"><img src=\"" + dealerSetting.FooterOverlayURL + "\" /></div>");
                builder.Append("</div>");
                builder.Append("</body>");

                builder.Append("</html>");
            }
            else if (!String.IsNullOrEmpty(dealerSetting.OverlayHtmlUrl))
            {
                using (var client = new WebClient())
                {
                    var htmlCode = client.DownloadString(dealerSetting.OverlayHtmlUrl);

                    htmlCode = htmlCode.Replace("PLACEHOLDER", mainImageUrl);

                    builder.Append(htmlCode);
                }
            }

            return(builder.ToString());
        }