public async Task <MealVenueSetRes> SetMealVenueDetailsByID(MealVenueSetReq objMealVenueSetReq, string ticket) { MealVenueSetRes objMealVenueSetRes = new MealVenueSetRes(); objMealVenueSetRes = await serviceProxy.PostData(_configuration.GetValue <string>("ServiceMeals:SetMealVenueDetailsByID"), objMealVenueSetReq, typeof(MealVenueSetRes), ticket); return(objMealVenueSetRes); }
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); }