Beispiel #1
0
        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());
        }
Beispiel #2
0
    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);
 }
Beispiel #8
0
        public ActionResult <Metadata> CreateMetadata(Metadata metadata)
        {
            var metadataId = _metadataRepository.Add(metadata);

            return(CreatedAtRoute("GetByMetadataId", new { metadataId }, metadata));
        }