public void Add(string recordingsJson) { // Deserialise RecordingsJson List <RecordingEntry> jsonRecordingEntries = JsonConvert.DeserializeObject <RecordingsJson>(recordingsJson).recordingEntries; // Iterate through each RecordingEntry in JSON foreach (RecordingEntry jsonRecordingEntry in jsonRecordingEntries) { // Check if a RecordingEntry already exists for this Programme RecordingEntry recordingEntry = recordingEntries.FirstOrDefault(xx => xx.programTitle == jsonRecordingEntry.programTitle && xx.programEpisodeTitle == jsonRecordingEntry.programEpisodeTitle && xx.programSeasonNumber == jsonRecordingEntry.programSeasonNumber && xx.programEpisodeNumber == jsonRecordingEntry.programEpisodeNumber && xx.startTime == jsonRecordingEntry.startTime && xx.endTime == jsonRecordingEntry.endTime ); if (recordingEntry == null) { // Add the RecordingEntry recordingEntries.Add(jsonRecordingEntry); } else { // Remove Old RecordingEntry recordingEntries.Remove(recordingEntry); // Add New RecordingEntry recordingEntries.Add(jsonRecordingEntry); } } }
public async Task <RecordingMetadata> CreateAsync(UserRecordingInput data) { var recordingEntry = new RecordingEntry(); var recordingMetadata = new RecordingMetadata(); var id = Guid.NewGuid().ToString(); recordingEntry.Recording = data.Recording; recordingEntry.Id = id; recordingMetadata.Title = data.Title; recordingMetadata.Description = data.Description; recordingMetadata.CreatedBy = User.FindFirst(ClaimTypes.NameIdentifier).Value; recordingMetadata.GivenName = User.FindFirstValue(ClaimTypes.GivenName); recordingMetadata.Surname = User.FindFirstValue(ClaimTypes.Surname); recordingMetadata.Id = id; recordingMetadata.CreatedAt = DateTimeOffset.Now; await _cosmosDbService.AddRecordingAsync(recordingEntry, recordingMetadata); return(recordingMetadata); }
public async Task AddRecordingAsync(RecordingEntry recordingEntry, RecordingMetadata recordingMetadata) { await _containers["recordings"].CreateItemAsync(recordingEntry, new PartitionKey(recordingEntry.Id)); await _containers["recording_metadata"].CreateItemAsync(recordingMetadata, new PartitionKey(recordingEntry.Id)); }