Esempio n. 1
0
        public MongoTaxonRankEntity(ITaxonRankEntity entity)
        {
            if (entity == null)
            {
                throw new ArgumentNullException(nameof(entity));
            }

            this.Name          = entity.Name;
            this.IsWhiteListed = entity.IsWhiteListed;
            this.Ranks         = entity.Ranks;
        }
Esempio n. 2
0
        private ITaxonRankEntity Upsert(ITaxonRankEntity taxon)
        {
            if (taxon == null)
            {
                throw new ArgumentNullException(nameof(taxon));
            }

            Func <string, ITaxonRankEntity, ITaxonRankEntity> update = (k, t) =>
            {
                var ranks = taxon.Ranks.Concat(t.Ranks);

                var result = new Taxon
                {
                    IsWhiteListed = taxon.IsWhiteListed,
                    Name          = taxon.Name,
                    Ranks         = new HashSet <TaxonRankType>(ranks)
                };

                return(result);
            };

            return(this.Taxa.AddOrUpdate(taxon.Name, taxon, update));
        }
Esempio n. 3
0
 public Task <object> Add(ITaxonRankEntity taxon) => Task.Run <object>(() => this.Upsert(taxon));