Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
        }
Пример #5
0
        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);
        }