Ejemplo n.º 1
0
        protected override Task ProcessHotelWorkItem(HotelWorkItem workItem, CancellationToken cancellationToken)
        {
            //1. Get the activities from the appacitive using the hotel article id.
            //2. Get the activities from the client database using the hotelid and supplierfamily
            //3. Compare two above list and detect which all activities are added/deleted/updated
            //4. Update/delete/add activities into the client database.

            IKey hotelKey = new AppacitiveDAL.HotelKey()
            {
                HotelArticleId = workItem.ArticleId, HotelId = Convert.ToInt64(workItem.HotelId), SupplierFamily = workItem.SupplierFamily
            };
            IActivityDataProvider activityDataProvider = new ActivityDataProvider();

            // Get Appacitive activities by HotelArticleId
            List <HotelActivity> sourceActivities = new AppacitiveDAL.DatabaseManager().GetHotelActivities(hotelKey);

            // Get Client DB activities by HotelArticleId
            List <HotelActivity> destinationActivities = activityDataProvider.GetHotelActivities(hotelKey);

            foreach (var sourceActivity in sourceActivities)
            {
                HotelActivity activity = destinationActivities.Find(x => x.Equals(sourceActivity));
                if (activity == null)
                {
                    // New Hotel Activity
                    activityDataProvider.InsertHotelActivity(hotelKey, sourceActivity);
                }
                else
                {
                    // Old Hotel Activity
                    if (!activity.IsUpdated(sourceActivity))
                    {
                        activityDataProvider.UpdateHotelActivity(hotelKey, sourceActivity);
                    }

                    destinationActivities.Remove(activity);
                }
            }

            destinationActivities.ForEach(x => activityDataProvider.DeleteHotelActivity(hotelKey, x));

            return(null);
        }
Ejemplo n.º 2
0
        protected override Task ProcessHotelWorkItem(HotelWorkItem workItem, CancellationToken cancellationToken)
        {
            IKey hotelKey = new AppacitiveDAL.HotelKey()
            {
                HotelArticleId = workItem.ArticleId, HotelId = Convert.ToInt64(workItem.HotelId), SupplierFamily = workItem.SupplierFamily
            };
            IDescriptionDataProvider descriptionDataProvider = new DescriptionDataProvider();

            // Get Appacitive descriptions by HotelArticleId
            List <HotelDescription> sourceDescriptions = new AppacitiveDAL.DatabaseManager().GetHotelDescriptions(hotelKey);

            // Get Client DB descriptions by HotelArticleId
            List <HotelDescription> destinationDescriptions = descriptionDataProvider.GetHotelDescriptions(hotelKey);

            foreach (var sourceDescription in sourceDescriptions)
            {
                HotelDescription description = destinationDescriptions.Find(x => x.Equals(sourceDescription));
                if (description == null)
                {
                    // New Hotel description
                    descriptionDataProvider.InsertHotelDescription(hotelKey, sourceDescription);
                }
                else
                {
                    // Old Hotel description
                    if (!description.IsUpdated(sourceDescription))
                    {
                        descriptionDataProvider.UpdateHotelDescription(hotelKey, sourceDescription);
                    }

                    destinationDescriptions.Remove(description);
                }
            }

            destinationDescriptions.ForEach(x => descriptionDataProvider.DeleteHotelDescription(hotelKey, x));

            return(null);
        }
Ejemplo n.º 3
0
        protected override Task ProcessHotelWorkItem(HotelWorkItem workItem, CancellationToken cancellationToken)
        {
            IKey hotelKey = new AppacitiveDAL.HotelKey()
            {
                HotelArticleId = workItem.ArticleId, HotelId = Convert.ToInt64(workItem.HotelId), SupplierFamily = workItem.SupplierFamily
            };

            ISupplierHotelDataProvider supplierHotelDataProvider = new SupplierHotelDataProvider();

            List <SupplierHotel> sourceSupplierHotels = new AppacitiveDAL.DatabaseManager().GetSupplierHotelIdsByHotelIdSupplierFamily(hotelKey);

            List <SupplierHotel> destinationSupplierHotels = supplierHotelDataProvider.GetSupplierHotels(hotelKey);

            foreach (var sourceSupplierHotel in sourceSupplierHotels)
            {
                SupplierHotel supplierHotel = destinationSupplierHotels.Find(x => x.Equals(sourceSupplierHotel));
                if (supplierHotel == null)
                {
                    // New Hotel SupplierHotel
                    supplierHotelDataProvider.InsertSupplierHotel(hotelKey, sourceSupplierHotel);
                }
                else
                {
                    // Old Hotel SupplierHotel
                    if (!supplierHotel.IsUpdated(sourceSupplierHotel))
                    {
                        supplierHotelDataProvider.UpdateSupplierHotel(hotelKey, sourceSupplierHotel);
                    }

                    destinationSupplierHotels.Remove(supplierHotel);
                }
            }

            destinationSupplierHotels.ForEach(x => supplierHotelDataProvider.DeleteSupplierHotel(hotelKey, x));

            return(null);
        }