public IHttpActionResult Post([FromUri] MetaDataKeys key, [FromBody] List <object> value) { if (!ModelState.IsValid || value == null) { return(this.Error().InvalidParameters()); } if (key == MetaDataKeys.ProgramCategories) { _programmeCategoryHierarchyRepository.AddRange(value.Select(m => new ProgrammeCategoryHierarchy { Name = m.ToString() })); } else { var dictionaryValue = AppendId(value); var metadataModel = _metadataRepository.GetAll() ?? new MetadataModel(); if (metadataModel.ContainsKey(key)) { metadataModel[key] = dictionaryValue; } else { metadataModel.Add(key, dictionaryValue); } _metadataRepository.Add(metadataModel); _metadataRepository.SaveChanges(); } return(Ok()); }
private async Task <Either <BaseError, MediaItemScanResult <PlexEpisode> > > UpdateMetadata( MediaItemScanResult <PlexEpisode> result, PlexEpisode incoming) { PlexEpisode existing = result.Item; var toUpdate = existing.EpisodeMetadata .Where(em => incoming.EpisodeMetadata.Any(em2 => em2.EpisodeNumber == em.EpisodeNumber)) .ToList(); var toRemove = existing.EpisodeMetadata.Except(toUpdate).ToList(); var toAdd = incoming.EpisodeMetadata .Where(em => existing.EpisodeMetadata.All(em2 => em2.EpisodeNumber != em.EpisodeNumber)) .ToList(); foreach (EpisodeMetadata metadata in toRemove) { await _televisionRepository.RemoveMetadata(existing, metadata); } foreach (EpisodeMetadata metadata in toAdd) { metadata.EpisodeId = existing.Id; metadata.Episode = existing; existing.EpisodeMetadata.Add(metadata); await _metadataRepository.Add(metadata); } // TODO: update existing metadata return(result); }
public void Upload(string pathToFile) { if (FileExceedsSizeLimit(pathToFile)) { throw new ArgumentException("File is too big to be uploaded"); } _fileRepository.Upload(pathToFile); FileMetaInformation metaToAdd = BuildMetaInformation(pathToFile); _metadataRepository.Add(metaToAdd); }
private async Task <Either <BaseError, Season> > EnsureMetadataExists(Season season) { season.SeasonMetadata ??= new List <SeasonMetadata>(); if (!season.SeasonMetadata.Any()) { var metadata = new SeasonMetadata { SeasonId = season.Id, Season = season, DateAdded = DateTime.UtcNow, Guids = new List <MetadataGuid>(), Tags = new List <Tag>() }; season.SeasonMetadata.Add(metadata); await _metadataRepository.Add(metadata); } return(season); }
public void Handle(IBulkBreakTypeCreated command) { var metadataModel = _metadataRepository.GetAll(); var breakTypeMetadataKey = MetaDataKeys.BreakTypes; if (!metadataModel.ContainsKey(breakTypeMetadataKey)) { metadataModel.Add(breakTypeMetadataKey, new List <Data>()); } var breakTypes = metadataModel[breakTypeMetadataKey] ?? new List <Data>(); var breakTypesToAdd = command.Data.Where(x => !breakTypes.Any(bt => bt.Value.ToString() .Equals(x.Name, StringComparison.OrdinalIgnoreCase))); var newBreakTypes = _mapper.Map <List <Data> >(breakTypesToAdd); AppendId(breakTypes, newBreakTypes); breakTypes.AddRange(newBreakTypes); metadataModel[breakTypeMetadataKey] = breakTypes; _metadataRepository.Add(metadataModel); _metadataRepository.SaveChanges(); }
public void Consume(MessageDefinition message) { MessageMetadata data = MessageMetadata.FromDefinition(message); _repo.Add(data); }
public Metadata Add(Metadata model) { _metadataRepository.Add(model.ToMetadataModel()); return(model); }
public ActionResult <Metadata> CreateMetadata(Metadata metadata) { var metadataId = _metadataRepository.Add(metadata); return(CreatedAtRoute("GetByMetadataId", new { metadataId }, metadata)); }