public void Post([FromBody] string json) { if (ValidationJson(json)) { ReqJson rj = JsonConvert.DeserializeObject <ReqJson>(json); SendLatters(rj); } }
private HttpResponse PostRequest(ReqJson objSend, string location) { var http = GetHttp(location); http.RequestBody = objSend.GetJson(); var response = http.Post(); return(null); // return response.Content; }
/// <summary> /// POST: api/Messages /// Receive a message from a user and reply to it /// </summary> public async Task <HttpResponseMessage> Post([FromBody] Activity activity) { try { if (activity.Type == ActivityTypes.Message) { var connector = new ConnectorClient(new Uri(activity.ServiceUrl)); string message; Attachment imageAttachment = activity.Attachments?.FirstOrDefault(a => a.ContentType.Contains("image")); byte[] attachmentContents; if (imageAttachment != null) { try { var stream = await GetImageStream(connector, imageAttachment); attachmentContents = await ReadFully(stream); this.image = Convert.ToBase64String(attachmentContents); ReqJson input = new ReqJson(); input.image = this.image; input.maxoutputsize = 3; transported = false; string request = JsonConvert.SerializeObject(input); string respJS = await GetResponseAsync(request); RespJson respObj = JsonConvert.DeserializeObject <RespJson>(respJS); if (respObj.hotels.Any()) { string message3 = $"These are top {respObj.hotels.GetLength(0)} suitable hotels for you:"; Activity reply3 = activity.CreateReply(message3); await connector.Conversations.ReplyToActivityAsync(reply3); foreach (Hotel h in respObj.hotels) { await WriteHotelEntry(h, activity, connector); } string message2 = "When are you planning to begin your trip?"; Activity reply2 = activity.CreateReply(message2); await connector.Conversations.ReplyToActivityAsync(reply2); } else { string message5 = "I couldn't find any matching hotel. Please try again."; Activity reply = activity.CreateReply(message5); await connector.Conversations.ReplyToActivityAsync(reply); } } catch (Exception e) { message = "Oops! Something went wrong. Try again later" + e.ToString(); //if (e is ClientException && (e as ClientException).Error.Message.ToLowerInvariant().Contains("access denied")) //{ // message += " (access denied - hint: check your APIKEY at web.config)."; //} Trace.TraceError(e.ToString()); Activity reply = activity.CreateReply(message); await connector.Conversations.ReplyToActivityAsync(reply); } } else { if (transported) { await Conversation.SendAsync(activity, () => new BasicLuisDialog()); } else { await Conversation.SendAsync(activity, () => new BasicLuisDialog(image)); transported = true; } } } else { await this.HandleSystemMessage(activity); } var response = this.Request.CreateResponse(HttpStatusCode.OK); return(response); } catch (Exception e) { e.ToString(); var response = this.Request.CreateResponse(HttpStatusCode.OK); return(response); } }
private void SendLatters(ReqJson rj) { SettingSmtp(); using (MailMessage mm = new MailMessage()) { string recipients = null; Mail mail = new Mail(); string result = "OK"; try { for (int i = 0; i < rj.recipients.Length; i++) { mm.CC.Add(rj.recipients[i]); recipients += string.Format($"{rj.recipients[i]}, "); } mm.From = new MailAddress($"{from}", $"{name}"); mm.Subject = rj.subject; mm.Body = rj.body; using (SmtpClient sc = new SmtpClient(smtp)) { sc.EnableSsl = true; sc.DeliveryMethod = SmtpDeliveryMethod.Network; sc.UseDefaultCredentials = false; sc.Credentials = new NetworkCredential(from, pass); try { sc.SendAsync(mm, null); } catch (ObjectDisposedException ex) { mail.FailedMessage = ex.Message; result = "Failed"; } catch (SmtpException ex) { mail.FailedMessage = ex.Message; result = "Failed"; } catch (InvalidOperationException ex) { mail.FailedMessage = ex.Message; result = "Failed"; } } } catch (ArgumentNullException ex) { mail.FailedMessage = ex.Message; result = "Failed"; } catch (ArgumentException ex) { mail.FailedMessage = ex.Message; result = "Failed"; } catch (FormatException ex) { mail.FailedMessage = ex.Message; result = "Failed"; } catch (Exception ex) { mail.FailedMessage = ex.Message; result = "Failed"; } finally { mail.Recipient = recipients; mail.Subject = rj.subject; mail.Body = rj.body; mail.Date = DateTime.Now; mail.Result = result; db.Mails.Add(mail); db.SaveChanges(); } } }