Пример #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 async Task <ResponseStatus> UpdateValidForAcceptance(QuoteGetReq quoteGetReq, string ticket)
        {
            ResponseStatus response = new ResponseStatus();

            response = await serviceProxy.PostData(_configuration.GetValue <string>("ServiceQuote:UpdateValidForAcceptance"), quoteGetReq, typeof(ResponseStatus), ticket);

            return(response);
        }
Пример #3
0
        public async Task <MealsGetRes> GetMealsDetailsByQRFID(QuoteGetReq objQuoteGetReq, string ticket)
        {
            MealsGetRes objMealsGetRes = new MealsGetRes();

            objMealsGetRes = await serviceProxy.PostData(_configuration.GetValue <string>("ServiceMeals:GetMealsDetailsByQRFID"), objQuoteGetReq, typeof(MealsGetRes), ticket);

            return(objMealsGetRes);
        }
Пример #4
0
        public async Task <CommonResponse> CheckProposalGenerated(QuoteGetReq reqQuoteGetReq, string ticket)
        {
            CommonResponse response = new CommonResponse();

            response = await serviceProxy.PostData(_configuration.GetValue <string>("AgentApproval:CheckProposalGenerated"), reqQuoteGetReq, typeof(CommonResponse), ticket);

            return(response);
        }
Пример #5
0
        public ResponseStatus UpdateValidForAcceptance(IConfiguration _configuration, string token, string QRFID, string UserName)
        {
            QuoteGetReq objQuoteGetReq = new QuoteGetReq()
            {
                QRFID = QRFID, UserName = UserName
            };
            ResponseStatus objResponseStatus = coProviders.UpdateValidForAcceptance(objQuoteGetReq, token).Result;

            return(objResponseStatus);
        }
Пример #6
0
        public CommonResponse CheckProposalGenerated(QuoteGetReq request, string token)
        {
            CommonResponse objCommonResponse = new CommonResponse();

            try
            {
                objCommonResponse = agentApprovalProviders.CheckProposalGenerated(request, token).Result;
                objCommonResponse = objCommonResponse != null ? objCommonResponse : new CommonResponse();
            }
            catch (Exception ex)
            {
                objCommonResponse.ResponseStatus.Status       = "Failure";
                objCommonResponse.ResponseStatus.ErrorMessage = "An Error Occurs:- " + ex.Message;
            }
            return(objCommonResponse);
        }
Пример #7
0
        public IActionResult AcceptWithoutProposal(QuoteGetReq model)
        {
            EmailGetReq emailGetReq = new EmailGetReq()
            {
                QrfId        = model.QRFID,
                UserName     = ckUserName,
                UserEmail    = ckUserEmailId,
                PlacerUserId = ckLoginUser_Id
            };
            CommonResponse objCommonResponse = agentApprovalMapping.AcceptWithoutProposal(emailGetReq, token);

            return(Json(new
            {
                status = objCommonResponse.ResponseStatus.Status,
                msg = objCommonResponse.ResponseStatus.ErrorMessage
            }));
        }
Пример #8
0
        public IActionResult CheckProposalGenerated(QuoteGetReq model)
        {
            CommonResponse objCommonResponse = new CommonResponse()
            {
                ResponseStatus = new ResponseStatus()
            };

            try
            {
                objCommonResponse = agentApprovalMapping.CheckProposalGenerated(model, token);
            }
            catch (System.Exception ex)
            {
                objCommonResponse.ResponseStatus.Status       = "Error";
                objCommonResponse.ResponseStatus.ErrorMessage = "An Error Occurs:- " + ex.Message;
            }

            return(Json(new
            {
                status = objCommonResponse.ResponseStatus.Status,
                msg = objCommonResponse.ResponseStatus.ErrorMessage
            }));
        }
Пример #9
0
        public async Task <CommonResponse> CheckProposalGenerated([FromBody] QuoteGetReq request)
        {
            var response = new CommonResponse();

            try
            {
                if (request != null && !string.IsNullOrEmpty(request.QRFID))
                {
                    response = await _agentApprovalRepository.CheckProposalGenerated(request);
                }
                else
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "QRF ID can not be Null/Blank.";
                }
            }
            catch (Exception ex)
            {
                response.ResponseStatus.Status       = "Failure";
                response.ResponseStatus.ErrorMessage = "An Error Occurs :- " + ex.Message;
            }

            return(response);
        }
Пример #10
0
        public async Task <ActivitiesGetRes> GetActivitiesDetailsByQRFID([FromBody] QuoteGetReq request)
        {
            var response = new ActivitiesGetRes();

            try
            {
                if (request != null)
                {
                    response = await _activitiesRepository.GetActivitiesDetailsByQRFID(request);
                }
                else
                {
                    response.ResponseStatus.Status       = "Failure";
                    response.ResponseStatus.ErrorMessage = "Request details can not be Null.";
                }
            }
            catch (Exception ex)
            {
                response.ResponseStatus.Status       = "Failure";
                response.ResponseStatus.ErrorMessage = "An Error Occurs " + ex.Message;
            }
            response.QRFID = request.QRFID;
            return(response);
        }
Пример #11
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);
        }
Пример #12
0
        public mPosition AddMealsDetails(List <MealDetails> objMealsProperties, List <RoutingInfo> lstRoutingInfo, QuoteGetReq request, List <AccomodationInfo> lstAcc, string status)
        {
            foreach (var item in lstRoutingInfo)
            {
                int day = item.Days;
                for (int i = 1; i <= day; i++)
                {
                    objMealsProperties.Add(new MealDetails {
                        CityID = item.ToCityID, CityName = item.ToCityName, VenueTypes = new List <VenueTypes>(), DayID = "Day " + (objMealsProperties.Count + 1)
                    });
                }
            }
            QRFCounterRequest qrfCounterRequest = new QRFCounterRequest();

            qrfCounterRequest.CounterType = _configuration["CounterType:Meals"].ToString();
            TimeSpan timeoutprev;

            if (status == "i")
            {
                foreach (var item in objMealsProperties)
                {
                    item.CreateUser = request.UserName;
                    item.CreateDate = DateTime.Now; item.EditDate = null; item.EditUser = "";
                    item.MealID     = item.MealID == 0 ? _genericRepository.GetNextReferenceNumber(qrfCounterRequest).LastReferenceNumber : item.MealID;
                    item.SequenceNo = lstRoutingInfo.Where(r => r.ToCityID == item.CityID).Select(t => t.RouteSequence).FirstOrDefault();
                    item.VenueTypes.ForEach(a => { a.VenueDetails.CreateDate = DateTime.Now; a.VenueDetails.EditDate = null; a.VenueDetails.EditUser = ""; });
                    AccomodationInfo objAccomodationInfo = lstAcc.Where(a => a.StartingFrom == item.DayID && a.IsDeleted == false).FirstOrDefault();
                    if (objAccomodationInfo != null)
                    {
                        MealDetails md = CheckDefaultMealPlan(item, timeoutprev, objAccomodationInfo, out TimeSpan newtimeout);
                        item.Breakfast   = md.Breakfast;
                        item.DefaultPlan = md.DefaultPlan;
                        item.Dinner      = md.Dinner;
                        item.Lunch       = md.Lunch;
                        timeoutprev      = newtimeout;
                    }
                }
            }

            mPosition objPosition = new mPosition();

            objPosition.Meals = objMealsProperties.OrderBy(m => m.SequenceNo).ToList();
            objPosition.QRFID = request.QRFID;

            return(objPosition);
        }