public async Task <Maybe <Pub> > DeleteByIdAsync(string pubId, string userAccountId) { var pub = await _pubRepository.GetAsync(pubId); if (!pub.HasValue) { return(Maybe <Pub> .Nothing); } return(pub.Value.AccountId == userAccountId ? await _pubRepository.DeleteAsync(pub.Value) : throw new UserNotAllowedToDeletePubException(pubId, userAccountId)); }
public async Task <Maybe <Pub> > RatePub(PubRate rate) { var pub = await _pubRepository.GetAsync(rate.PubId); if (!pub.HasValue) { return(pub); } pub.Value.PubRates.Add(rate); return(await _pubRepository.UpdateAsync(pub.Value)); }