public static RouteRequest CastModelToRouteRequest(RouteRequestModel model, int userId) { RouteRequest rr = new RouteRequest(); rr.SrcGAddress = model.SrcGAddress; rr.SrcDetailAddress = model.SrcDetailAddress; rr.SrcLatitude = decimal.Parse(model.SrcLatitude); rr.SrcLongitude = decimal.Parse(model.SrcLongitude); rr.SrcGeo = CreatePoint(model.SrcLatitude, model.SrcLongitude); rr.DstGAddress = model.DstGAddress; rr.DstDetailAddress = model.DstDetailAddress; rr.DstLatitude = decimal.Parse(model.DstLatitude); rr.DstLongitude = decimal.Parse(model.DstLongitude); rr.DstGeo = CreatePoint(model.DstLatitude, model.DstLongitude); rr.AccompanyCount = model.AccompanyCount; rr.RequestCreateTime = DateTime.Now; rr.RequestLastModifyTime = DateTime.Now; rr.RouteRequestType = (int)RouteRequestType.ByWebUser; rr.RouteRequestUserId = userId; rr.RRIsDeleted = false; rr.RRIsConfirmed = (int)BooleanValue.True; rr.IsDrive = model.IsDrive; rr.RecommendPathId = model.RecommendPathId; if (model.IsDrive) { rr.RouteRequestState = (int)RouteRequestState.WaitForPassenger; } else { rr.RouteRequestState = (int)RouteRequestState.WaitForDriver; } rr.SrcDstDistance = getDistance(double.Parse(model.SrcLatitude), double.Parse(model.SrcLongitude), double.Parse(model.DstLatitude), double.Parse(model.DstLongitude)); return(rr); }
public RoutesModel Get(RouteRequestModel request) { var columnModel = new JqGridColumnModel(); var chain = _graph.Behaviors.First(); _columnBuilders .SelectMany(builder => builder.ColumnsFor(chain)) .Each(col => columnModel.AddColumn(new JqGridColumn { hidden = col.IsHidden, hidedlg = col.IsHidden, hideFilter = col.HideFilter, name = col.Name, index = col.Name })); var model = new RoutesModel { ColumnModel = columnModel }; if (request.Column.IsNotEmpty() && request.Value.IsNotEmpty()) { model.Filter = new JsonGridFilter { ColumnName = request.Column, Values = new List <string> { request.Value } }; } return(model); }
public string GetPriceString(RouteRequestModel routeRequestModel) { string pricing = ""; switch (routeRequestModel.PriceOption) { case PricingOptions.Free: pricing = getResource.getString("Free"); break; case PricingOptions.NoMatter: pricing = getResource.getString("NoMatterPrice"); break; case PricingOptions.MinMax: if (routeRequestModel.IsDrive) { pricing = "-"; } else { var pricingPattern = getResource.getMessage("Rial"); var price = (int)routeRequestModel.CostMinMax; var pricingString = price.ToString("N0", new NumberFormatInfo() { NumberGroupSizes = new[] { 3 }, NumberGroupSeparator = "," }); pricing = string.Format(pricingPattern, pricingString); } break; } return(pricing); }
public IHttpActionResult InsertRideRequest(RouteRequestModel model) { try { if (!ModelState.IsValid) { return(Json(_responseProvider.GenerateBadRequestResponse(ModelState))); } //var routeIds = _routemanager.InsertUserRoute(model, int.Parse(User.Identity.GetUserId())); _routemanager.InsertRideRequest(model, int.Parse(User.Identity.GetUserId())); //var confirmMessage = _routemanager.GetRouteConfirmationMessage(int.Parse(User.Identity.GetUserId()), routeIds); /*string commaSepratedRouteIds = ""; * foreach (var routeId in routeIds) * { * commaSepratedRouteIds += routeId + ","; * }*/ //ResponseModel responseModel = new ResponseModel() { Status = HttpStatusCode.OK.ToString(), StatusCode = HttpStatusCode.OK, Count = 1, Type = ResponseTypes.ConfirmMessage.ToString(), Messages = new List<string>() { commaSepratedRouteIds, confirmMessage } }; ResponseModel responseModel = _responseProvider.GenerateOKResponse(); return(Json(responseModel)); } catch (Exception e) { _logmanager.Log(Tag, "InsertUserRoute", e.Message); } return(Json(_responseProvider.GenerateUnknownErrorResponse())); }
public RouteResponseModel ValidateTiming(RouteRequestModel model, string token) { var client = new RestClient(ApiUrl); var request = new RestRequest("ValidateTiming", Method.POST); request.AddHeader("Authorization", "Bearer " + token); request.AddParameter("TimingOption", model.TimingOption); request.AddParameter("TheDate", model.TheDate); request.AddParameter("TheTime", model.TheTime); request.AddParameter("SatDatetime", model.SatDatetime); request.AddParameter("SunDatetime", model.SunDatetime); request.AddParameter("MonDatetime", model.MonDatetime); request.AddParameter("TueDatetime", model.TueDatetime); request.AddParameter("WedDatetime", model.WedDatetime); request.AddParameter("ThuDatetime", model.ThuDatetime); request.AddParameter("FriDatetime", model.FriDatetime); IRestResponse response = client.Execute(request); JavaScriptSerializer js = new JavaScriptSerializer(); RouteResponseModel routeResponseModel = new RouteResponseModel(); if (!string.IsNullOrWhiteSpace(response.Content)) { routeResponseModel = js.Deserialize <RouteResponseModel>(response.Content); } return(routeResponseModel); }
public void should_build_route_model_with_filters() { var model = new RoutesModel(); MockFor <IModelBuilder <RoutesModel> >() .Expect(b => b.Build()) .Return(model); var request = new RouteRequestModel { Column = "test", Value = "123" }; var filter = ClassUnderTest .Execute(request) .Filter; filter .ColumnName .ShouldEqual(request.Column); filter .Values .ShouldContain(request.Value); }
public static RouteRequestModel CastReturnEventToRouteRequest(EventModel eventModel, RouteEventModel model) { var routeRequest = new RouteRequestModel(); routeRequest.SrcLatitude = eventModel.Latitude; routeRequest.SrcLongitude = eventModel.Longitude; routeRequest.SrcGAddress = eventModel.Name; routeRequest.DstLatitude = model.DstLatitude; routeRequest.DstLongitude = model.DstLongitude; routeRequest.DstGAddress = model.DstGAddress; routeRequest.IsDrive = model.IsDrive; routeRequest.PriceOption = PricingOptions.MinMax; routeRequest.TimingOption = TimingOptions.InDateAndTime; routeRequest.TheDate = eventModel.EventEndTime; routeRequest.TheTime = eventModel.EventEndTime; //kesafat karie routeRequest.CostMinMax = model.CostMinMax; if (model.IsDrive) { routeRequest.RouteRequestState = (int)RouteRequestState.WaitForPassenger; } else { routeRequest.RouteRequestState = (int)RouteRequestState.WaitForDriver; } return(routeRequest); }
public static RouteRequestModel AddRouteRequestTimingModel(RouteRequestModel request, List <vwRRTiming> timingList) { var timings = timingList.Where(y => y.RouteRequestId == request.RouteRequestId); foreach (var timing in timings) { switch (timing.RRTimingOption) { case (int)TimingOptions.Today: request.TimingOption = TimingOptions.Today; request.TheTime = DateTime.Today.Add((TimeSpan)timing.RRTheTime); break; case (int)TimingOptions.InDateAndTime: request.TimingOption = TimingOptions.InDateAndTime; request.TheTime = DateTime.Today.Add((TimeSpan)timing.RRTheTime); request.TheDate = (DateTime)timing.RRTheDate; break; case (int)TimingOptions.Weekly: request.TimingOption = TimingOptions.Weekly; switch (timing.RRDayofWeek) { case (int)WeekDay.Sat: request.SatDatetime = DateTime.Today.Add((TimeSpan)timing.RRTheTime); break; case (int)WeekDay.Sun: request.SunDatetime = DateTime.Today.Add((TimeSpan)timing.RRTheTime); break; case (int)WeekDay.Mon: request.MonDatetime = DateTime.Today.Add((TimeSpan)timing.RRTheTime); break; case (int)WeekDay.Tue: request.TueDatetime = DateTime.Today.Add((TimeSpan)timing.RRTheTime); break; case (int)WeekDay.Wed: request.WedDatetime = DateTime.Today.Add((TimeSpan)timing.RRTheTime); break; case (int)WeekDay.Thu: request.ThuDatetime = DateTime.Today.Add((TimeSpan)timing.RRTheTime); break; case (int)WeekDay.Fri: request.FriDatetime = DateTime.Today.Add((TimeSpan)timing.RRTheTime); break; } break; } } return(request); }
public async Task <IActionResult> PostRoute([FromBody] RouteRequestModel route) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(Ok(await _route.FindRoute(route))); }
public IHttpActionResult Create(RouteRequestModel route) { if (!this.ModelState.IsValid) { return(this.BadRequest(this.ModelState)); } var routeToAdd = Mapper.Map <Route>(route); var routeId = this.routesServices.AddRoute(routeToAdd); return(this.Ok(routeId)); }
public IHttpActionResult GetTripProfile(RouteRequestModel model) { try { //var q=_routemanager.GetTripProfile(model.RouteRequestId, int.Parse(User.Identity.GetUserId())); //return Json(q); } catch (Exception e) { _logmanager.Log(Tag, "GetTripProfile", e.Message); } return(Json(_responseProvider.GenerateUnknownErrorResponse())); }
public IHttpActionResult GetUserSuggestRoute(RouteRequestModel model) { try { var res = _routemanager.GetUserSuggestRouteByRouteId(model.RouteRequestId); return(Json(_responseProvider.GenerateRouteResponse(res))); } catch (Exception e) { _logmanager.Log(Tag, "GetUserSuggestRoute", e.Message); } return(Json(_responseProvider.GenerateUnknownErrorResponse())); }
public IHttpActionResult ShareRoute(RouteRequestModel model) { try { var res = _routemanager.ShareRoute(int.Parse(User.Identity.GetUserId()), model.RouteRequestId); return(Json(_responseProvider.GenerateResponse(res, "ShareRoute"))); //return Json(res); } catch (Exception e) { _logmanager.Log(Tag, "ShareRoute", e.Message); } return(Json(_responseProvider.GenerateUnknownErrorResponse())); }
public ActionResult RegisterRoute(RouteRequestModel routeModel) { if (ModelState.IsValid) { var token = GetUserToken(); if (string.IsNullOrEmpty(token)) { return(Json(new { status = "UnAuthorized" }, JsonRequestBehavior.AllowGet)); } var res = _routeManager.SubmitNewRoute(routeModel, token); return(Json(res, JsonRequestBehavior.AllowGet)); } return(Json(new { status = "WrongInfo" }, JsonRequestBehavior.AllowGet)); }
public IHttpActionResult DeleteRoute(RouteRequestModel model) { try { var res = _routemanager.DeleteRoute(int.Parse(User.Identity.GetUserId()), model.RouteRequestId); return(Json(_responseProvider.GenerateResponse(new List <string> { res }, "DeleteRoute"))); } catch (Exception e) { _logmanager.Log(Tag, "DeleteRoute", e.Message); } return(Json(_responseProvider.GenerateUnknownErrorResponse())); }
public static RouteResponseModel CastRouteRequestToRouteResponse(RouteRequestModel requestModel) { var routeResponse = new RouteResponseModel(); routeResponse.RouteId = requestModel.RouteRequestId; routeResponse.SrcAddress = (requestModel.SrcGAddress ?? "") + (requestModel.SrcDetailAddress != null? " - " + requestModel.SrcDetailAddress : ""); routeResponse.DstAddress = (requestModel.DstGAddress ?? "") + (requestModel.DstDetailAddress != null ? " - " + requestModel.DstDetailAddress :""); routeResponse.SrcLatitude = requestModel.SrcLatitude; routeResponse.SrcLongitude = requestModel.SrcLongitude; routeResponse.DstLatitude = requestModel.DstLatitude; routeResponse.DstLongitude = requestModel.DstLongitude; routeResponse.AccompanyCount = requestModel.AccompanyCount; routeResponse.IsDrive = requestModel.IsDrive; routeResponse.RouteRequestState = getRouteState(requestModel.RouteRequestState); if (requestModel.SatDatetime == null) { } return(routeResponse); }
public static RRPricing CastModelToRrPricing(RouteRequestModel model) { var rrp = new RRPricing(); switch (model.PriceOption) { case PricingOptions.Free: rrp = new RRPricing() { //RouteRequestId = routeRequestId, RRPricingIsDeleted = false, RRPricingOption = (int)PricingOptions.Free, RRPricingCreateTime = DateTime.Now, RRPricingMinMax = 0 }; break; case PricingOptions.MinMax: rrp = new RRPricing() { // RouteRequestId = routeRequestId, RRPricingIsDeleted = false, RRPricingOption = (int)PricingOptions.MinMax, RRPricingCreateTime = DateTime.Now, RRPricingMinMax = model.CostMinMax }; break; case PricingOptions.NoMatter: rrp = new RRPricing() { //RouteRequestId = routeRequestId, RRPricingIsDeleted = false, RRPricingOption = (int)PricingOptions.NoMatter, RRPricingCreateTime = DateTime.Now, RRPricingMinMax = 0 }; break; } return(rrp); }
public static List <RouteRequestModel> CastToRouteRequestModelList(List <vwRouteRequest> vwList) { var list = new List <RouteRequestModel>(); foreach (var request in vwList) { //populate RouteRequestModel Object Mapper.CreateMap <vwRouteRequest, RouteRequestModel>(); RouteRequestModel routeRequestModel = Mapper.Map <vwRouteRequest, RouteRequestModel>(request); //routeRequestModel.RouteUId = request.RouteRequestUId; routeRequestModel.PriceOption = (PricingOptions)request.RRPricingOption; routeRequestModel.CostMinMax = request.RRPricingMinMax != null ? decimal.Parse(request.RRPricingMinMax.ToString()) : 0; list.Add(routeRequestModel); } return(list); }
public RouteResponseModel SubmitNewRoute(RouteRequestModel model, string clientToken) { var client = new RestClient(ApiUrl); var request = new RestRequest("InsertUserRoute", Method.POST); request.AddHeader("Authorization", "Bearer " + clientToken); request.AddParameter("SrcGAddress", model.SrcGAddress); request.AddParameter("SrcDetailAddress", model.SrcDetailAddress); request.AddParameter("SrcLatitude", model.SrcLatitude); request.AddParameter("SrcLongitude", model.SrcLongitude); request.AddParameter("DstGAddress", model.DstGAddress); request.AddParameter("DstDetailAddress", model.DstDetailAddress); request.AddParameter("DstLatitude", model.DstLatitude); request.AddParameter("DstLongitude", model.DstLongitude); request.AddParameter("AccompanyCount", model.AccompanyCount); request.AddParameter("TimingOption", model.TimingOption); request.AddParameter("PriceOption", model.PayOption); request.AddParameter("TheDate", model.TheDate); request.AddParameter("TheTime", model.TheTime); request.AddParameter("SatDatetime", model.SatDatetime); request.AddParameter("SunDatetime", model.SunDatetime); request.AddParameter("MonDatetime", model.MonDatetime); request.AddParameter("TueDatetime", model.TueDatetime); request.AddParameter("WedDatetime", model.WedDatetime); request.AddParameter("ThuDatetime", model.ThuDatetime); request.AddParameter("FriDatetime", model.FriDatetime); request.AddParameter("CostMinMax", model.CostMinMax); request.AddParameter("IsDrive", model.IsDrive); IRestResponse response = client.Execute(request); JavaScriptSerializer js = new JavaScriptSerializer(); RouteResponseModel routeResponseModel = new RouteResponseModel(); if (!string.IsNullOrWhiteSpace(response.Content)) { routeResponseModel = js.Deserialize <RouteResponseModel>(response.Content); } return(routeResponseModel); }
public RoutesModel Get(RouteRequestModel request) { var columnModel = new JqGridColumnModel(); var chain = _graph.Behaviors.First(); _columnBuilders .SelectMany(builder => builder.ColumnsFor(chain)) .Each(col => columnModel.AddColumn(new JqGridColumn { hidden = col.IsHidden, hidedlg = col.IsHidden, hideFilter = col.HideFilter, name = col.Name, index = col.Name })); var model = new RoutesModel { ColumnModel = columnModel }; if(request.Column.IsNotEmpty() && request.Value.IsNotEmpty()) { model.Filter = new JsonGridFilter {ColumnName = request.Column, Values = new List<string> {request.Value}}; } return model; }
public async Task <List <RouteResponseModel> > FindRoute(RouteRequestModel request) { //If we dont have data for Air / Ship, use External API to get them if (!_context.Routes.Any(r => r.Transportation == (int)Transportation.Airborne)) { await _airProvider.GetRoutes(); } if (!_context.Routes.Any(r => r.Transportation == (int)Transportation.Ship)) { await _shipProvider.GetRoutes(); } var requestModel = new List <PublicRouteRequestModel>() { new PublicRouteRequestModel { goods_type = request.PackageType, height = request.PackageSizes.Height, length = request.PackageSizes.Length, weight = request.PackageSizes.Weight, width = request.PackageSizes.Width } }; //Get all routes from database var airPrice = await _airProvider.GetPrice(requestModel); var shipPrice = 0; // await _shipProvider.GetPrice(requestModel); var routeData = await _context.Routes.ToListAsync(); if (airPrice <= 0) { routeData = routeData.Where(r => r.Transportation != (int)Transportation.Airborne).ToList(); } if (shipPrice <= 0) { routeData = routeData.Where(r => r.Transportation != (int)Transportation.Ship).ToList(); } //Parse them to Route Model var routes = new List <RouteModel>(); var config = await _context.RouteConfigurations.FirstAsync(rg => rg.Key == "TimeBetweenTwoSegments"); var configPrice = await _context.RouteConfigurations.FirstAsync(rg => rg.Key == "PriceBetweenTwoSegments"); foreach (var item in routeData) { routes.Add(new RouteModel { Id = item.Id, Destination = item.Destination, Start = item.Start, NumberOfSegments = item.NumberOfSegments, TotalHours = item.Transportation == (int)Transportation.Car ? item.NumberOfSegments * Int32.Parse(config.Value) : item.TotalTime, Transportation = (Transportation)item.Transportation, Price = item.Transportation == (int)Transportation.Car ? item.NumberOfSegments * Int32.Parse(configPrice.Value) : item.Transportation == (int)Transportation.Ship ? item.NumberOfSegments * shipPrice : item.NumberOfSegments * airPrice, }); } var nodes = routes.Parse(request.TransportType); Solution solution = new Solution(); solution.Start = nodes.GetNode(request.Start); var foundRoutes = solution.GetShortestPathDijkstra(request.Destination, request.TransportType); var result = new List <RouteResponseModel>(); for (int i = 0; i < foundRoutes.Count - 1; i++) { var edges = foundRoutes[i].Connections.Where(c => c.ConnectedNode.Name == foundRoutes[i + 1].Name).ToList(); var edge = request.TransportType == TransportType.Fastest ? edges.OrderBy(e => e.Time).FirstOrDefault() : edges.OrderBy(e => e.Price).FirstOrDefault(); if (edge == null) { continue; } result.Add(new RouteResponseModel { Start = foundRoutes[i].Name, Destination = foundRoutes[i + 1].Name, Price = edge.Price, Time = edge.Time, Transportation = edge.Transportation.ToString() }); } return(result); }
public IEnumerable <RouteResponse> GetRoutes([Required] string origin, [Required] string destiny, [FromHeader] RouteRequestModel entity) { if (entity == null) { throw new HttpRequestException(_errorHandler.GetErrorMessage(ErrorMessagesEnum.EntityNull)); } if (!ModelState.IsValid) { throw new HttpRequestException(string.Format(_errorHandler.GetErrorMessage(ErrorMessagesEnum.ModelValidation), ModelState.Values.First().Errors.First().ErrorMessage)); } if (entity.Limit == 0) { return(_service.Get(origin, destiny)); } else { var routeOptions = new RouteOptionsModel(entity.Limit, entity.OrderByParams, entity.OrderByDescending); return(_service.Get(origin, destiny, routeOptions)); } }
public IHttpActionResult GetUserScoresByRoute(RouteRequestModel model) { var res = _routemanager.GetUserScoresByRouteId(int.Parse(User.Identity.GetUserId()), model.RouteRequestId); return(Json(res)); }
public static IList <RRTiming> CastModelToRrTiming(RouteRequestModel model) { IList <RRTiming> rrt = new List <RRTiming>(); int dayOfWeek = 0; dayOfWeek = GetDayOfWeek(model.TheDate.DayOfWeek); switch (model.TimingOption) { case TimingOptions.Now: rrt.Add(new RRTiming() { RRTheTime = DateTime.Now.TimeOfDay, RRDayofWeek = dayOfWeek, RRTheDate = DateTime.Now.Date, //RouteRequestId = routeRequestId, RRTimingCreateTime = DateTime.Now, RRTimingOption = (int)TimingOptions.Now, RRTimingIsDeleted = false }); break; case TimingOptions.Today: rrt.Add(new RRTiming() { RRTheTime = model.TheTime.TimeOfDay, RRDayofWeek = dayOfWeek, RRTheDate = DateTime.Now.Date, //RouteRequestId = routeRequestId, RRTimingCreateTime = DateTime.Now, RRTimingOption = (int)TimingOptions.Today, RRTimingIsDeleted = false }); break; case TimingOptions.InDateAndTime: rrt.Add(new RRTiming() { RRTheTime = model.TheTime.TimeOfDay, RRDayofWeek = dayOfWeek, RRTheDate = model.TheDate, //RouteRequestId = routeRequestId, RRTimingCreateTime = DateTime.Now, RRTimingOption = (int)TimingOptions.InDateAndTime, RRTimingIsDeleted = false }); break; case TimingOptions.Weekly: if (model.SatDatetime > DateTime.MinValue) { rrt.Add(new RRTiming() { RRDayofWeek = (int)WeekDay.Sat, RRTheTime = model.SatDatetime.TimeOfDay, //RouteRequestId = routeRequestId, RRTimingCreateTime = DateTime.Now, RRTimingOption = (int)TimingOptions.Weekly, RRTimingIsDeleted = false }); } if (model.SunDatetime > DateTime.MinValue) { rrt.Add(new RRTiming() { RRDayofWeek = (int)WeekDay.Sun, RRTheTime = model.SunDatetime.TimeOfDay, //RouteRequestId = routeRequestId, RRTimingCreateTime = DateTime.Now, RRTimingOption = (int)TimingOptions.Weekly, RRTimingIsDeleted = false }); } if (model.MonDatetime > DateTime.MinValue) { rrt.Add(new RRTiming() { RRDayofWeek = (int)WeekDay.Mon, RRTheTime = model.MonDatetime.TimeOfDay, //RouteRequestId = routeRequestId, RRTimingCreateTime = DateTime.Now, RRTimingOption = (int)TimingOptions.Weekly, RRTimingIsDeleted = false }); } if (model.TueDatetime > DateTime.MinValue) { rrt.Add(new RRTiming() { RRDayofWeek = (int)WeekDay.Tue, RRTheTime = model.TueDatetime.TimeOfDay, //RouteRequestId = routeRequestId, RRTimingCreateTime = DateTime.Now, RRTimingOption = (int)TimingOptions.Weekly, RRTimingIsDeleted = false }); } if (model.WedDatetime > DateTime.MinValue) { rrt.Add(new RRTiming() { RRDayofWeek = (int)WeekDay.Wed, RRTheTime = model.WedDatetime.TimeOfDay, //RouteRequestId = routeRequestId, RRTimingCreateTime = DateTime.Now, RRTimingOption = (int)TimingOptions.Weekly, RRTimingIsDeleted = false }); } if (model.ThuDatetime > DateTime.MinValue) { rrt.Add(new RRTiming() { RRDayofWeek = (int)WeekDay.Thu, RRTheTime = model.ThuDatetime.TimeOfDay, //RouteRequestId = routeRequestId, RRTimingCreateTime = DateTime.Now, RRTimingOption = (int)TimingOptions.Weekly, RRTimingIsDeleted = false }); } if (model.FriDatetime > DateTime.MinValue) { rrt.Add(new RRTiming() { RRDayofWeek = (int)WeekDay.Fri, RRTheTime = model.FriDatetime.TimeOfDay, //RouteRequestId = routeRequestId, RRTimingCreateTime = DateTime.Now, RRTimingOption = (int)TimingOptions.Weekly, RRTimingIsDeleted = false }); } break; } return(rrt); }