コード例 #1
0
        public static JavaScriptModel GetJavaScripModel(string vin, DealershipViewModel dealer)
        {
            var autoService = new ChromeAutoService();
            var model       = new JavaScriptModel();

            if (SQLHelper.CheckVinExist(vin, dealer))
            {
                var context = new whitmanenterprisewarehouseEntities();
                var row     = context.whitmanenterprisedealershipinventories.FirstOrDefault(x => x.VINNumber == vin && x.DealershipId == dealer.DealershipId);
                model.ListingId = row.ListingID.ToString(CultureInfo.InvariantCulture);
                model.Status    = "Inventory";
            }
            else if (SQLHelper.CheckVinExistInSoldOut(vin, dealer))
            {
                var context = new whitmanenterprisewarehouseEntities();
                var row     = context.whitmanenterprisedealershipinventorysoldouts.FirstOrDefault(x => x.VINNumber == vin && x.DealershipId == dealer.DealershipId);
                model.ListingId = row.ListingID.ToString(CultureInfo.InvariantCulture);
                model.Status    = "SoldOut";
            }
            else if (SQLHelper.CheckVinExistInAppraisal(vin, dealer))
            {
                var context = new whitmanenterprisewarehouseEntities();
                var row     = context.whitmanenterpriseappraisals.FirstOrDefault(x => x.VINNumber == vin && x.DealershipId == dealer.DealershipId);
                model.AppraisalId = row.idAppraisal.ToString(CultureInfo.InvariantCulture);
                model.Status      = "Appraisal";
                //return RedirectToAction("ViewProfileForAppraisal", "Appraisal", new { AppraisalId = row["AppraisalID"].ToString() });
            }
            else
            {
                var vehicleInfo = autoService.GetVehicleInformationFromVin(vin);
                if (vehicleInfo != null)
                {
                    model.Vin    = vin;
                    model.Status = "VinProcessing";
                }
                else
                {
                    model.Vin    = vin;
                    model.Status = "VinInvalid";
                }
            }

            return(model);
        }
コード例 #2
0
        public static InspectionAppraisalViewModel GetPendingAppraisal(int id)
        {
            var model = new InspectionAppraisalViewModel();
            //try
            //{
            var receivedAppraisalId = Convert.ToInt32(id);

            using (var context = new whitmanenterprisewarehouseEntities())
            {
                var existingAppraisal = context.whitmanenterpriseappraisals.Where(a => a.idAppraisal == receivedAppraisalId).FirstOrDefault();
                if (existingAppraisal != null)
                {
                    model.AppraisalInfo = new AppraisalInfo()
                    {
                        AppraisalId     = existingAppraisal.idAppraisal,
                        VinNumber       = existingAppraisal.VINNumber ?? "",
                        StockNumber     = existingAppraisal.StockNumber ?? "",
                        Year            = existingAppraisal.ModelYear ?? 2012,
                        Make            = existingAppraisal.Make ?? "",
                        Model           = existingAppraisal.Model ?? "",
                        Trim            = existingAppraisal.Trim ?? "",
                        ExteriorColor   = existingAppraisal.ExteriorColor ?? "",
                        InteriorColor   = existingAppraisal.InteriorColor ?? "",
                        Transmission    = existingAppraisal.Tranmission ?? "",
                        Odometer        = existingAppraisal.Mileage ?? "",
                        Cylinders       = existingAppraisal.Cylinders ?? "",
                        Liters          = existingAppraisal.Liters ?? "",
                        Doors           = existingAppraisal.Doors ?? "",
                        Fuel            = existingAppraisal.FuelType ?? "",
                        MSRP            = existingAppraisal.MSRP ?? "",
                        DriveType       = existingAppraisal.DriveTrain ?? "",
                        ImageUrl        = existingAppraisal.DefaultImageUrl,
                        Photo           = existingAppraisal.Photo,
                        Options         = String.IsNullOrEmpty(existingAppraisal.CarsOptions) ? new List <string>() : existingAppraisal.CarsOptions.Split(',').ToList(),
                        Packages        = String.IsNullOrEmpty(existingAppraisal.CarsPackages) ? new List <string>() : existingAppraisal.CarsPackages.Split(',').ToList(),
                        StandardOptions = String.IsNullOrEmpty(existingAppraisal.StandardOptions) ? new List <string>() : existingAppraisal.StandardOptions.Split(',').ToList(),
                        AppraisalDate   = existingAppraisal.DateStamp.HasValue ? existingAppraisal.DateStamp.Value.ToShortDateString() : String.Empty,
                        AppraisalTime   = existingAppraisal.DateStamp.HasValue ? existingAppraisal.DateStamp.Value.ToShortTimeString() : String.Empty,
                        EngineType      = existingAppraisal.EngineType,
                        AppraisalBy     = GetAppraisalName(existingAppraisal.UserStamp)
                    };

                    var autoService = new ChromeAutoService();
                    if (!(String.IsNullOrEmpty(model.AppraisalInfo.VinNumber)) && model.AppraisalInfo.VinNumber != "None")
                    {
                        var vehicleInfo = autoService.GetVehicleInformationFromVin(model.AppraisalInfo.VinNumber);
                        model.AppraisalInfo.StandardOptions = InitializeOptions(vehicleInfo.standard).Select(o => o.Text).ToList();
                    }
                    else
                    {
                        IdentifiedString[] divisionList = autoService.GetDivisions(model.AppraisalInfo.Year);
                        var make        = SelectListHelper.InitialMakeList(divisionList).Where(m => m.Text.Equals(model.AppraisalInfo.Make)).First();
                        var chromeModel = autoService.GetModelsByDivision(model.AppraisalInfo.Year, Convert.ToInt32(make.Value.Split('|')[0])).Where(m => m.Value.Equals(model.AppraisalInfo.Model)).FirstOrDefault();
                        if (chromeModel != null)
                        {
                            var styles    = autoService.GetStyles(chromeModel.id);
                            int styleId   = Convert.ToInt32(styles.First().id);
                            var styleInfo = autoService.GetStyleInformationFromStyleId(styleId);
                            model.AppraisalInfo.StandardOptions = InitializeOptions(styleInfo.standard).Select(o => o.Text).ToList();
                        }
                    }

                    model.CustomerInfo = new CustomerInfo()
                    {
                        FirstName = existingAppraisal.FirstName,
                        LastName  = existingAppraisal.LastName,
                        Phone     = existingAppraisal.Phone,
                        Email     = existingAppraisal.Email,
                        City      = existingAppraisal.City,
                        State     = existingAppraisal.State,
                        Zip       = existingAppraisal.ZipCode,
                        Street    = existingAppraisal.Street,
                        Signature = existingAppraisal.Signature
                    };

                    var walkarounds = context.vincontrolwalkarounds.Where(i => i.whitmanenterpriseappraisal.idAppraisal == receivedAppraisalId).OrderBy(i => i.order).ToList();
                    if (walkarounds.Count > 0)
                    {
                        model.WalkaroundInfo = walkarounds.Select(w => new WalkaroundInfo()
                        {
                            Order = w.order ?? 0,
                            Note  = GetNoteContent(w.note, w.order),
                            X     = w.x ?? 0,
                            Y     = w.y ?? 0
                        });
                    }

                    //var answers =
                    //    context.vincontrolanswers.Where(i => i.whitmanenterpriseappraisal.idAppraisal == receivedAppraisalId).Select(
                    //        a => new AppraisalAnswer()
                    //        {
                    //            Question = a.vincontrolquestions.shortdescription,
                    //            Answer = a.answer,
                    //            Comment = a.comment,
                    //            QuestionType = a.vincontrolquestions.vincontrolquestiontype.code??4
                    //        }).ToList();

                    var answers =
                        context.vincontrolanswers.Where(i => i.whitmanenterpriseappraisal.idAppraisal == receivedAppraisalId).Select(
                            a => new
                    {
                        QuestionId   = a.vincontrolquestion.questionid,
                        Question     = a.vincontrolquestion.shortdescription,
                        Answer       = a.answer,
                        Comment      = a.comment,
                        QuestionType = a.vincontrolquestion.vincontrolquestiontype.code ?? 4,
                        Order        = a.vincontrolquestion.order
                    }).ToList();
                    //AppraisalAnswer()
                    var questions = context.vincontrolquestions.Include("vincontrolquestiontype");
                    var list      = new List <AppraisalAnswer>();
                    foreach (var question in questions)
                    {
                        var answer = answers.FirstOrDefault(a => a.QuestionId == question.questionid);
                        if (answer != null)
                        {
                            list.Add(new AppraisalAnswer()
                            {
                                Question     = answer.Question,
                                Answer       = GetAnswer(answer.Answer, question.vincontrolquestiontype.unit),
                                Comment      = GetShortString(answer.Comment),
                                QuestionType = answer.QuestionType,
                                Order        = answer.Order ?? 0
                            });
                        }
                        else
                        {
                            list.Add(new AppraisalAnswer()
                            {
                                Question     = question.shortdescription,
                                Answer       = String.Empty,
                                Comment      = String.Empty,
                                QuestionType = question.vincontrolquestiontype.code ?? 4,
                                Order        = question.order ?? 0
                            });
                        }
                    }

                    if (answers.Count > 0)
                    {
                        model.AppraisalAnswer = list.OrderBy(o => o.Order);
                    }
                    else
                    {
                        model.AppraisalAnswer = list;
                    }
                }
            }
            //}
            //catch (Exception)
            //{

            //}

            return(model);
        }
コード例 #3
0
        public static AppraisalViewFormModel GetVehicleInfoFromChromeDecode(VehicleDescription vehicleInfo)
        {
            var appraisal = new AppraisalViewFormModel
            {
                VinDecodeSuccess  = true,
                AppraisalDate     = DateTime.Now.ToShortDateString(),
                VinNumber         = vehicleInfo.vinDescription != null ? vehicleInfo.vinDescription.vin : string.Empty,
                AppraisalModel    = vehicleInfo.bestModelName,
                Make              = vehicleInfo.bestMakeName,
                Trim              = vehicleInfo.bestTrimName,
                ModelYear         = vehicleInfo.modelYear,
                ExteriorColorList = SelectListHelper.InitalExteriorColorList(vehicleInfo.exteriorColor),
                InteriorColorList = SelectListHelper.InitalInteriorColorList(vehicleInfo.interiorColor)
            };

            if (vehicleInfo.style != null && vehicleInfo.style.Any())
            {
                var firstStyle = vehicleInfo.style.FirstOrDefault();
                if (firstStyle != null)
                {
                    appraisal.Door           = firstStyle.passDoors.ToString();
                    appraisal.MSRP           = firstStyle.basePrice.msrp.ToString("C");
                    appraisal.DriveTrainList = SelectListHelper.InitalDriveTrainList(firstStyle.drivetrain.ToString());
                    bool existed;
                    appraisal.TrimList = SelectListHelper.InitalTrimList(appraisal, firstStyle.trim, vehicleInfo.style, firstStyle.id, out existed);
                    if (firstStyle.stockImage != null)
                    {
                        appraisal.DefaultImageUrl = firstStyle.stockImage.url;
                    }
                }
            }

            var chromeAutoService       = new ChromeAutoService();
            var listPackageOptions      = chromeAutoService.GetPackageOptions(vehicleInfo);
            var listNonInstalledOptions = chromeAutoService.GetNonInstalledOptions(vehicleInfo);

            var builder = new StringBuilder();

            if (vehicleInfo.standard != null && vehicleInfo.standard.Any())
            {
                foreach (var fo in vehicleInfo.standard)
                {
                    builder.Append(fo.description + ",");
                }

                if (!String.IsNullOrEmpty(builder.ToString()))
                {
                    builder.Remove(builder.Length - 1, 1);
                }

                appraisal.StandardInstalledOption = builder.ToString();
            }

            appraisal.FactoryPackageOptions      = SelectListHelper.InitalFactoryPackagesOrOption(listPackageOptions);
            appraisal.FactoryNonInstalledOptions = SelectListHelper.InitalFactoryPackagesOrOption(listNonInstalledOptions);

            if (vehicleInfo.vinDescription != null && !String.IsNullOrEmpty(vehicleInfo.vinDescription.bodyType))
            {
                appraisal.BodyTypeList = SelectListHelper.InitialBodyTypeList(vehicleInfo.vinDescription.bodyType);
            }
            else
            {
                var bodyType = vehicleInfo.style.Last().bodyType;
                appraisal.BodyTypeList = SelectListHelper.InitialBodyTypeList(vehicleInfo.style != null ? (bodyType != null ? bodyType.Last().Value : vehicleInfo.bestStyleName) : vehicleInfo.bestStyleName);
                if (appraisal.CylinderList == null)
                {
                    appraisal.CylinderList = new BindingList <SelectListItem>();
                }

                if (appraisal.LitersList == null)
                {
                    appraisal.LitersList = new BindingList <SelectListItem>();
                }

                if (appraisal.FuelList == null)
                {
                    appraisal.FuelList = new BindingList <SelectListItem>();
                }
            }

            if (vehicleInfo.engine != null)
            {
                appraisal.FuelList     = SelectListHelper.InitialFuelList(vehicleInfo.engine);
                appraisal.CylinderList = SelectListHelper.InitialCylinderList(vehicleInfo.engine);
                appraisal.LitersList   = SelectListHelper.InitialLitterList(vehicleInfo.engine);

                var firstEngine = vehicleInfo.engine.FirstOrDefault();
                if (firstEngine != null && firstEngine.fuelEconomy != null)
                {
                    appraisal.FuelEconomyCity    = firstEngine.fuelEconomy.city.low.ToString();
                    appraisal.FuelEconomyHighWay = firstEngine.fuelEconomy.hwy.low.ToString();
                }
            }

            if (vehicleInfo.vinDescription != null && vehicleInfo.vinDescription.marketClass != null)
            {
                if (vehicleInfo.vinDescription.marketClass.Any(tmp => tmp.Value.Contains("Truck") || tmp.Value.Contains("Cargo Vans")))
                {
                    appraisal.IsTruck = true;
                }
            }

            return(appraisal);
        }