예제 #1
0
        private void ReceiveMessage(UserActionMessage message)
        {
            var mg = message;

            if (mg.ActionType == UserActionType.Postback)
            {
                var data = JsonConvert.DeserializeObject <ActionData>(mg.Postback.Data);

                if (data.Name == CommandNames.ApplyCommand)
                {
                    var rUser = WebApp.Current.DatabaseCache.User.SelectBy_LineID(mg.Source.ID);
                    var dc    = new OfferDataContext(rUser.UserCD);
                    var gg    = new List <Guid>();
                    gg.Add(Guid.Parse(data.Value));

                    var l = new List <OfferDataContext.Entry_Result_Edit_Record>();
                    if (data.Method == nameof(OfferEntryResult.Elected))
                    {
                        l = dc.Entry_Result_Edit(OfferEntryResult.Elected, gg.ToArray());
                    }
                    else if (data.Method == nameof(OfferEntryResult.Rejected))
                    {
                        l = dc.Entry_Result_Edit(OfferEntryResult.Rejected, gg.ToArray());
                    }
                    var cl = new LineBotClient();
                    foreach (var r in l)
                    {
                        cl.SendElectedMessage(r, WebApp.Current.TextManager.Copy(rUser.Language));
                    }
                }

                if (data.Name == CommandNames.EntryScheduleAcceptCommand)
                {
                    if (data.Method == "Accept")
                    {
                        var rUser      = WebApp.Current.DatabaseCache.User.SelectBy_LineID(mg.Source.ID);
                        var scheduleCD = Guid.Parse(data.Value);
                        var dc         = new OfferDataContext(rUser.UserCD);
                        dc.Entry_Schedule_Accept(scheduleCD);
                        var rOffer = dc.DOffer_SelectBy_ScheduleCD(scheduleCD);

                        var tm = WebApp.Current.TextManager;
                        var cl = new LineBotClient();
                        //Send to Instagramer
                        cl.SendMessage(mg.Source.ID, tm.Text(TextKey.ScheduleIsAccepted) + Environment.NewLine
                                       + "https://www.stargramer.com/User/Offer/List");

                        //Send to shop person
                        var rShop = WebApp.Current.DatabaseCache.Shop.SelectByPrimaryKey(rOffer.ShopCD);
                        if (rShop.LineID.IsNullOrEmpty() == false)
                        {
                            cl.SendMessage(rShop.LineID, tm.Text(TextKey.ScheduleAcceptCompletedAndSendMessageToInstagramer));
                        }
                    }
                    else if (data.Method == "Deny")
                    {
                    }
                }
            }
        }
예제 #2
0
        public static void SendElectedMessage(this LineBotClient client, OfferDataContext.Entry_Result_Edit_Record record, TextManager textManager)
        {
            var r  = record;
            var cl = client;
            var tm = textManager;

            cl.SendMessage(r.LineID, tm.Text(TextKey.YourEntryElected));
            var url = String.Format("{0}/Offer/{1}/View", StargramerUrlInfo.WebSiteUrl, r.OfferCD);

            cl.SendMessage(r.LineID, tm.Text(TextKey.PleaseInputScheduleCandidate) + Environment.NewLine
                           + url);
        }
예제 #3
0
        public async Task <HttpResponseMessage> Post()
        {
            try
            {
                var contentString = await Request.Content.ReadAsStringAsync();

                dynamic contentObj = JsonConvert.DeserializeObject(contentString);

                var result = contentObj.result[0];

                //Change Your ChannelID ChannelSecret MID
                LineBotClient LineBot = new LineBotClient("{ChannelID}", "{ChannelSecret}", "{MID}");


                LineBot.PostAsJsonAsync(result);
                return(new HttpResponseMessage(System.Net.HttpStatusCode.OK));
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e);
                return(new HttpResponseMessage(System.Net.HttpStatusCode.InternalServerError));
            }
        }