public async Task Preview(string skinId, int dragonId, [ExactValuePrecondition("-s")] string swapSilhouette, [ExactValuePrecondition("-apparel")] string apparel = null) { await StartPreview().ContinueWith(async msg => { var result = await SkinTester.GenerateOrFetchPreview(skinId, dragonId, true); if (!result.Success) { await msg.Result.ModifyAsync(x => x.Embed = ErrorEmbed(result.GetDiscordErrorMessage).Build()); } else { SaveStatistics(result); await msg.Result.ModifyAsync(x => x.Embed = GeneratedPreviewEmbed(result, apparel != null)); } }); }
public async Task <ActionResult> Preview(PreviewModelPost model) { if (!ModelState.IsValid) { return(RedirectToRoute("Preview", new { model.SkinId })); } PreviewResult result = null; if (model.DragonId != null) { result = await SkinTester.GenerateOrFetchPreview(model.SkinId, model.DragonId.Value, model.SwapSilhouette, model.Force); } else if (!string.IsNullOrWhiteSpace(model.ScryerUrl)) { result = await SkinTester.GenerateOrFetchPreview(model.SkinId, model.ScryerUrl, model.Force); } else if (!string.IsNullOrWhiteSpace(model.DressingRoomUrl)) { result = await SkinTester.GenerateOrFetchPreview(model.SkinId, model.DressingRoomUrl, model.Force); } if (result == null || !result.Success) { AddErrorNotification(result?.GetHtmlErrorMessage); return(RedirectToRoute("Preview", new { model.SkinId })); } await SavePreviewStatistics(result); return(View("PreviewResult", new PreviewModelPostViewModel { SkinId = model.SkinId, Result = result, Dragon = result.Dragon })); }