public static async Task PublishRoutesToEmbeddedSocial()

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);
        }