private void MyMouseMove(object sender, MouseEventArgs e) { Rectangle rectLeft = new Rectangle(0, 0, 3, this.BtnHeader.Height); Rectangle rectRight = new Rectangle(this.Width - 3, 0, 3, this.BtnHeader.Height); if (rectRight.Contains(e.X, e.Y)) { adjust = mPosition.right; this.Cursor = Cursors.SizeWE; } else { this.Cursor = Cursors.Default; } }
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); }
private void MyMouseDown(object sender, MouseEventArgs e) { if (e.Button != MouseButtons.Left) { return; } Rectangle rectRight = new Rectangle(this.Width - 3, 0, 3, this.BtnHeader.Height); if (rectRight.Contains(e.X, e.Y)) { adjust = mPosition.right; this.Cursor = Cursors.SizeWE; this.InColSizing = true; } else { this.Cursor = Cursors.Default; } oldx = e.X; oldy = e.Y; }
public async Task <ProductSRPHotelGetRes> GetProductSRPHotelDetails(ProductSRPHotelGetReq request) { ProductSRPHotelGetRes response = new ProductSRPHotelGetRes() { ProductSRPRouteInfo = new List <ProductSRPRouteInfo>(), QRFID = request.QRFID, ResponseStatus = new ResponseStatus() }; try { var resQuote = await _MongoContext.mQuote.FindAsync(a => a.QRFID == request.QRFID).Result.FirstOrDefaultAsync(); if (resQuote != null) { var accomres = new mPosition(); var position = _MongoContext.mPosition.AsQueryable().Where(x => x.QRFID == request.QRFID && x.ProductType == "Hotel" && x.IsDeleted == false).ToList(); if (position != null && position.Count > 0) { if (resQuote.RoutingInfo != null && resQuote.RoutingInfo.Count > 0) { var prodidlist = position.Select(a => a.ProductID).ToList(); FilterDefinition <mProducts_Lite> filter; filter = Builders <mProducts_Lite> .Filter.Empty; filter = filter & Builders <mProducts_Lite> .Filter.Where(a => prodidlist.Contains(a.VoyagerProduct_Id)); var resultProdSRP = await _MongoContext.mProducts_Lite.Find(filter).ToListAsync(); int day = 0; int prevnight = 0; foreach (var Route in resQuote.RoutingInfo.Where(a => a.Nights > 0)) { if (day == 0) { day = 1; } else { day = prevnight + day; } response.ProductSRPRouteInfo.Add(new ProductSRPRouteInfo { DayNo = day, Day = "Day " + day.ToString(), Duration = Route.Nights, RoutingDaysID = resQuote.RoutingDays.Where(a => a.Days == "Day " + day.ToString()).FirstOrDefault().RoutingDaysID, FromCityId = Route.FromCityID, FromCity = Route.FromCityName, ToCityId = Route.ToCityID, ToCity = Route.ToCityName, }); prevnight = Route.Nights; } foreach (var item in response.ProductSRPRouteInfo) { accomres = position.Where(a => a.RoutingDaysID == item.RoutingDaysID).FirstOrDefault(); item.ProductSRPDetails = resultProdSRP.Where(a => a.VoyagerProduct_Id == accomres.ProductID).Select(a => new ProductSRPDetails { Address = a.Address, BdgPriceCategory = a.BdgPriceCategory, Chain = a.Chain, CityName = a.CityName, CountryName = a.CountryName, DefaultSupplier = a.DefaultSupplier, HotelImageURL = a.HotelImageURL, HotelType = a.HotelType, Location = a.Location, PostCode = a.PostCode, ProdDesc = a.ProdDesc, ProdName = a.ProdName, ProductCode = a.ProductCode, ProductType = a.ProductType, StarRating = a.StarRating, Street = a.Street, VoyagerProduct_Id = a.VoyagerProduct_Id, ProductType_Id = a.ProductType_Id, Rooms = a.Rooms }).FirstOrDefault(); if (accomres != null) { item.ProdId = accomres.ProductID; } } response.ResponseStatus.Status = "Success"; } else { response.ResponseStatus.ErrorMessage = "RoutingInfo not exists in mQuote."; response.ResponseStatus.Status = "Error"; } } else { response.ResponseStatus.ErrorMessage = "QRFID not exists in mPosition."; response.ResponseStatus.Status = "Error"; } } else { response.ResponseStatus.ErrorMessage = "QRFID not exists in mQuote."; response.ResponseStatus.Status = "Error"; } } catch (Exception) { throw; } return(response); }
public async Task <string> InsertUpdateAccomodation(AccomodationSetReq request) { //QRFCounterRequest qrfCounterRequest = new QRFCounterRequest(); //qrfCounterRequest.CounterType = _configuration["CounterType:QRFRoute"].ToString(); UpdateResult resultFlag; var result = _MongoContext.mPosition.AsQueryable().Where(a => a.QRFID == request.QRFID).ToList(); if (result != null && result.Count > 0)//if exists or not then update as whole Accomodation List { if (request.SaveType == "full") { List <AccomodationInfo> lstAccomodationInfo = result.Select(r => r.AccomodationInfo).FirstOrDefault(); request.AccomodationInfo.RemoveAll(f => f.AccomodationSequence == 0 && f.AccomodationId == ""); if (request.AccomodationInfo != null && request.AccomodationInfo.Count > 0) { request.AccomodationInfo.AddRange(lstAccomodationInfo.Where(f => f.IsDeleted == true).ToList().Distinct()); request.AccomodationInfo.FindAll(f => !lstAccomodationInfo.Exists(r => r.AccomodationId == f.AccomodationId)).ForEach (r => { r.AccomodationId = ObjectId.GenerateNewId().ToString(); r.CreateDate = DateTime.Now; r.IsDeleted = (r.AccomodationSequence == 0 ? true : false); r.EditUser = ""; r.EditDate = null; r.RoomDetailsInfo.ForEach(d => { d.RoomId = ObjectId.GenerateNewId().ToString(); d.CreateDate = DateTime.Now; d.EditUser = ""; d.EditDate = null; }); }); request.AccomodationInfo.FindAll(f => lstAccomodationInfo.Exists(r => r.AccomodationId == f.AccomodationId)).ForEach (r => { r.EditDate = DateTime.Now; r.CreateDate = (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.CreateDate).FirstOrDefault()); r.CreateUser = (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.CreateUser).FirstOrDefault()); r.IsDeleted = (r.AccomodationSequence == 0 ? true : false); r.CityName = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.CityName).FirstOrDefault()) : r.CityName; r.CityID = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.CityID).FirstOrDefault()) : r.CityID; r.StartingFrom = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.StartingFrom).FirstOrDefault()) : r.StartingFrom; r.NoOfNight = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.NoOfNight).FirstOrDefault()) : r.NoOfNight; r.Category = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.Category).FirstOrDefault()) : r.Category; r.StarRating = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.StarRating).FirstOrDefault()) : r.StarRating; r.Location = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.Location).FirstOrDefault()) : r.Location; r.ChainName = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.ChainName).FirstOrDefault()) : r.ChainName; r.ChainID = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.ChainID).FirstOrDefault()) : r.ChainID; r.HotelName = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.HotelName).FirstOrDefault()) : r.HotelName; r.HotelID = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.HotelID).FirstOrDefault()) : r.HotelID; r.SupplierId = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.SupplierId).FirstOrDefault()) : r.SupplierId; r.MealPlan = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.MealPlan).FirstOrDefault()) : r.MealPlan; r.EarlyCheckInDate = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.EarlyCheckInDate).FirstOrDefault()) : r.EarlyCheckInDate; r.EarlyCheckInTime = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.EarlyCheckInTime).FirstOrDefault()) : r.EarlyCheckInTime; r.NumberOfEarlyCheckInRooms = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.NumberOfEarlyCheckInRooms).FirstOrDefault()) : r.NumberOfEarlyCheckInRooms; r.NumberofInterConnectingRooms = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.NumberofInterConnectingRooms).FirstOrDefault()) : r.NumberofInterConnectingRooms; r.NumberOfWashChangeRooms = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.NumberOfWashChangeRooms).FirstOrDefault()) : r.NumberOfWashChangeRooms; r.LateCheckOutDate = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.LateCheckOutDate).FirstOrDefault()) : r.LateCheckOutDate; r.LateCheckOutTime = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.LateCheckOutTime).FirstOrDefault()) : r.LateCheckOutTime; r.NumberOfLateCheckOutRooms = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.NumberOfLateCheckOutRooms).FirstOrDefault()) : r.NumberOfLateCheckOutRooms; r.Supplement = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.Supplement).FirstOrDefault()) : r.Supplement; r.SupplementID = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.SupplementID).FirstOrDefault()) : r.SupplementID; r.KeepAs = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.KeepAs).FirstOrDefault()) : r.KeepAs; r.RemarksForTL = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.RemarksForTL).FirstOrDefault()) : r.RemarksForTL; r.RemarksForOPS = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.RemarksForOPS).FirstOrDefault()) : r.RemarksForOPS; List <RoomDetailsInfo> lstRoomDetailsInfo = lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.RoomDetailsInfo).FirstOrDefault(); r.RoomDetailsInfo.RemoveAll(f => f.RoomSequence == 0 && f.RoomId == ""); if (r.RoomDetailsInfo != null && r.RoomDetailsInfo.Count > 0) { r.RoomDetailsInfo.AddRange(lstRoomDetailsInfo.Where(f => f.IsDeleted == true).ToList().Distinct()); r.RoomDetailsInfo.FindAll(f => !lstRoomDetailsInfo.Exists(p => p.RoomId == f.RoomId)).ForEach (p => { p.RoomId = ObjectId.GenerateNewId().ToString(); p.CreateDate = DateTime.Now; p.IsDeleted = (p.RoomSequence == 0 ? true : false); p.EditUser = ""; p.EditDate = null; }); r.RoomDetailsInfo.FindAll(f => lstRoomDetailsInfo.Exists(p => p.RoomId == f.RoomId)).ForEach (p => { p.EditDate = DateTime.Now; p.CreateDate = (lstRoomDetailsInfo.Where(l => l.RoomId == p.RoomId).Select(l => l.CreateDate).FirstOrDefault()); p.CreateUser = (lstRoomDetailsInfo.Where(l => l.RoomId == p.RoomId).Select(l => l.CreateUser).FirstOrDefault()); p.IsDeleted = p.RoomSequence == 0 ? true : false; p.Rooms = p.RoomSequence == 0 ? (lstRoomDetailsInfo.Where(l => l.RoomId == p.RoomId).Select(l => l.Rooms).FirstOrDefault()) : p.Rooms; p.RoomType = p.RoomSequence == 0 ? (lstRoomDetailsInfo.Where(l => l.RoomId == p.RoomId).Select(l => l.RoomType).FirstOrDefault()) : p.RoomType; p.RoomTypeID = p.RoomSequence == 0 ? (lstRoomDetailsInfo.Where(l => l.RoomId == p.RoomId).Select(l => l.RoomTypeID).FirstOrDefault()) : p.RoomTypeID; p.IsSupplement = p.RoomSequence == 0 ? (lstRoomDetailsInfo.Where(l => l.RoomId == p.RoomId).Select(l => l.IsSupplement).FirstOrDefault()) : p.IsSupplement; }); } }); var res = await _MongoContext.mPosition.FindOneAndUpdateAsync(Builders <mPosition> .Filter.Eq("QRFID", request.QRFID), Builders <mPosition> .Update.Set("AccomodationInfo", request.AccomodationInfo.Distinct())); return(res != null ? "1" : "Accomodation Details not updated."); } else { return("1"); } } else { //var res = await _MongoContext.mPosition.UpdateOneAsync(Builders<mPosition>.Filter.Eq("QRFID", request.QRFID), // Builders<mPosition>.Update.Push("AccomodationInfo", request.AccomodationInfo)); if (string.IsNullOrEmpty(request.AccomodationInfo[0].AccomodationId)) { request.AccomodationInfo.ForEach(r => { r.AccomodationId = ObjectId.GenerateNewId().ToString(); r.CreateDate = DateTime.Now; r.EditUser = ""; r.EditDate = null; r.RoomDetailsInfo.ForEach(d => { d.RoomId = ObjectId.GenerateNewId().ToString(); d.CreateDate = DateTime.Now; d.EditUser = ""; d.EditDate = null; }); }); var res = await _MongoContext.mPosition.UpdateOneAsync(Builders <mPosition> .Filter.Eq("QRFID", request.QRFID), Builders <mPosition> .Update.Push("AccomodationInfo", request.AccomodationInfo[0])); } else { List <AccomodationInfo> lstAccomodationInfo = result.Select(r => r.AccomodationInfo).FirstOrDefault(); request.AccomodationInfo.RemoveAll(f => f.AccomodationSequence == 0 && f.AccomodationId == ""); request.AccomodationInfo.FindAll(f => lstAccomodationInfo.Exists(r => r.AccomodationId == f.AccomodationId)).ForEach (r => { r.EditDate = DateTime.Now; r.CreateDate = (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.CreateDate).FirstOrDefault()); r.CreateUser = (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.CreateUser).FirstOrDefault()); r.IsDeleted = (r.AccomodationSequence == 0 ? true : false); r.CityName = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.CityName).FirstOrDefault()) : r.CityName; r.CityID = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.CityID).FirstOrDefault()) : r.CityID; r.StartingFrom = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.StartingFrom).FirstOrDefault()) : r.StartingFrom; r.NoOfNight = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.NoOfNight).FirstOrDefault()) : r.NoOfNight; r.Category = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.Category).FirstOrDefault()) : r.Category; r.StarRating = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.StarRating).FirstOrDefault()) : r.StarRating; r.Location = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.Location).FirstOrDefault()) : r.Location; r.ChainName = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.ChainName).FirstOrDefault()) : r.ChainName; r.ChainID = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.ChainID).FirstOrDefault()) : r.ChainID; r.HotelName = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.HotelName).FirstOrDefault()) : r.HotelName; r.HotelID = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.HotelID).FirstOrDefault()) : r.HotelID; r.SupplierId = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.SupplierId).FirstOrDefault()) : r.SupplierId; r.MealPlan = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.MealPlan).FirstOrDefault()) : r.MealPlan; r.EarlyCheckInDate = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.EarlyCheckInDate).FirstOrDefault()) : r.EarlyCheckInDate; r.EarlyCheckInTime = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.EarlyCheckInTime).FirstOrDefault()) : r.EarlyCheckInTime; r.NumberOfEarlyCheckInRooms = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.NumberOfEarlyCheckInRooms).FirstOrDefault()) : r.NumberOfEarlyCheckInRooms; r.NumberofInterConnectingRooms = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.NumberofInterConnectingRooms).FirstOrDefault()) : r.NumberofInterConnectingRooms; r.NumberOfWashChangeRooms = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.NumberOfWashChangeRooms).FirstOrDefault()) : r.NumberOfWashChangeRooms; r.LateCheckOutDate = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.LateCheckOutDate).FirstOrDefault()) : r.LateCheckOutDate; r.LateCheckOutTime = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.LateCheckOutTime).FirstOrDefault()) : r.LateCheckOutTime; r.NumberOfLateCheckOutRooms = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.NumberOfLateCheckOutRooms).FirstOrDefault()) : r.NumberOfLateCheckOutRooms; r.Supplement = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.Supplement).FirstOrDefault()) : r.Supplement; r.SupplementID = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.SupplementID).FirstOrDefault()) : r.SupplementID; r.KeepAs = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.KeepAs).FirstOrDefault()) : r.KeepAs; r.RemarksForTL = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.RemarksForTL).FirstOrDefault()) : r.RemarksForTL; r.RemarksForOPS = r.AccomodationSequence == 0 ? (lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.RemarksForOPS).FirstOrDefault()) : r.RemarksForOPS; List <RoomDetailsInfo> lstRoomDetailsInfo = lstAccomodationInfo.Where(l => l.AccomodationId == r.AccomodationId).Select(l => l.RoomDetailsInfo).FirstOrDefault(); r.RoomDetailsInfo.RemoveAll(f => f.RoomSequence == 0 && f.RoomId == ""); if (r.RoomDetailsInfo != null && r.RoomDetailsInfo.Count > 0) { r.RoomDetailsInfo.AddRange(lstRoomDetailsInfo.Where(f => f.IsDeleted == true).ToList().Distinct()); r.RoomDetailsInfo.FindAll(f => !lstRoomDetailsInfo.Exists(p => p.RoomId == f.RoomId)).ForEach (p => { p.RoomId = ObjectId.GenerateNewId().ToString(); p.CreateDate = DateTime.Now; p.IsDeleted = (p.RoomSequence == 0 ? true : false); p.EditUser = ""; p.EditDate = null; }); r.RoomDetailsInfo.FindAll(f => lstRoomDetailsInfo.Exists(p => p.RoomId == f.RoomId)).ForEach (p => { p.EditDate = DateTime.Now; p.CreateDate = (lstRoomDetailsInfo.Where(l => l.RoomId == p.RoomId).Select(l => l.CreateDate).FirstOrDefault()); p.CreateUser = (lstRoomDetailsInfo.Where(l => l.RoomId == p.RoomId).Select(l => l.CreateUser).FirstOrDefault()); p.IsDeleted = p.RoomSequence == 0 ? true : false; p.Rooms = p.RoomSequence == 0 ? (lstRoomDetailsInfo.Where(l => l.RoomId == p.RoomId).Select(l => l.Rooms).FirstOrDefault()) : p.Rooms; p.RoomType = p.RoomSequence == 0 ? (lstRoomDetailsInfo.Where(l => l.RoomId == p.RoomId).Select(l => l.RoomType).FirstOrDefault()) : p.RoomType; p.RoomTypeID = p.RoomSequence == 0 ? (lstRoomDetailsInfo.Where(l => l.RoomId == p.RoomId).Select(l => l.RoomTypeID).FirstOrDefault()) : p.RoomTypeID; p.IsSupplement = p.RoomSequence == 0 ? (lstRoomDetailsInfo.Where(l => l.RoomId == p.RoomId).Select(l => l.IsSupplement).FirstOrDefault()) : p.IsSupplement; }); } }); var res = await _MongoContext.mPosition.FindOneAndUpdateAsync(m => m.QRFID == request.QRFID && m.AccomodationInfo.Any(md => md.AccomodationId == request.AccomodationInfo[0].AccomodationId), Builders <mPosition> .Update.Set(m => m.AccomodationInfo[-1], request.AccomodationInfo[0])); } return(request.AccomodationInfo[0].AccomodationId); } } else//insert Route details at 1st time { request.AccomodationInfo.RemoveAll(f => f.AccomodationSequence == 0 && f.AccomodationId == ""); if (request.AccomodationInfo != null && request.AccomodationInfo.Count > 0) { request.AccomodationInfo.ForEach(r => { r.AccomodationId = ObjectId.GenerateNewId().ToString(); r.CreateDate = DateTime.Now; r.EditUser = ""; r.EditDate = null; r.RoomDetailsInfo.ForEach(d => { d.RoomId = ObjectId.GenerateNewId().ToString(); d.CreateDate = DateTime.Now; d.EditUser = ""; d.EditDate = null; }); }); mPosition mAccomodation = new mPosition(); mAccomodation.QRFID = request.QRFID; mAccomodation.AccomodationInfo = request.AccomodationInfo; await _MongoContext.mPosition.InsertOneAsync(mAccomodation); return("1"); } else { return("1"); } } }
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); }
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); }
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); }