in code/PublishToEmbeddedSocial/Components/PublishRoutes.cs [82:133]
public static async Task PublishRoutesToEmbeddedSocial(IEnumerable<RouteEntity> diffRoutes, string regionId, string agencyId, StorageManager publishStorage, StorageManager publishMetadataStorage, EmbeddedSocial embeddedSocial, string runId)
{
// create the publish metadata entity
PublishMetadataEntity publishMetadataEntity = new PublishMetadataEntity()
{
RunId = runId,
RegionId = regionId,
AgencyId = agencyId,
RecordType = Storage.RecordType.Route.ToString(),
AddedCount = 0,
UpdatedCount = 0,
DeletedCount = 0,
ResurrectedCount = 0
};
// iterate over each route
foreach (RouteEntity diffRoute in diffRoutes)
{
switch ((DataRowState)Enum.Parse(typeof(DataRowState), diffRoute.RowState))
{
case DataRowState.Create:
await embeddedSocial.CreateRoute(diffRoute);
await publishStorage.RouteStore.Insert(diffRoute);
publishMetadataEntity.AddedCount++;
break;
case DataRowState.Delete:
await embeddedSocial.DeleteRoute(diffRoute);
await publishStorage.RouteStore.Update(diffRoute);
publishMetadataEntity.DeletedCount++;
break;
case DataRowState.Update:
await embeddedSocial.UpdateRoute(diffRoute);
await publishStorage.RouteStore.Update(diffRoute);
publishMetadataEntity.UpdatedCount++;
break;
case DataRowState.Resurrect:
await embeddedSocial.ResurrectRoute(diffRoute);
await publishStorage.RouteStore.Update(diffRoute);
publishMetadataEntity.ResurrectedCount++;
break;
default:
throw new ArgumentOutOfRangeException("RowState");
}
}
// publish the metadata entity
await publishMetadataStorage.PublishMetadataStore.Insert(publishMetadataEntity);
}