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); }
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); }
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); } }
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); }
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); }
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); }
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); }