Exemplo n.º 1
0
        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;
            }
        }
Exemplo 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);
        }
Exemplo n.º 3
0
        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;
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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");
                }
            }
        }
Exemplo n.º 6
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);
        }
Exemplo 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);
        }
Exemplo n.º 8
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);
        }