Exemplo n.º 1
0
        public ActionResult ChooseProduct(int itemRecommendedProductId, int userRecommendedProductId, int orderId, int selectedProductId)
        {
            var result = new RecommendationResult();

            result.OrderId                  = orderId;
            result.SelectedProductId        = selectedProductId;
            result.ItemRecommendedProductId = itemRecommendedProductId;
            result.UserRecommendedProductId = userRecommendedProductId;

            if (!db.RecommendationResults.ToList().Exists(x => x.OrderId == orderId))
            {
                db.RecommendationResults.Add(result);
                db.SaveChanges();
            }

            return(View("CompleteFinished", orderId));
        }
        public async Task <RecommendationResult> GetRecommendationRoutesToVehicleObjectsAsync()
        {
            var routes = await GetRouteFromCppAsync();

            var directedDistance = await new HttpRequestMapRepository(_httpClient, null).GetDirectedDistanceAsync((UserRequirementFromCSharp)_userRequirement);

            return(await Task.Run(() =>
            {
                RecommendationResult recommendationResult = new RecommendationResult();
                recommendationResult.Remark = _remark;
                recommendationResult.Result = new List <List <object> >();
                for (int i = 0; i < routes.Count(); i++)
                {
                    int completedRouteSize = routes.ElementAt(i).Count();
                    recommendationResult.Result.Add(new List <object>(completedRouteSize));
                    for (int j = 0; j < completedRouteSize; j++)
                    {
                        var oneRoute = routes.ElementAt(i).ElementAt(j);
                        string vehicleType = Marshal.PtrToStringAnsi(oneRoute.vehicle_type);
                        switch (vehicleType)
                        {
                        case "HSRC_TYPE":
                            recommendationResult.Result[i].Add(new HSRC(oneRoute));
                            break;

                        case "AIRPLANE_TYPE":
                            recommendationResult.Result[i].Add(new AirPlane(oneRoute, directedDistance));
                            break;

                        default:
                            new Vehicle(vehicleType);    //用来抛出异常
                            break;
                        }
                    }
                }

                return recommendationResult;
            }));
        }