private CarouselMessage GetCarouselMsg(string strConn, LineEvents lineEvent, LineChannel channelObj) { var actions = new NewLineMessageApi.LineActions.DatetimeAction("統計資料日期", DateTimePickerType.date); using (var conn = new SQLiteConnection(strConn)) { conn.Open(); string sql = "select SpeakDate from LineUserSpeak order by SpeakDate desc "; var endDate = conn.QueryFirstOrDefault <DateTime>(sql); sql = "select SpeakDate from LineUserSpeak order by SpeakDate "; var beginDate = conn.QueryFirstOrDefault <DateTime>(sql); actions.min = beginDate.ToString("yyyy-MM-dd"); actions.max = endDate.ToString("yyyy-MM-dd"); actions.label = "要查看的日期"; } var lstAction = new List <NewLineMessageApi.LineActions.LineActionsBase>() { actions }; var col = new NewLineMessageApi.TemplatesMsg.ColumnObj.CarouselColumn("選擇完日期後送出", lstAction); var lstColumns = new List <NewLineMessageApi.TemplatesMsg.ColumnObj.CarouselColumn>() { col }; return(new CarouselMessage(lstColumns)); }
public LineUserSpeak(LineEvents lineEvent, LineChannel channelObj) { UserProfile userData = new UserProfile(); switch (lineEvent.source.type) { case SourceType.user: userData = channelObj.GetUserProfile(lineEvent.source.userId); break; case SourceType.group: userData = channelObj.GetGroupOrRoomUserProfile(lineEvent.source.userId, lineEvent.source.groupId, SourceType.group); this.Groupid = lineEvent.source.groupId; break; case SourceType.room: userData = channelObj.GetGroupOrRoomUserProfile(lineEvent.source.userId, lineEvent.source.roomId, SourceType.room); this.Groupid = lineEvent.source.roomId; break; } this.DisplayName = userData.displayName; this.UserId = userData.userId; if (lineEvent.message != null) { this.MessageType = lineEvent.message.type.ToString(); } this.SpeakDate = DateTime.UtcNow.AddHours(8); }
public IHttpActionResult Post() { LineChannel ChannelObj = null; LineEvents LineEvent = null; if (ChannelObj == null) { if (LineChannel.VaridateSignature(Request, Channel_secret)) { ChannelObj = new LineChannel(Channel_Access_Token); LineEvent = JsonConvert.DeserializeObject <LineReceivedMsg>(Request.Content.ReadAsStringAsync().Result).events.FirstOrDefault(); } } if (ChannelObj == null) { return(BadRequest()); } if (LineEvent != null) { Models.LineUserSpeak dbModel = new Models.LineUserSpeak(LineEvent, ChannelObj); switch (LineEvent.type) { case EventType.message: if (LineEvent.message.type == MessageType.text) { string strLineMsg = LineEvent.message.text; if (strLineMsg == "$統計") { /*GET DATA*/ string msg = dbModel.GetReportsDefault(strConn); ChannelObj.SendReplyMessage(LineEvent.replyToken, new NewLineMessageApi.MessageObj.TextMessage(msg)); dbModel = null; } else if (strLineMsg == "$功能" || strLineMsg.ToLower() == "$menu") { NewLineMessageApi.TemplatesMsg.CarouselMessage msgObj = GetCarouselMsg(strConn, LineEvent, ChannelObj); ChannelObj.SendReplyMessage(LineEvent.replyToken, new NewLineMessageApi.MessageObj.TemplateMessage() { altText = "我要查資料", template = msgObj }); dbModel = null; } } if (dbModel != null) { /*save*/ dbModel.Save(strConn); } break; case EventType.follow: break; case EventType.unfollow: break; case EventType.join: switch (LineEvent.source.type) { case SourceType.user: break; case SourceType.group: if (LineEvent.source.groupId != "123") { ChannelObj.Leave(LineEvent.source.groupId, SourceType.group); } break; case SourceType.room: ChannelObj.Leave(LineEvent.source.roomId, SourceType.room); break; default: break; } break; case EventType.leave: break; case EventType.postback: if (LineEvent.postback.data == "統計資料日期") { if (LineEvent.postback.Params != null) { var time = LineEvent.postback.Params.date; if (time.HasValue) { ChannelObj.SendReplyMessage(LineEvent.replyToken, new NewLineMessageApi.MessageObj.TextMessage(dbModel.GetReportsDefault(strConn, time.Value))); } } } break; case EventType.beacon: break; default: break; } } return(Ok()); }