예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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()));
        }
예제 #5
0
        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);
        }
예제 #7
0
        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);
        }
예제 #8
0
        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);
        }
예제 #9
0
        public async Task <IActionResult> PostRoute([FromBody] RouteRequestModel route)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            return(Ok(await _route.FindRoute(route)));
        }
예제 #10
0
        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));
        }
예제 #11
0
 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()));
 }
예제 #12
0
        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()));
        }
예제 #13
0
 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()));
 }
예제 #14
0
 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));
 }
예제 #15
0
 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()));
 }
예제 #16
0
        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);
        }
예제 #17
0
        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);
        }
예제 #18
0
        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);
        }
예제 #19
0
        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);
        }
예제 #20
0
        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;
        }
예제 #21
0
        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));
            }
        }
예제 #23
0
        public IHttpActionResult GetUserScoresByRoute(RouteRequestModel model)
        {
            var res = _routemanager.GetUserScoresByRouteId(int.Parse(User.Identity.GetUserId()), model.RouteRequestId);

            return(Json(res));
        }
예제 #24
0
        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);
        }