private async Task PhotoReceivedAsync(IDialogContext context, IAwaitable <IEnumerable <Attachment> > argument) { var message = await argument; if (message != null && message.Any()) { var attachment = message.First(); using (HttpClient httpClient = new HttpClient()) { // Skype & MS Teams attachment URLs are secured by a JwtToken, so we need to pass the token from our bot. if ((context.Activity.ChannelId.Equals("skype", StringComparison.InvariantCultureIgnoreCase) || context.Activity.ChannelId.Equals("msteams", StringComparison.InvariantCultureIgnoreCase)) && new Uri(attachment.ContentUrl).Host.EndsWith("skype.com")) { var token = await new MicrosoftAppCredentials().GetTokenAsync(); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); } var responseMessage = await httpClient.GetAsync(attachment.ContentUrl); var contentLenghtBytes = responseMessage.Content.Headers.ContentLength; var data = responseMessage.Content.ReadAsByteArrayAsync().Result; var newname = Guid.NewGuid().ToString().Replace("-", "_"); var res = await Upload(this.StyleId, data); this.ImageSel = res; } } await this.EnsurePhoto(context); }
public async Task StartAsync(IDialogContext context) { this.ImageSel = null; await this.EnsurePhoto(context); }