private List <VehicleGlassShortResponseModel> FindProductsByVehicleInfo(VehicleGlassRequestModel requestModel) { var vehicle = _vehicles.GetVehicleByMakeModelAndBodyTypeIds(requestModel.MakeId, requestModel.ModelId, requestModel.BodyTypeId); var glassesResult = new List <VehicleGlassShortResponseModel>(); var applicableGlasses = !string.IsNullOrEmpty(requestModel.ProductType) ? _vehicles.GetApplicableGLassesByProductType(vehicle, requestModel.ProductType) : _vehicles.GetApplicableGLasses(vehicle); if (applicableGlasses != null) { User user = null; if (User.Identity.IsAuthenticated) { user = _users.GetByEmail(User.Identity.Name); } foreach (var glass in applicableGlasses) { var glassToAdd = Mapper.Map <VehicleGlassShortResponseModel>(glass); glassToAdd.ProductInfos = GetProductInfos(glass, user); glassesResult.Add(glassToAdd); } } return(glassesResult); }
public void GetProductTypes_ShouldReturnProductsWithouRepeatables() { mapper.Execute(); VehicleGlassRequestModel request = new VehicleGlassRequestModel() { MakeId = 1 }; Vehicle vehicle = new Vehicle() { MakeId = 1 }; var glasses = new List <VehicleGlass>() { new VehicleGlass() { Position = "WS" }, new VehicleGlass() { Position = "WS" }, new VehicleGlass() { Position = "WS" }, new VehicleGlass() { Position = "BL" }, new VehicleGlass() { Position = "BL" }, new VehicleGlass() { Position = "LQF" } }.AsQueryable(); var vehiclesMock = new Mock <IVehiclesService>(); vehiclesMock.Setup(x => x.GetVehicleByMakeModelAndBodyTypeIds(request.MakeId, null, null)).Returns(vehicle); vehiclesMock.Setup(x => x.GetApplicableGLasses(vehicle)).Returns(glasses); var controller = new ProductsController(null, vehiclesMock.Object, null, null, null, null); var result = controller.GetPositions(request); Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <List <string> >)); var responseContent = ((OkNegotiatedContentResult <List <string> >)result).Content; Assert.AreEqual(responseContent.ToList().Count, 3); Assert.AreEqual(responseContent[0], "WS"); Assert.AreEqual(responseContent[1], "BL"); Assert.AreEqual(responseContent[2], "LQF"); vehiclesMock.VerifyAll(); }
public void FindByVehicleInfo_ShouldReturnCorrectProducts() { mapper.Execute(); string testProductType = "windscreen"; VehicleGlassRequestModel request = new VehicleGlassRequestModel() { MakeId = 1, ProductType = testProductType }; Vehicle vehicle = new Vehicle() { MakeId = 1 }; var glasses = new List <VehicleGlass>() { new VehicleGlass() { Id = 1 }, new VehicleGlass() { Id = 2 }, new VehicleGlass() { Id = 3 } }.AsQueryable(); var vehiclesMock = new Mock <IVehiclesService>(); vehiclesMock.Setup(x => x.GetVehicleByMakeModelAndBodyTypeIds(request.MakeId, null, null)).Returns(vehicle); vehiclesMock.Setup(x => x.GetApplicableGLassesByProductType(vehicle, testProductType)).Returns(glasses); var controller = new ProductsController(null, vehiclesMock.Object, null, null, null, null); var result = controller.FindByVehicleInfo(request); Assert.IsInstanceOfType(result, typeof(OkNegotiatedContentResult <List <VehicleGlassShortResponseModel> >)); var responseContent = ((OkNegotiatedContentResult <List <VehicleGlassShortResponseModel> >)result).Content; Assert.AreEqual(responseContent.ToList().Count, 3); Assert.AreEqual(responseContent[0].Id, 1); Assert.AreEqual(responseContent[1].Id, 2); Assert.AreEqual(responseContent[2].Id, 3); vehiclesMock.VerifyAll(); vehiclesMock.Verify(x => x.GetApplicableGLasses(It.IsAny <Vehicle>()), Times.Never); }
public IHttpActionResult GetPositions(VehicleGlassRequestModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var positions = FindProductsByVehicleInfo(model).Select(x => x.Position).Distinct(); return(Ok(positions)); } catch (Exception e) { HandlExceptionLogging(e, "", _controllerName); return(InternalServerError()); } }
public IHttpActionResult FindByVehicleInfo(VehicleGlassRequestModel requestModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var glasses = FindProductsByVehicleInfo(requestModel); return(Ok(glasses.ToList())); } catch (Exception e) { HandlExceptionLogging(e, "", _controllerName); return(InternalServerError()); } }