public static string AddFile(DataConfig providerConfig, POCO.System system, POCO.BasecampEntity sourceProject, POCO.BasecampDocument sourceDocument) { string partitionKey = GetBasecampBucketUrl(sourceProject.url); POCO.BasecampDocumentEntity docEntity = new BasecampDocumentEntity(Utils.CleanTableKey(partitionKey), Utils.CleanTableKey(sourceDocument.url)); docEntity.CPStatus = string.Empty; docEntity.ItemCount = 0; docEntity.Name = sourceDocument.title; docEntity.ServerRelativeUrl = sourceDocument.url; docEntity.TimeCreated = sourceDocument.created_at.ToUniversalTime(); docEntity.TimeLastModified = sourceDocument.updated_at.ToUniversalTime(); docEntity.Title = sourceDocument.title; return(BasecampProject.AddFile(providerConfig, docEntity)); }
public static List <POCO.BasecampProjectEntity> GetProjects(DataConfig providerConfig, POCO.System system, POCO.BasecampEntity basecampProject) { List <Filter> filters = new List <Filter>(); Filter pkFilter = new Filter("PartitionKey", Utils.CleanTableKey(system.PartitionKey), "eq"); Filter rkFilter = new Filter("RowKey", Utils.CleanTableKey(basecampProject.url), "eq"); filters.Add(pkFilter); filters.Add(rkFilter); return(BasecampProject.GetProjects(providerConfig, filters)); }
public static string AddProject(DataConfig providerConfig, POCO.System system, POCO.BasecampEntity sourceProject) { POCO.BasecampProjectEntity projectEntity = new BasecampProjectEntity(Utils.CleanTableKey(system.PartitionKey), Utils.CleanTableKey(sourceProject.url)); projectEntity.CPStatus = string.Empty; projectEntity.ItemCount = 0; projectEntity.Name = sourceProject.name; projectEntity.ServerRelativeUrl = sourceProject.url; projectEntity.TimeCreated = sourceProject.created_at.ToUniversalTime(); projectEntity.TimeLastModified = sourceProject.updated_at.ToUniversalTime(); return(BasecampProject.AddProject(providerConfig, projectEntity)); }
public static void UpdateProjectStatus(DataFactory.DataConfig providerConfig, POCO.System system, POCO.BasecampEntity basecampProject, string cpStatus) { switch (providerConfig.ProviderType) { case "azure.tableservice": throw new NotImplementedException(); break; case "internal.mongodb": var collection = Utils.GetMongoCollection <BasecampProjectEntity>(providerConfig, "basecampprojects"); // Create the update filter List <DataFactory.Filter> filters = new List <DataFactory.Filter>(); DataFactory.Filter pkFilter = new DataFactory.Filter("PartitionKey", Utils.CleanTableKey(system.PartitionKey), "eq"); DataFactory.Filter rkFilter = new DataFactory.Filter("RowKey", Utils.CleanTableKey(basecampProject.url), "eq"); filters.Add(pkFilter); filters.Add(rkFilter); FilterDefinition <BasecampProjectEntity> filter = Utils.GenerateMongoFilter <BasecampProjectEntity>(filters); string updateParam = "{$set: {TimeCreated: '" + basecampProject.created_at.ToUniversalTime().ToString(Utils.ISODateFormat) + "', TimeLastModified: '" + basecampProject.updated_at.ToUniversalTime().ToString(Utils.ISODateFormat) + "', CPStatus: '" + cpStatus + "'}}"; BsonDocument updateDoc = BsonDocument.Parse(updateParam); // Update the batch status collection.UpdateOne(filter, updateDoc); break; } }