| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- using System.Collections.Generic;
 
- using System.Linq;
 
- using Comal.Classes;
 
- using InABox.Core;
 
- namespace Comal.Stores
 
- {
 
-     internal class ShipmentStore : BaseStore<Shipment>
 
-     {
 
-         public override void BulkUpdate(IEnumerable<Shipment> entities)
 
-         {
 
-             base.BulkUpdate(entities);
 
-             var updates = new List<DeliveryItem>();
 
-             foreach (var shipment in entities)
 
-             {
 
-                 var items = Provider.Load(new Filter<DeliveryItem>(d => d.ShipmentLink.ID).IsEqualTo(shipment.ID));
 
-                 foreach (var item in items)
 
-                 {
 
-                     item.Location.Latitude = shipment.TrackerLink.Location.Latitude;
 
-                     item.Location.Longitude = shipment.TrackerLink.Location.Longitude;
 
-                     item.Location.Timestamp = shipment.TrackerLink.Location.Timestamp;
 
-                 }
 
-                 updates.AddRange(items);
 
-             }
 
-             if (updates.Any())
 
-                 Provider.Save(updates);
 
-         }
 
-         protected override void AfterSave(Shipment entity)
 
-         {
 
-             base.AfterSave(entity);
 
-             //Deprecated - now handled automagically by ShipmentLink.Location :-)
 
-             //IStore<DeliveryItem> iStore = FindSubStore<DeliveryItem>();
 
-             //var items = iStore.Load(new Filter<DeliveryItem>(x => x.ShipmentLink.ID).IsEqualTo(entity.ID));
 
-             //for (int i=0; i< items.Count(); i++) 
 
-             //{
 
-             //	DeliveryItem item = items[i];
 
-             //             bool bChanged = false;
 
-             //             if  (item.Location.Longitude != entity.Location.Longitude)
 
-             //             {
 
-             //                 item.Location.Longitude = entity.Location.Longitude;
 
-             //                 bChanged = true;
 
-             //             }
 
-             //             if (item.Location.Latitude != entity.Location.Latitude)
 
-             //             {
 
-             //                 item.Location.Latitude = entity.Location.Latitude;
 
-             //                 bChanged = true;
 
-             //             }
 
-             //             if (item.Location.Timestamp != entity.Location.Timestamp)
 
-             //             {
 
-             //                 item.Location.Timestamp = entity.Location.Timestamp;
 
-             //                 bChanged = true;
 
-             //             }
 
-             //             if (bChanged)
 
-             //                 iStore.Save(ref item, "Item Updated from by change in Shipment details");
 
-             //}
 
-         }
 
-     }
 
- }
 
 
  |