private List <GroupWithDateAttractions> GroupOrderAttractions(List <GetOrderOfAttractionVisit> listGetOrderOfAttractionVisit, int countryId) { var listGroupWithDateAttractions = new List <GroupWithDateAttractions>(); var groupDates = listGetOrderOfAttractionVisit.GroupBy(_date => Convert.ToDateTime(_date.DateAndTime).ToString("MM/dd/yy")); List <GetOrderOfAttractionVisit> attractionListResult = listGetOrderOfAttractionVisit.OrderBy(x => Convert.ToDateTime(x.DateAndTime)).ToList(); //Driving Steps List <DrivingSteps> listdrivingSteps = new List <DrivingSteps>(); DrivingSteps drivingSteps = new DrivingSteps(); foreach (var _dates in groupDates) { var groupWithDateAttractions = new GroupWithDateAttractions(); groupWithDateAttractions.GroupDate = _dates.Key; listGetOrderOfAttractionVisit = new List <GetOrderOfAttractionVisit>(); foreach (var internalObjects in attractionListResult.Where( filter => Convert.ToDateTime(filter.DateAndTime).ToString("MM/dd/yy") == _dates.Key).OrderBy(x => Convert.ToDateTime(x.DateAndTime))) { var getOrderOfAttractionVisit = new GetOrderOfAttractionVisit(); getOrderOfAttractionVisit.DateAndTime = Convert.ToDateTime(internalObjects.DateAndTime).ToString("HH:mm"); getOrderOfAttractionVisit.DestinationAttractionId = internalObjects.DestinationAttractionId; getOrderOfAttractionVisit.DestinationAttractionName = internalObjects.DestinationAttractionName; getOrderOfAttractionVisit.DestinationIcon = internalObjects.DestinationIcon; getOrderOfAttractionVisit.Distance = internalObjects.Distance; getOrderOfAttractionVisit.ReachTime = Convert.ToDateTime(internalObjects.ReachTime) .ToString("HH:mm"); getOrderOfAttractionVisit.SourceAttractionId = internalObjects.SourceAttractionId; getOrderOfAttractionVisit.SourceAttractionName = internalObjects.SourceAttractionName; getOrderOfAttractionVisit.SourceIcon = internalObjects.SourceIcon; getOrderOfAttractionVisit.TimeRequiredToView = Convert.ToDateTime(internalObjects.TimeRequiredToView).ToString("HH:mm"); getOrderOfAttractionVisit.TravelModeId = internalObjects.TravelModeId; getOrderOfAttractionVisit.TravelTimeSeconds = internalObjects.TravelTime; getOrderOfAttractionVisit.TravelTime = TimeSpan.FromSeconds(Convert.ToInt32(internalObjects.TravelTime)).Hours + ":" + TimeSpan .FromSeconds(Convert.ToInt32(internalObjects.TravelTime)).Minutes; getOrderOfAttractionVisit.TravelType = internalObjects.TravelType; getOrderOfAttractionVisit.EventEndTime = Convert.ToDateTime(internalObjects.EventEndTime).ToString("HH:mm"); getOrderOfAttractionVisit.RecordCount = internalObjects.RecordCount; getOrderOfAttractionVisit.IsLunchDinnerBreakTime = internalObjects.IsLunchDinnerBreakTime; getOrderOfAttractionVisit.IsDistanceCalculationMissing = internalObjects.IsDistanceCalculationMissing; getOrderOfAttractionVisit.SourceLatitude = internalObjects.SourceLatitude; getOrderOfAttractionVisit.SourceLongitude = internalObjects.SourceLongitude; getOrderOfAttractionVisit.DestinationLatitude = internalObjects.DestinationLatitude; getOrderOfAttractionVisit.DestinationLongitude = internalObjects.DestinationLongitude; getOrderOfAttractionVisit.SourceSearchText = internalObjects.SourceSearchText; getOrderOfAttractionVisit.DestinationSearchText = internalObjects.DestinationSearchText; getOrderOfAttractionVisit.SourcePhotoUrl = internalObjects.SourcePhotoUrl; getOrderOfAttractionVisit.DestinationPhotoUrl = internalObjects.DestinationPhotoUrl; getOrderOfAttractionVisit.BreakInformationId = internalObjects.BreakInformationId; getOrderOfAttractionVisit.IsNeedDrivningBreak = internalObjects.IsNeedDrivningBreak; getOrderOfAttractionVisit.AttractionTravelTimeDistanceId = internalObjects.AttractionTravelTimeDistanceId; listGetOrderOfAttractionVisit.Add(getOrderOfAttractionVisit); } //Getting the driving steps listdrivingSteps = new List <DrivingSteps>(); if (countryId > 0) { foreach (var attractions in _dates.Where(x => x.IsNeedDrivningBreak)) { drivingSteps = new DrivingSteps(); drivingSteps.RecordCount = attractions.RecordCount; drivingSteps.DirectionSteps = userInfo.User_GetDirectionsSteps(countryId, attractions.AttractionTravelTimeDistanceId, attractions.DateAndTime); listdrivingSteps.Add(drivingSteps); } } groupWithDateAttractions.DrivingSteps = listdrivingSteps; groupWithDateAttractions.ListGetOrderOfAttractionVisit = listGetOrderOfAttractionVisit; listGroupWithDateAttractions.Add(groupWithDateAttractions); } return(listGroupWithDateAttractions); }
public JsonResult Public_GetOrderOfAttractionVisit(int TravelModeId, int SourceAttractionID, int DestinationAttractionID, string AttractionID, string StartDate, string StartTime) { List <userTable_OnlyId> attractionList = new List <userTable_OnlyId>(); if (AttractionID != null && AttractionID.Count() > 0) { attractionList = AttractionID.Split(',').Select(x => new userTable_OnlyId { ID = Convert.ToInt32(x) } ).ToList(); } List <GetOrderOfAttractionVisit> _ListGetOrderOfAttractionVisit = _IGetListValues.Public_GetOrderOfAttractionVisit(TravelModeId, SourceAttractionID, DestinationAttractionID, attractionList, StartDate, StartTime); List <GroupWithDateAttractions> _listGroupWithDateAttractions = new List <GroupWithDateAttractions>(); GroupWithDateAttractions _groupWithDateAttractions = new GroupWithDateAttractions(); GetOrderOfAttractionVisit _getOrderOfAttractionVisit = new GetOrderOfAttractionVisit(); var groupDates = _ListGetOrderOfAttractionVisit.GroupBy(_date => Convert.ToDateTime(_date.DateAndTime).ToString("d")); List <GetOrderOfAttractionVisit> attractionListResult = _ListGetOrderOfAttractionVisit; foreach (var _dates in groupDates) { _groupWithDateAttractions = new GroupWithDateAttractions(); _groupWithDateAttractions.GroupDate = _dates.Key; _ListGetOrderOfAttractionVisit = new List <GetOrderOfAttractionVisit>(); foreach (var _internalObjects in attractionListResult.Where(_filter => Convert.ToDateTime(_filter.DateAndTime).ToString("d") == _dates.Key)) { _getOrderOfAttractionVisit = new GetOrderOfAttractionVisit(); _getOrderOfAttractionVisit.DateAndTime = Convert.ToDateTime(_internalObjects.DateAndTime).ToString("HH:MM"); _getOrderOfAttractionVisit.DestinationAttractionId = _internalObjects.DestinationAttractionId; _getOrderOfAttractionVisit.DestinationAttractionName = _internalObjects.DestinationAttractionName; _getOrderOfAttractionVisit.DestinationIcon = _internalObjects.DestinationIcon; _getOrderOfAttractionVisit.Distance = _internalObjects.Distance; _getOrderOfAttractionVisit.ReachTime = _internalObjects.ReachTime; _getOrderOfAttractionVisit.SourceAttractionId = _internalObjects.SourceAttractionId; _getOrderOfAttractionVisit.SourceAttractionName = _internalObjects.SourceAttractionName; _getOrderOfAttractionVisit.SourceIcon = _internalObjects.SourceIcon; _getOrderOfAttractionVisit.TimeRequiredToView = _internalObjects.TimeRequiredToView; _getOrderOfAttractionVisit.TravelModeId = _internalObjects.TravelModeId; _getOrderOfAttractionVisit.TravelTime = _internalObjects.TravelTime; _getOrderOfAttractionVisit.TravelType = _internalObjects.TravelType; _getOrderOfAttractionVisit.ViewTime = _internalObjects.ViewTime; _ListGetOrderOfAttractionVisit.Add(_getOrderOfAttractionVisit); } _groupWithDateAttractions.ListGetOrderOfAttractionVisit = _ListGetOrderOfAttractionVisit; _listGroupWithDateAttractions.Add(_groupWithDateAttractions); } if (_listGroupWithDateAttractions.Count() > 0) { var jsonResults = Json(_listGroupWithDateAttractions, JsonRequestBehavior.AllowGet); jsonResults.MaxJsonLength = int.MaxValue; return(jsonResults); } else { return(Json(new List <GroupWithDateAttractions>(), JsonRequestBehavior.AllowGet)); } }