public static async Task <string> SetClassSchedule( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage request, [Table("ClassesTable")] CloudTable classesTable, ILogger log) { OperationResult result = new OperationResult(); CloudTable scheduleTable; ScheduleSetter newClassInfo = await Utilities.ExtractContent <ScheduleSetter>(request); var classesEntities = CloudTableUtilities.getTableEntityAsync <ClassesTable>(classesTable).Result; foreach (var classEntity in classesEntities) { if (classEntity.subjectsTableName == newClassInfo.className) { if (!CloudTableUtilities.TableExist($"{classEntity.subjectsTableName}Schedule")) { scheduleTable = await CloudTableUtilities.CreateTableAsync($"{classEntity.subjectsTableName}Schedule"); classEntity.ScheduleTableName = $"{classEntity.subjectsTableName}Schedule"; } else { scheduleTable = CloudTableUtilities.OpenTable($"{classEntity.subjectsTableName}Schedule"); } var daysInfo1 = typeof(ScheduleSetter).GetProperties().ToList(); var daysInfo = typeof(ScheduleSetter).GetProperties().Where(x => x.Name != "className").ToList(); foreach (var dayinfo in daysInfo) { var dayEnity = new ScheduleTable(); var tableColumns = typeof(ScheduleTable).GetProperties().Where(x => x.Name.Contains(SubjectsTableUtilities.SubjectPropertyPrefix)).ToList(); var subjectsList = (List <string>)dayinfo.GetValue(newClassInfo); foreach (var subject in subjectsList) { var col = tableColumns[0]; tableColumns.RemoveAt(0); col.SetValue(dayEnity, subject); } dayEnity.PartitionKey = dayinfo.Name; dayEnity.RowKey = dayinfo.Name; await CloudTableUtilities.AddTableEntity(scheduleTable, dayEnity); } classEntity.LastTeacherUpdate = new DateTime(2000, 1, 01, 0, 0, 0).ToUniversalTime(); await CloudTableUtilities.AddTableEntity(classesTable, classEntity); } } return(JsonConvert.SerializeObject(result)); }
public static async void CreateClassTable(string tableName) { var subjectsTable = await CloudTableUtilities.CreateTableAsync(tableName); var classSubjectsNamesEntity = new SubjectsTable(); TableOperation insertOperation = TableOperation.InsertOrReplace(classSubjectsNamesEntity); classSubjectsNamesEntity.PartitionKey = ClassSubjects; classSubjectsNamesEntity.RowKey = ClassSubjects; await subjectsTable.ExecuteAsync(insertOperation); var classSubjectsNecessityEntity = new SubjectsTable(); insertOperation = TableOperation.InsertOrReplace(classSubjectsNecessityEntity); classSubjectsNecessityEntity.PartitionKey = Necessity; classSubjectsNecessityEntity.RowKey = Necessity; await subjectsTable.ExecuteAsync(insertOperation); }