コード例 #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);
        }
コード例 #2
0
 public void DeleteHotelActivity(IKey hotelKey, HotelActivity activity)
 {
     throw new NotImplementedException();
 }