public async Task <ActivitiesGetRes> GetActivitiesDetailsByQRFID(QuoteGetReq request) { var response = new ActivitiesGetRes(); try { List <ActivitiesProperties> objActivitiesProperties = new List <ActivitiesProperties>(); RoutingGetReq req = new RoutingGetReq { QRFId = request.QRFID }; var resultQuote = _MongoContext.mQuote.AsQueryable().Where(q => q.QRFID == request.QRFID); if (resultQuote != null && resultQuote.Count() > 0) { var resultPosition = _MongoContext.mPosition.AsQueryable().Where(q => q.QRFID == request.QRFID).FirstOrDefault(); List <RoutingInfo> lstRoutingInfo = await _quoteRepository.GetQRFRouteDetailsByQRFID(req); if (resultPosition != null) { var result = resultPosition.Activities; if (result != null && result.ActivitiesDetails != null) { List <string> daysList = new List <string>(); int day = 0; foreach (var item in lstRoutingInfo) { day = item.Days; for (int i = 1; i <= day; i++) { daysList.Add("Day " + (daysList.Count + 1)); } } response.DaysList = daysList; response.ActivitiesDetails = result.ActivitiesDetails.Where(q => q.IsDeleted == false).ToList(); response.ResponseStatus.Status = "Success"; } else { GetNewActivityDetails(lstRoutingInfo, resultQuote.FirstOrDefault(), ref response); } } else { GetNewActivityDetails(lstRoutingInfo, resultQuote.FirstOrDefault(), ref response); } } else { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "QRFID is not exists."; } } catch (Exception ex) { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "Error occured : " + ex.Message.ToString(); } return(response); }
public NewQuoteViewModel GetRoutingDetails(string QRFID) { NewQuoteViewModel model = new NewQuoteViewModel(); try { model.mdlQuoteRoutingViewModel = new QuoteRoutingViewModel(); model.mdlQuoteRoutingViewModel.QRFID = QRFID; SalesQRFMapping salesQRFMapping = new SalesQRFMapping(_configuration); RoutingGetReq routingGetReq = new RoutingGetReq(); routingGetReq.QRFID = QRFID; SalesProviders objSalesProvider = new SalesProviders(_configuration); RoutingGetRes routingGetRes = objSalesProvider.getQRFRoutingDetails(routingGetReq, token).Result; model.mdlQuoteRoutingViewModel = salesQRFMapping.QRFRoutingGet(routingGetRes, token); } catch (Exception ex) { throw; } return(model); }
public async Task <RoutingGetRes> getQRFRoutingDetails(RoutingGetReq routingGetReq, string ticket) { RoutingGetRes routingGetRes = new RoutingGetRes(); routingGetRes = await serviceProxy.PostData(_configuration.GetValue <string>("ServiceRoute:GetQRFRouteDetails"), routingGetReq, typeof(RoutingGetRes), ticket); return(routingGetRes); }
public IActionResult AddNewItineraryDetails(string QRFID, string PositionId, string ItineraryID, string ItineraryDaysId, string Day, string action, string type = "") { ExtraPosition position = new ExtraPosition(); position.Day = Day; position.Type = type; if (type == "opsItinerary") { #region Get dropdown values for Ops Service Itinerary Details OpsBookingItineraryGetReq opsBookingGetReq = new OpsBookingItineraryGetReq() { BookingNumber = QRFID }; OpsBookingItineraryGetRes opsBookingGetRes = operationsProviders.GetItineraryBuilderDetails(opsBookingGetReq, token).Result; position.DayList = opsBookingGetRes.OpsItineraryDetails.Days.Select(x => new Attributes() { Attribute_Id = x, AttributeName = x }).ToList(); position.CityList = opsBookingGetRes.OpsItineraryDetails.Cities.Select(x => new Attributes() { Attribute_Id = x, AttributeName = x }).ToList(); position.CityList.RemoveAll(x => string.IsNullOrWhiteSpace(x.AttributeName)); #endregion #region Get Position Detail OpsBookingItineraryGetReq opsBookingGetReq1 = new OpsBookingItineraryGetReq() { BookingNumber = QRFID, ItineraryDetailId = ItineraryID }; OpsBookingItineraryGetRes opsBookingGetRes2 = operationsProviders.GetItineraryBuilderPositionDetailById(opsBookingGetReq1, token).Result; position.StartTime = opsBookingGetRes2.ItineraryDetails.STARTTIME; position.EndTime = opsBookingGetRes2.ItineraryDetails.ENDTIME; position.ProductName = opsBookingGetRes2.ItineraryDetails.Description; position.City = opsBookingGetRes2.ItineraryDetails.CityName; position.PositionId = opsBookingGetRes2.ItineraryDetails.Position_Id; position.Day = "Day " + opsBookingGetRes2.ItineraryDetails.DayNo; #endregion if (action == "EditDesc") { position.flag = true; } else { position.flag = false; } } else { #region Get Itinerary Details by QRFId itineraryGetReq = new ItineraryGetReq(); itineraryGetReq.QRFID = QRFID; itineraryGetRes = coProviders.GetItinerary(itineraryGetReq, token).Result; #endregion if (action == "Edit") { position.flag = true; } else { position.flag = false; } position.QRFID = QRFID; position.ItineraryID = ItineraryID; position.DayList = GetDays(itineraryGetRes.Itinerary.ItineraryDays); //position.CityList = GetCity(itineraryGetRes.Itinerary.ItineraryDays); RoutingGetReq routingGetReq = new RoutingGetReq(); routingGetReq.QRFID = QRFID; RoutingGetRes routingGetRes = objSalesProvider.getQRFRoutingDetails(routingGetReq, token).Result; position.CityList = GetCity(routingGetRes.RoutingInfo); //position.CityList = routingGetRes.RoutingInfo.Select(x => new Attributes { Attribute_Id = x.FromCityID, // AttributeName = (!string.IsNullOrWhiteSpace(x.FromCityName) && x.FromCityName.Contains(',')) ? x.FromCityName.Split(',')[0] : x.FromCityName }).ToList(); position.ItineraryDaysId = string.IsNullOrEmpty(ItineraryDaysId) ? position.DayList != null && position.DayList.Count > 0 ? position.DayList[0].Attribute_Id : "" : ItineraryDaysId; position.City = ItineraryDaysId; foreach (var k in itineraryGetRes.Itinerary.ItineraryDays) { if (k.ItineraryDaysId == ItineraryDaysId) { foreach (var p in k.ItineraryDescription) { if (p.PositionId == PositionId) { //var city = itineraryGetRes.Itinerary.ItineraryDays.Where(x => x.City == p.City).Select(y => y.ItineraryDaysId).FirstOrDefault(); position.StartTime = p.StartTime; position.EndTime = p.EndTime; position.ProductName = p.ProductName; position.Day = k.ItineraryDaysId; position.City = p.City; position.PositionId = p.PositionId; } } } else { position.Day = ItineraryDaysId; //position.City = ItineraryDaysId; } } } return(PartialView("_AddNewItineraryDetails", position)); }
public async Task <MealsGetRes> GetMealsDetailsByQRFID(QuoteGetReq request) { var response = new MealsGetRes(); List <MealDetails> objMealsProperties = new List <MealDetails>(); RoutingGetReq req = new RoutingGetReq(); req.QRFId = request.QRFID; var resultQuote = _MongoContext.mQuote.AsQueryable().Where(q => q.QRFID == request.QRFID); if (resultQuote != null && resultQuote.Count() > 0) { var resultPosition = _MongoContext.mPosition.AsQueryable().Where(q => q.QRFID == request.QRFID).FirstOrDefault(); List <RoutingInfo> lstRoutingInfo = await _quoteRepository.GetQRFRouteDetailsByQRFID(req); if (resultPosition != null) { var result = resultPosition.Meals; if (result != null && result.Count > 0) { var CityCount = result.GroupBy(m => new { m.CityID }).Select(m => new { m.Key.CityID, DayCount = m.Count() }); if ((lstRoutingInfo != null && lstRoutingInfo.Count > 0) && (CityCount != null && CityCount.Count() > 0)) { result.ToList().FindAll(f => !lstRoutingInfo.Exists(r => r.ToCityID == f.CityID)).ForEach(c => c.IsDeleted = true); foreach (var item in lstRoutingInfo) { int daycount = CityCount.Where(c => c.CityID == item.ToCityID).Select(c => c.DayCount).FirstOrDefault(); if (item.Days > daycount) { // int i = item.Days - daycount; //5-3=2 for (int j = daycount; j < item.Days; j++) { result.Add(new MealDetails { CityID = item.ToCityID, CityName = item.ToCityName, VenueTypes = new List <VenueTypes>() }); } } else if (item.Days < daycount) { int i = daycount - item.Days; //5-3=2 result.Where(r => r.CityID == item.ToCityID).TakeLast(i).ToList().ForEach(m => { m.IsDeleted = true; }); } } TimeSpan timeoutprev; foreach (var m in result) { m.SequenceNo = lstRoutingInfo.Where(r => r.ToCityID == m.CityID).Select(t => t.RouteSequence).FirstOrDefault(); AccomodationInfo objAccomodationInfo = resultPosition.AccomodationInfo.Where(a => a.StartingFrom == m.DayID && a.IsDeleted == false).FirstOrDefault(); if (objAccomodationInfo != null) { MealDetails md = CheckDefaultMealPlan(m, timeoutprev, objAccomodationInfo, out TimeSpan newtimeout); m.Breakfast = md.Breakfast; m.DefaultPlan = md.DefaultPlan; m.Dinner = md.Dinner; m.Lunch = md.Lunch; timeoutprev = newtimeout; } } result = result.Where(m => m.IsDeleted == false).OrderBy(m => m.SequenceNo).ToList(); int k = 1; result.ForEach(m => m.DayID = "Day " + (k++)); response.MealDetails = result; response.ResponseStatus.Status = "Success"; } else if ((lstRoutingInfo != null && lstRoutingInfo.Count > 0) && CityCount.Count() == 0) { mPosition objPosition = AddMealsDetails(objMealsProperties, lstRoutingInfo, request, resultPosition.AccomodationInfo, "i"); result = objPosition.Meals; var resultFlag = await _MongoContext.mPosition.UpdateOneAsync(Builders <mPosition> .Filter.Eq("QRFID", request.QRFID), Builders <mPosition> .Update.Set("Meals", result)); response.ResponseStatus.Status = resultFlag.MatchedCount > 0 ? "Success" : "Failure"; response.ResponseStatus.ErrorMessage = resultFlag.MatchedCount > 0 ? "Saved Successfully." : "Meals Details not updated."; } else { TimeSpan timeoutprev; var agentroute = resultQuote.FirstOrDefault().RoutingInfo.FirstOrDefault(); result.ForEach(m => { m.IsDeleted = true; m.EditDate = agentroute.EditDate; m.EditUser = request.UserName; m.SequenceNo = lstRoutingInfo.Where(r => r.ToCityID == m.CityID).Select(t => t.RouteSequence).FirstOrDefault(); AccomodationInfo objAccomodationInfo = resultPosition.AccomodationInfo.Where(a => a.StartingFrom == m.DayID && a.IsDeleted == false).FirstOrDefault(); if (objAccomodationInfo != null) { MealDetails md = CheckDefaultMealPlan(m, timeoutprev, objAccomodationInfo, out TimeSpan newtimeout); m.Breakfast = md.Breakfast; m.DefaultPlan = md.DefaultPlan; m.Dinner = md.Dinner; m.Lunch = md.Lunch; timeoutprev = newtimeout; } }); UpdateResult resultFlag = await _MongoContext.mPosition.UpdateOneAsync(Builders <mPosition> .Filter.Eq("QRFID", request.QRFID), Builders <mPosition> .Update.Set("Meals", result)); response.ResponseStatus.Status = resultFlag.MatchedCount > 0 ? "Success" : "Failure"; response.ResponseStatus.ErrorMessage = resultFlag.MatchedCount > 0 ? "Saved Successfully." : "Meals Details not updated."; } } else { UpdateResult resultFlag = null; if (lstRoutingInfo != null && lstRoutingInfo.Count > 0) { mPosition objPosition = AddMealsDetails(objMealsProperties, lstRoutingInfo, request, resultPosition.AccomodationInfo, "i"); resultFlag = await _MongoContext.mPosition.UpdateOneAsync(Builders <mPosition> .Filter.Eq("QRFID", request.QRFID), Builders <mPosition> .Update.Set("Meals", objPosition.Meals)); response.MealDetails = objPosition.Meals; response.ResponseStatus.Status = resultFlag.MatchedCount > 0 ? "Success" : "Failure"; response.ResponseStatus.ErrorMessage = resultFlag.MatchedCount > 0 ? "Saved Successfully." : "Meals Details not updated."; } else { response.ResponseStatus.ErrorMessage = "No Routing Details found."; response.ResponseStatus.Status = "Failure"; } } } else { if (lstRoutingInfo != null && lstRoutingInfo.Count > 0) { mPosition objPosition = AddMealsDetails(objMealsProperties, lstRoutingInfo, request, resultPosition.AccomodationInfo, "i"); await _MongoContext.mPosition.InsertOneAsync(objPosition); response.ResponseStatus.Status = "Success"; response.MealDetails = objPosition.Meals; } else { response.ResponseStatus.ErrorMessage = "No Routing Details found."; response.ResponseStatus.Status = "Failure"; } } } else { response.ResponseStatus.Status = "Failure"; response.ResponseStatus.ErrorMessage = "QRFID is not exists."; } return(response); }