Ejemplo n.º 1
0
        public QRFCounterResponse GetNextReferenceNumber(QRFCounterRequest request)
        {
            var result = (from c in _MongoContext.mSysCounters.AsQueryable()
                          where c.CounterType == request.CounterType
                          select c.LastReferenceNumber).FirstOrDefault();

            var response = new QRFCounterResponse();

            if (result != 0)
            {
                long val = ++result;
                _MongoContext.mSysCounters.UpdateOne(x => x.CounterType == request.CounterType,
                                                     Builders <mSysCounters> .Update.Set(x => x.LastReferenceNumber, val));
                response.LastReferenceNumber = val;
            }
            else
            {
                var item = new mSysCounters
                {
                    CounterType         = request.CounterType,
                    LastReferenceNumber = 1,
                    CreateDate          = DateTime.Now,
                    EditDate            = DateTime.Now,
                    CreateUser          = "******",
                    EditUser            = "******"
                };
                _MongoContext.mSysCounters.InsertOne(item);
                response.LastReferenceNumber = item.LastReferenceNumber;
            }
            return(response);
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
0
 public QRFCounterResponse GetNextReferenceNumber([FromBody] QRFCounterRequest request)
 {
     if (!string.IsNullOrWhiteSpace(request.CounterType))
     {
         var response = _genericRepository.GetNextReferenceNumber(request);
         if (response.LastReferenceNumber != 0)
         {
             response.Status = "Success";
         }
         else
         {
             response.Status = "Invalid CounterType";
         }
         return(response);
     }
     else
     {
         var response = new QRFCounterResponse();
         response.Status = "Failure";
         return(response);
     }
 }
Ejemplo n.º 4
0
        public async Task <ActivitiesSetRes> SetActivitiesDetails(ActivitiesSetReq request)
        {
            ActivitiesSetRes ActivitiesSetRes = new ActivitiesSetRes();
            UpdateResult     resultFlag;

            try
            {
                var result = _MongoContext.mQuote.AsQueryable().Where(a => a.QRFID == request.QRFID).ToList();
                if (result != null && result.Count > 0)
                {
                    var resultPosition = _MongoContext.mPosition.AsQueryable().Where(a => a.QRFID == request.QRFID).FirstOrDefault();

                    if (resultPosition != null)
                    {
                        QRFCounterRequest qrfCounterRequest = new QRFCounterRequest();
                        qrfCounterRequest.CounterType = _configuration["CounterType:Activities"].ToString();

                        var resultActivities = resultPosition.Activities;
                        if (resultActivities != null && resultActivities.ActivitiesDetails != null && resultActivities.ActivitiesDetails.Count > 0)
                        {
                            request.ActivitiesProperties.FindAll(f => !resultActivities.ActivitiesDetails.Exists(r => r.ActivityID == f.ActivityID)).ForEach(m =>
                            {
                                m.ActivityID = m.ActivityID == 0 ? _genericRepository.GetNextReferenceNumber(qrfCounterRequest).LastReferenceNumber : m.ActivityID;
                                m.CreateDate = DateTime.Now;
                                m.EditDate   = null;
                            });

                            request.ActivitiesProperties.FindAll(f => resultActivities.ActivitiesDetails.Exists(r => r.ActivityID == f.ActivityID)).ForEach(m =>
                            {
                                m.EditDate = DateTime.Now;
                            });

                            if (request.SaveType.ToLower() == "complete")
                            {
                                resultFlag = await _MongoContext.mPosition.UpdateOneAsync(Builders <mPosition> .Filter.Eq("QRFID", request.QRFID),
                                                                                          Builders <mPosition> .Update.Set("Activities.ActivitiesDetails", request.ActivitiesProperties));

                                ActivitiesSetRes.ResponseStatus.Status       = resultFlag.MatchedCount > 0 ? "Success" : "Failure";
                                ActivitiesSetRes.ResponseStatus.ErrorMessage = resultFlag.MatchedCount > 0 ? "Saved Successfully." : "Activity Details not updated.";
                            }
                            else if (request.SaveType.ToLower() == "partial")
                            {
                                await _MongoContext.mPosition.FindOneAndUpdateAsync(m => m.QRFID == request.QRFID,
                                                                                    Builders <mPosition> .Update.Set(m => m.Activities.ActivitiesDetails[-1], request.ActivitiesProperties[0]));

                                ActivitiesSetRes.ResponseStatus.Status       = "Success";
                                ActivitiesSetRes.ResponseStatus.ErrorMessage = "Saved Successfully";
                            }
                        }
                        else
                        {
                            mPosition objPosition = new mPosition();
                            request.ActivitiesProperties.ForEach(m =>
                            {
                                m.CreateDate = DateTime.Now; m.EditDate = null; m.EditUser = "";
                                m.ActivityID = m.ActivityID == 0 ? _genericRepository.GetNextReferenceNumber(qrfCounterRequest).LastReferenceNumber : m.ActivityID;
                            });
                            objPosition.QRFID = request.QRFID;
                            objPosition.Activities.ActivitiesDetails = request.ActivitiesProperties;
                            objPosition.Activities.CreateDate        = DateTime.Now;
                            objPosition.Activities.CreateUser        = request.ActivitiesProperties.FirstOrDefault().CreateUser;
                            objPosition.Activities.EditDate          = null;
                            objPosition.Activities.EditUser          = "";

                            resultFlag = await _MongoContext.mPosition.UpdateOneAsync(Builders <mPosition> .Filter.Eq("QRFID", request.QRFID),
                                                                                      Builders <mPosition> .Update.Set("Activities.ActivitiesDetails", request.ActivitiesProperties));

                            ActivitiesSetRes.ResponseStatus.Status       = resultFlag.MatchedCount > 0 ? "Success" : "Failure";
                            ActivitiesSetRes.ResponseStatus.ErrorMessage = resultFlag.MatchedCount > 0 ? "Saved Successfully." : "Activity Details not updated.";
                        }
                    }
                    else //first time insert
                    {
                        QRFCounterRequest qrfCounterRequest = new QRFCounterRequest();
                        qrfCounterRequest.CounterType = _configuration["CounterType:Activities"].ToString();

                        mPosition objPosition = new mPosition();
                        request.ActivitiesProperties.ForEach(m =>
                        {
                            m.CreateDate = DateTime.Now; m.EditDate = null; m.EditUser = "";
                            m.ActivityID = m.ActivityID == 0 ? _genericRepository.GetNextReferenceNumber(qrfCounterRequest).LastReferenceNumber : m.ActivityID;
                        });
                        objPosition.QRFID = request.QRFID;
                        objPosition.Activities.ActivitiesDetails = request.ActivitiesProperties;
                        objPosition.Activities.CreateDate        = DateTime.Now;
                        objPosition.Activities.CreateUser        = request.ActivitiesProperties.FirstOrDefault().CreateUser;
                        objPosition.Activities.EditDate          = null;
                        objPosition.Activities.EditUser          = "";
                        await _MongoContext.mPosition.InsertOneAsync(objPosition);

                        ActivitiesSetRes.ResponseStatus.Status = "Success";
                    }

                    if (request.SaveType.ToLower() == "partial" && request.ActivitiesProperties.Count > 0)
                    {
                        ActivitiesSetRes.ActivityId = request.ActivitiesProperties[0].ActivityID;
                    }
                }
                else
                {
                    ActivitiesSetRes.ResponseStatus.ErrorMessage = "QRF ID not exist.";
                }
            }
            catch (Exception ex)
            {
                ActivitiesSetRes.ResponseStatus.ErrorMessage = ex.StackTrace;
            }
            return(ActivitiesSetRes);
        }
Ejemplo n.º 5
0
        private QRFPaxSlabDetails GetDefaultPaxSlab()
        {
            QRFPaxSlabDetails response          = new QRFPaxSlabDetails();
            QRFCounterRequest qrfCounterRequest = new QRFCounterRequest {
                CounterType = _configuration["CounterType:QRFPaxSlab"].ToString()
            };

            string defCatId = "786fab83-6a95-49c8-ab98-7aa795b3902d";
            string defCat   = "Standard";
            string defCoach = "49-Seater with WC and intercom";

            response.CreateDate = DateTime.Now;
            response.EditDate   = null;
            response.EditUser   = "";
            response.HotelFlag  = "no";
            response.QRFPaxSlabs.AddRange(new List <QRFPaxSlabs>
            {
                new QRFPaxSlabs
                {
                    PaxSlab_Id   = _genericRepository.GetNextReferenceNumber(qrfCounterRequest).LastReferenceNumber,
                    From         = 10,
                    To           = 19,
                    DivideByCost = 10,
                    Category     = defCat,
                    Category_Id  = defCatId,
                    CoachType    = defCoach,
                    CoachType_Id = defCoach,
                    Brand        = "",
                    Brand_Id     = "",
                    HowMany      = 1,
                    BudgetAmount = 0,
                    IsDeleted    = false,
                    DeleteUser   = "",
                    DeleteDate   = null,
                    CreateDate   = DateTime.Now,
                    EditDate     = null
                },
                new QRFPaxSlabs
                {
                    PaxSlab_Id   = _genericRepository.GetNextReferenceNumber(qrfCounterRequest).LastReferenceNumber,
                    From         = 20,
                    To           = 29,
                    DivideByCost = 20,
                    Category     = defCat,
                    Category_Id  = defCatId,
                    CoachType    = defCoach,
                    CoachType_Id = defCoach,
                    Brand        = "",
                    Brand_Id     = "",
                    HowMany      = 1,
                    BudgetAmount = 0,
                    IsDeleted    = false,
                    DeleteUser   = "",
                    DeleteDate   = null,
                    CreateDate   = DateTime.Now,
                    EditDate     = null
                },
                new QRFPaxSlabs
                {
                    PaxSlab_Id   = _genericRepository.GetNextReferenceNumber(qrfCounterRequest).LastReferenceNumber,
                    From         = 30,
                    To           = 39,
                    DivideByCost = 30,
                    Category     = defCat,
                    Category_Id  = defCatId,
                    CoachType    = defCoach,
                    CoachType_Id = defCoach,
                    Brand        = "",
                    Brand_Id     = "",
                    HowMany      = 1,
                    BudgetAmount = 0,
                    IsDeleted    = false,
                    DeleteUser   = "",
                    DeleteDate   = null,
                    CreateDate   = DateTime.Now,
                    EditDate     = null
                },
                new QRFPaxSlabs
                {
                    PaxSlab_Id   = _genericRepository.GetNextReferenceNumber(qrfCounterRequest).LastReferenceNumber,
                    From         = 40,
                    To           = 49,
                    DivideByCost = 40,
                    Category     = defCat,
                    Category_Id  = defCatId,
                    CoachType    = defCoach,
                    CoachType_Id = defCoach,
                    Brand        = "",
                    Brand_Id     = "",
                    HowMany      = 1,
                    BudgetAmount = 0,
                    IsDeleted    = false,
                    DeleteUser   = "",
                    DeleteDate   = null,
                    CreateDate   = DateTime.Now,
                    EditDate     = null
                },
            });

            return(response);
        }
Ejemplo n.º 6
0
        public async Task <MealVenueSetRes> SetMealVenueDetailsByID(MealVenueSetReq request)
        {
            MealVenueSetRes  mealVenueSetRes  = new MealVenueSetRes();
            mProductSupplier mProductSupplier = new mProductSupplier();

            mealVenueSetRes.MealID = request.MealID;
            mealVenueSetRes.QRFID  = request.QRFID;
            var    result         = _MongoContext.mQuote.AsQueryable().Where(a => a.QRFID == request.QRFID).ToList();
            string msg            = "";
            long   venuedetailsid = request.VenueTypes.VenueDetails.VenueDetailsId;

            mealVenueSetRes.VenueTypes.VenueDetails.VenueDetailsId = venuedetailsid;
            if (result != null && result.Count > 0)
            {
                var resultmeal = _MongoContext.mPosition.AsQueryable().Where(a => a.QRFID == request.QRFID).FirstOrDefault();

                if (resultmeal != null)
                {
                    MealDetails       objMealDetails = resultmeal.Meals.Find(m => m.MealID == request.MealID);
                    List <VenueTypes> lstVenueTypes  = new List <VenueTypes>();

                    if (!(string.IsNullOrEmpty(request.VenueTypes.VenueDetails.MealTypeID)))
                    {
                        mProductSupplier = _MongoContext.mProductSupplier.AsQueryable().Where(p => p.Product_Id == request.VenueTypes.VenueDetails.MealTypeID && p.DafaultSupplier == true).FirstOrDefault();
                        request.VenueTypes.VenueDetails.SupplementID = mProductSupplier != null ? mProductSupplier.VoyagerProductSupplier_Id : "";
                    }

                    if (objMealDetails != null)
                    {
                        lstVenueTypes = objMealDetails.VenueTypes;
                        if (lstVenueTypes != null && lstVenueTypes.Count > 0)
                        {
                            if (lstVenueTypes.Where(v => v.VenueDetails.VenueDetailsId == venuedetailsid).FirstOrDefault() != null)
                            {
                                request.VenueTypes.VenueDetails.EditDate = DateTime.Now;
                                lstVenueTypes.Where(v => v.VenueDetails.VenueDetailsId == venuedetailsid).FirstOrDefault().VenueDetails  = request.VenueTypes.VenueDetails;
                                lstVenueTypes.Where(v => v.VenueDetails.VenueDetailsId == venuedetailsid).FirstOrDefault().VenueTypeName = request.VenueTypes.VenueTypeName;
                                mealVenueSetRes.VenueTypes.VenueDetails.VenueDetailsId = venuedetailsid;
                                msg = "Details Saved Successfully.";
                            }
                            else
                            {
                                QRFCounterRequest qrfCounterRequest = new QRFCounterRequest();
                                qrfCounterRequest.CounterType = _configuration["CounterType:MealsVenue"].ToString();
                                request.VenueTypes.VenueDetails.VenueDetailsId         = _genericRepository.GetNextReferenceNumber(qrfCounterRequest).LastReferenceNumber;
                                mealVenueSetRes.VenueTypes.VenueDetails.VenueDetailsId = request.VenueTypes.VenueDetails.VenueDetailsId;

                                request.VenueTypes.VenueDetails.CreateDate = DateTime.Now;
                                request.VenueTypes.VenueDetails.EditDate   = null;
                                request.VenueTypes.VenueDetails.EditUser   = "";

                                if (!(string.IsNullOrEmpty(request.VenueTypes.VenueDetails.MealTypeID)))
                                {
                                    mProductSupplier = _MongoContext.mProductSupplier.AsQueryable().Where(p => p.Product_Id == request.VenueTypes.VenueDetails.MealTypeID && p.DafaultSupplier == true).FirstOrDefault();
                                }
                                lstVenueTypes.Add(new VenueTypes {
                                    VenueDetails = request.VenueTypes.VenueDetails, VenueTypeName = request.VenueTypes.VenueTypeName
                                });
                                msg = "Details Updated Successfully.";
                            }
                        }
                        else
                        {
                            QRFCounterRequest qrfCounterRequest = new QRFCounterRequest();

                            qrfCounterRequest.CounterType = _configuration["CounterType:MealsVenue"].ToString();
                            request.VenueTypes.VenueDetails.VenueDetailsId         = _genericRepository.GetNextReferenceNumber(qrfCounterRequest).LastReferenceNumber;
                            mealVenueSetRes.VenueTypes.VenueDetails.VenueDetailsId = request.VenueTypes.VenueDetails.VenueDetailsId;

                            request.VenueTypes.VenueDetails.CreateDate = DateTime.Now;
                            request.VenueTypes.VenueDetails.EditDate   = null;
                            request.VenueTypes.VenueDetails.EditUser   = "";

                            lstVenueTypes.Add(new VenueTypes {
                                VenueDetails = request.VenueTypes.VenueDetails, VenueTypeName = request.VenueTypes.VenueTypeName,
                            });

                            msg = "Details Saved Successfully.";
                        }
                        await _MongoContext.mPosition.FindOneAndUpdateAsync(m => m.QRFID == request.QRFID && m.Meals.Any(md => md.MealID == request.MealID),
                                                                            Builders <mPosition> .Update.Set(m => m.Meals[-1].VenueTypes, lstVenueTypes));
                    }
                    else
                    {
                        msg = "Meal ID not exist.";
                    }
                }
                else
                {
                    msg = "QRF ID not exist in Meals.";
                }
            }
            else
            {
                msg = "QRF ID not exist.";
            }
            mealVenueSetRes.ResponseStatus.Status       = "Success";
            mealVenueSetRes.ResponseStatus.ErrorMessage = msg;
            return(mealVenueSetRes);
        }
Ejemplo n.º 7
0
        public async Task <MealSetRes> SetMealDetailsByID(MealSetReq request)
        {
            MealSetRes   MealSetRes = new MealSetRes();
            UpdateResult resultFlag;
            var          result = _MongoContext.mQuote.AsQueryable().Where(a => a.QRFID == request.QRFID).ToList();

            if (result != null && result.Count > 0)
            {
                var usernm         = request.MealDetails.FirstOrDefault().EditUser;
                var resultposition = _MongoContext.mPosition.AsQueryable().Where(a => a.QRFID == request.QRFID).FirstOrDefault();

                if (resultposition != null)
                {
                    var resultmeal = resultposition;
                    if (resultmeal != null && resultmeal.Meals.Count > 0)
                    {
                        request.MealDetails.FindAll(f => !resultmeal.Meals.Exists(r => r.MealID == f.MealID)).ForEach(m =>
                        {
                            m.EditDate   = DateTime.Now;
                            m.EditUser   = usernm;
                            m.IsDeleted  = true;
                            m.VenueTypes = resultmeal.Meals.Where(d => d.MealID == m.MealID).Select(d => d.VenueTypes).FirstOrDefault();
                        });

                        request.MealDetails.FindAll(f => resultmeal.Meals.Exists(r => r.MealID == f.MealID)).ForEach(m =>
                        {
                            m.EditDate   = DateTime.Now;
                            m.EditUser   = usernm;
                            m.IsDeleted  = false;
                            m.VenueTypes = resultmeal.Meals.Where(d => d.MealID == m.MealID).Select(d => d.VenueTypes).FirstOrDefault();
                        });

                        request.MealDetails.Select(v => v.VenueTypes).FirstOrDefault().ForEach(m => m.VenueTypeName = (m.VenueTypeName == null ? "" : m.VenueTypeName));
                        resultFlag = await _MongoContext.mPosition.UpdateOneAsync(Builders <mPosition> .Filter.Eq("QRFID", request.QRFID),
                                                                                  Builders <mPosition> .Update.Set("Meals", request.MealDetails));

                        MealSetRes.ResponseStatus.Status       = resultFlag.MatchedCount > 0 ? "Success" : "Failure";
                        MealSetRes.ResponseStatus.ErrorMessage = resultFlag.MatchedCount > 0 ? "Meals Details Saved Successfully." : "Meals Details not updated.";
                    }
                }
                else
                {
                    QRFCounterRequest qrfCounterRequest = new QRFCounterRequest();
                    qrfCounterRequest.CounterType = _configuration["CounterType:Meals"].ToString();
                    mPosition objPosition = new mPosition();
                    request.MealDetails.ForEach(m =>
                    {
                        m.CreateDate = DateTime.Now; m.EditDate = null; m.EditUser = "";
                        m.MealID     = m.MealID == 0 ? _genericRepository.GetNextReferenceNumber(qrfCounterRequest).LastReferenceNumber : m.MealID;
                    });
                    objPosition.QRFID = request.QRFID;
                    objPosition.Meals = request.MealDetails;
                    objPosition.Meals[0].CreateUser = request.MealDetails.FirstOrDefault().CreateUser;
                    objPosition.Meals[0].EditDate   = null;
                    objPosition.Meals[0].EditUser   = "";
                    await _MongoContext.mPosition.InsertOneAsync(objPosition);

                    MealSetRes.ResponseStatus.Status       = "Success";
                    MealSetRes.ResponseStatus.ErrorMessage = "Meals Details Saved Successfully.";
                }
            }
            else
            {
                MealSetRes.ResponseStatus.ErrorMessage = "QRF ID not exist.";
            }
            return(MealSetRes);
        }