public async Task SetPic(string genusName, string speciesName, string imageUrl) { // Updates the default picture for the given species. // While any users can add pictures for species, only moderators can update the default picture. Species species = await BotUtils.ReplyFindSpeciesAsync(Context, genusName, speciesName); if (species is null) { return; } if (await BotUtils.ReplyHasPrivilegeOrOwnershipAsync(Context, PrivilegeLevel.ServerModerator, species) && await BotUtils.ReplyIsImageUrlValidAsync(Context, imageUrl)) { Picture[] pictures = await GalleryUtils.GetPicturesAsync(await GalleryUtils.GetGalleryAsync(species)); bool first_picture = pictures.Count() <= 0; await SpeciesUtils.SetPictureAsync(species, new Picture { url = imageUrl, artist = first_picture ? species.OwnerName : Context.User.Username }); await BotUtils.ReplyAsync_Success(Context, string.Format("Successfully set the picture for **{0}**.", species.ShortName)); } }
public async Task PlusPic(string genusName, string speciesName, string imageUrl, string description) { // Get the species. Species species = await BotUtils.ReplyFindSpeciesAsync(Context, genusName, speciesName); if (species is null) { return; } // Validate the image URL. if (!await BotUtils.ReplyIsImageUrlValidAsync(Context, imageUrl)) { return; } // Add the new picture to the gallery. // If this is the first picture we've added to the species, set the artist as the species' owner. // Otherwise, set the artist to the person submitting the image. Picture[] pictures = await GalleryUtils.GetPicturesAsync(await GalleryUtils.GetGalleryAsync(species)); bool firstPicture = pictures.Count() <= 0; bool pictureAlreadyExists = pictures.Any(x => x.url == imageUrl); Picture picture = pictures.Where(x => x.url == imageUrl).FirstOrDefault() ?? new Picture(); picture.url = imageUrl; picture.description = description; if (string.IsNullOrEmpty(picture.artist)) { picture.artist = firstPicture ? species.OwnerName : Context.User.Username; } await SpeciesUtils.AddPictureAsync(species, picture); if (pictureAlreadyExists) { await BotUtils.ReplyAsync_Success(Context, string.Format("Successfully updated [picture]({1}) for **{0}**.", species.ShortName, imageUrl)); } else { await BotUtils.ReplyAsync_Success(Context, string.Format("Successfully added new [picture]({1}) for **{0}**.", species.ShortName, imageUrl)); } }