Exemplo n.º 1
0
        public void Post([FromBody] string json)
        {
            if (ValidationJson(json))
            {
                ReqJson rj = JsonConvert.DeserializeObject <ReqJson>(json);

                SendLatters(rj);
            }
        }
Exemplo n.º 2
0
        private HttpResponse PostRequest(ReqJson objSend, string location)
        {
            var http = GetHttp(location);

            http.RequestBody = objSend.GetJson();
            var response = http.Post();

            return(null);
            // return response.Content;
        }
Exemplo n.º 3
0
        /// <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);
            }
        }
Exemplo n.º 4
0
        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();
                }
            }
        }