public MongoTaxonRankEntity(ITaxonRankEntity entity) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } this.Name = entity.Name; this.IsWhiteListed = entity.IsWhiteListed; this.Ranks = entity.Ranks; }
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)); }
public Task <object> Add(ITaxonRankEntity taxon) => Task.Run <object>(() => this.Upsert(taxon));