示例#1
0
        public async Task <DistanceMatrixGetRes> GetDistanceMatrixForProduct(string FromProductId, string ToProductId, string Units = "metric", string TransitMode = "bus")
        {
            DistanceMatrixGetRes response = new DistanceMatrixGetRes();
            DistanceMatrixGetReq request  = new DistanceMatrixGetReq();

            try
            {
                request.Units        = Units;
                request.Transit_Mode = TransitMode;

                var FromProduct = GetProductDetails(FromProductId);
                var ToProduct   = GetProductDetails(ToProductId);
                if (FromProduct == null)
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "Product not found : " + FromProductId;
                    return(response);
                }
                if (ToProduct == null)
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "Product not found : " + ToProductId;
                    return(response);
                }
                if (FromProduct.Placeholder == true || ToProduct.Placeholder == true)//if any of the From or To Placeholder is true then do not calculate matrix
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "Product not found : " + ToProductId;
                    return(response);
                }
                request.Origins.Latitude       = Convert.ToDouble(FromProduct.Lat);
                request.Origins.Longitude      = Convert.ToDouble(FromProduct.Long);
                request.Destinations.Latitude  = Convert.ToDouble(ToProduct.Lat);
                request.Destinations.Longitude = Convert.ToDouble(ToProduct.Long);

                response = await GetDistanceMatrix(request);

                if (response == null)
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "Error occurred while calling Google service";
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
                response.ResponseStatus.Status       = "Failure";
                response.ResponseStatus.ErrorMessage = ex.Message;
            }
            return(response);
        }
示例#2
0
        public async Task <DistanceMatrixGetRes> GetDistanceMatrixForCity(string FromCityId, string ToCityId, string Units = "metric", string TransitMode = "bus")
        {
            DistanceMatrixGetRes response = new DistanceMatrixGetRes();
            DistanceMatrixGetReq request  = new DistanceMatrixGetReq();

            try
            {
                request.Units        = Units;
                request.Transit_Mode = TransitMode;

                var FromCity = GetCityDetails(FromCityId);
                var ToCity   = GetCityDetails(ToCityId);
                if (FromCity == null)
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "City not found : " + FromCityId;
                    return(response);
                }
                if (ToCity == null)
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "City not found : " + ToCity;
                    return(response);
                }
                request.Origins.Latitude       = Convert.ToDouble(FromCity.Lat);
                request.Origins.Longitude      = Convert.ToDouble(FromCity.Lon);
                request.Destinations.Latitude  = Convert.ToDouble(ToCity.Lat);
                request.Destinations.Longitude = Convert.ToDouble(ToCity.Lon);

                response = await GetDistanceMatrix(request);

                if (response == null)
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "Error occurred while calling Google service";
                }
                else
                {
                    response.OriginCity      = FromCity.ResortName;
                    response.DestinationCity = ToCity.ResortName;
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
                response.ResponseStatus.Status       = "Failure";
                response.ResponseStatus.ErrorMessage = ex.Message;
            }
            return(response);
        }
示例#3
0
        public async Task <DistanceMatrixGetRes> GetDistanceMatrixForProduct([FromBody] DistanceMatrixReq request)
        {
            var response = new DistanceMatrixGetRes();

            try
            {
                if (!(string.IsNullOrEmpty(request.FromId) || string.IsNullOrEmpty(request.ToId)))
                {
                    response = await _genericRepository.GetDistanceMatrixForProduct(request.FromId, request.ToId);
                }
                else
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "Details can not be blank.";
                }
            }
            catch (Exception ex)
            {
                response.ResponseStatus.Status       = "Failure";
                response.ResponseStatus.ErrorMessage = "An Error Occurs :- " + ex.Message;
            }
            return(response);
        }