/// <summary> /// Создать ссылку /// </summary> /// <param name="linkValue"></param> /// <param name="userId"></param> /// <returns></returns> public Link Create(string linkValue, Guid userId) { //ищем уже существующую var link = this._links.FindOneAndUpdate( l => l.Value == linkValue, Builders <Link> .Update.AddToSet(l => l.UsersIds, userId)); if (link != null) { return(link); } //если не нашли, то создаем новую ссылку var counter = this._counters.FindOneAndUpdate( c => c.Type == "links", Builders <Counter> .Update.Inc(c => c.SequenceValue, 1)); var addedLink = new Link { Value = linkValue, HitCount = 0, ShortValue = LinksHelper.GetShortValue(counter.SequenceValue), UsersIds = new List <Guid> { userId } }; this._links.InsertOne(addedLink); return(addedLink); }
public void LinksHelper_GetShortValue() { var result = LinksHelper.GetShortValue(100); Assert.Equal("Be", result); }