public async Task <StickerPackOutput> CreateStickerPackAsync(Admin currentAdmin, StickerPackInput input) { if (!await _tgBot.IsStickerPackExistsAsync(input.Name)) { throw StickerPackException.StickerPackDoesNotExists(input.Name); } var stickerPack = currentAdmin.AddNewStickerPack(input.Name, input.Alias, await FindTagsAsync(input.TagIds)); var stickers = await _tgBot.GetStickerFilesFromPackAsync(stickerPack.Name); var filePath = await _tgBot.GetFilePathAsync(stickerPack.Name, fileId : stickers.First()); return(new StickerPackOutput(stickerPack, filePath, stickers.Count())); }
public async Task <StickerPackOutput> UpdateStickerPackAsync(Admin currentAdmin, Guid stickerPackId, StickerPackInput input) { var stickerPack = await GetStickerPackAsync(stickerPackId); StickerPackException.AssertOwnStickerPack(currentAdmin, stickerPack); if (!await _tgBot.IsStickerPackExistsAsync(input.Name)) { throw StickerPackException.StickerPackDoesNotExists(input.Name); } stickerPack.Name = input.Name; stickerPack.Alias = input.Alias; stickerPack.ReplaceTags(await FindTagsAsync(input.TagIds)); var stickers = await _tgBot.GetStickerFilesFromPackAsync(stickerPack.Name); var filePath = await _tgBot.GetFilePathAsync(stickerPack.Name, fileId : stickers.First()); return(new StickerPackOutput(stickerPack, filePath, stickers.Count())); }