private async void MainContentMouseEvent(object s, MouseButtonEventArgs e)
        {
            string id = (string)((FrameworkElement)s).Tag;

            try
            {
                CommentData.PostData data = await KakaoRequestClass.GetPost(id);

                PostWindow.ShowPostWindow(data, id);
            }
            catch (Exception) { }
            e.Handled = true;
        }
        private void AddShares(List <ShareData.Share> shares)
        {
            foreach (var share in shares)
            {
                FriendSelectControl fsc = new FriendSelectControl();
                AssignProfile(fsc, share.actor, this);
                fsc.Grid.MouseLeftButtonDown += async(s, e) =>
                {
                    try
                    {
                        PostData pd = await KakaoRequestClass.GetPost(share.activity_id);

                        PostWindow.ShowPostWindow(pd, share.activity_id);
                    }
                    catch (Exception) {}
                    e.Handled = true;
                };
                SP_Shares.Children.Add(fsc);
            }
        }
        public async Task Refresh()
        {
            PR_Loading.IsActive  = true;
            BT_Refresh.IsEnabled = false;
            TB_RefreshBT.Text    = "갱신중..";
            IC_Refresh.Kind      = MaterialDesignThemes.Wpf.PackIconKind.ProgressClock;
            List <CSNotification> notifications = await KakaoRequestClass.RequestNotification(true);

            SP_Content.Children.Clear();
            foreach (var notification in notifications)
            {
                string thumbnailURL = notification.actor?.profile_thumbnail_url ?? "";
                if (Properties.Settings.Default.GIFProfile && notification.actor?.profile_video_url_square_small != null)
                {
                    thumbnailURL = notification.actor?.profile_video_url_square_small;
                }
                string message              = notification.message;
                string timestamp            = PostWindow.GetTimeString(notification.created_at);
                NotificationControl content = new NotificationControl();
                MainWindow.SetClickObject(content);
                content.TB_Content.Text    = message;
                content.TB_Content.ToolTip = content.TB_Content.Text;
                string contentMessage = notification.content ?? "내용 없음";
                if (contentMessage.Contains("\n"))
                {
                    contentMessage = contentMessage.Split(new string[] { "\n" }, StringSplitOptions.None)[0];
                }

                content.TB_Message.Text    = contentMessage;
                content.TB_Message.ToolTip = content.TB_Message.Text;
                if (!notification.is_new)
                {
                    content.RA_Notify.Fill = Brushes.Transparent;
                }
                if (content.TB_Message.Text.Trim().Length == 0)
                {
                    content.TB_Message.Text = "내용 없음";
                }
                content.TB_Date.Text = timestamp;
                string uri = "https://story.kakao.com/";
                GlobalHelper.AssignImage(content.IMG_Thumbnail, thumbnailURL);
                MainWindow.SetClickObject(content.IMG_Thumbnail);
                content.IMG_Thumbnail.MouseLeftButtonDown += (s, e) =>
                {
                    try
                    {
                        TimeLineWindow tlw = new TimeLineWindow(notification.actor.id);
                        tlw.Show();
                        tlw.Activate();
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("접근이 불가능한 스토리입니다.");
                    }
                    e.Handled = true;
                };
                if (notification.scheme.Contains("?profile_id="))
                {
                    var ObjStr   = notification.scheme.Split(new string[] { "?profile_id=" }, StringSplitOptions.None);
                    var Profile  = ObjStr[1];
                    var Identity = ObjStr[0].Split('.')[1];
                    uri += Profile + "/" + Identity + "!" + ObjStr[0];
                    var feedID = ObjStr[0].Split(new string[] { "activities/" }, StringSplitOptions.None)[1];
                    content.MouseLeftButtonDown += async(s, e) =>
                    {
                        string target = uri.Split(new string[] { "!" }, StringSplitOptions.None)[0];
                        try
                        {
                            var post = await KakaoRequestClass.GetPost(feedID);

                            PostWindow.ShowPostWindow(post, feedID);
                        }
                        catch (Exception) { }
                        content.RA_Notify.Fill = Brushes.Transparent;
                        e.Handled = true;
                    };
                }
                else if (notification.scheme.Contains("kakaostory://profiles/"))
                {
                    content.MouseLeftButtonDown += (s, e) =>
                    {
                        try
                        {
                            string         id  = notification.scheme.Replace("kakaostory://profiles/", "");
                            TimeLineWindow tlw = new TimeLineWindow(id);
                            tlw.Show();
                            tlw.Activate();
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("접근할 수 없는 스토리입니다.");
                        }
                        e.Handled = true;
                    };
                }
                SP_Content.Children.Add(content);
            }
            BT_Refresh.IsEnabled = true;
            TB_RefreshBT.Text    = "새로고침";
            IC_Refresh.Kind      = MaterialDesignThemes.Wpf.PackIconKind.Refresh;

            SV_Content.ScrollToTop();
            RA_Loading.Visibility = Visibility.Collapsed;
            PR_Loading.IsActive   = false;
        }
 public static void ActivateHandler(string invokedArgs, NotificationUserInput userInput)
 {
     Application.Current.Dispatcher.Invoke(async delegate
     {
         if (!invokedArgs.Contains("default null string"))
         {
             try
             {
                 if (invokedArgs.Contains("LIKE!@#$%"))
                 {
                     string text       = invokedArgs.Substring(0, invokedArgs.IndexOf("LIKE!@#$%"));
                     string activityID = text.Split(new string[] { "activities/" }, StringSplitOptions.None)[1];
                     string commentID  = invokedArgs.Split(new string[] { "LIKE!@#$%" }, StringSplitOptions.None)[1];
                     await KakaoRequestClass.LikeComment(activityID, commentID, false);
                 }
                 else if (invokedArgs.Contains("REPLY!@#$%"))
                 {
                     string text       = invokedArgs.Substring(0, invokedArgs.IndexOf("REPLY!@#$%"));
                     string[] datas    = invokedArgs.Split(new string[] { "R!@=!!" }, StringSplitOptions.None);
                     string id         = datas[1];
                     string name       = datas[2];
                     string writer     = datas[3];
                     string identity   = datas[4];
                     string msg        = userInput["tbReply"];
                     string activityID = text.Split(new string[] { "activities/" }, StringSplitOptions.None)[1];
                     await KakaoRequestClass.ReplyToFeed(activityID, msg, id, name);
                 }
                 else
                 {
                     //MessageBox.Show(invokedArgs);
                     string text       = invokedArgs.Split(new string[] { "!" }, StringSplitOptions.None)[1];
                     string activityID = text.Split(new string[] { "activities/" }, StringSplitOptions.None)[1];
                     string url        = invokedArgs.Split(new string[] { "!" }, StringSplitOptions.None)[0];
                     try
                     {
                         PostData data = await KakaoRequestClass.GetPost(activityID);
                         if (data != null && activityID != null)
                         {
                             PostWindow.ShowPostWindow(data, activityID);
                         }
                     }
                     catch (Exception) { }
                 }
             }
             catch (Exception)
             {
                 try
                 {
                     string id = invokedArgs.Replace("https://story.kakao.com/", "");
                     if (id.Length > 0)
                     {
                         TimeLineWindow tlw = new TimeLineWindow(id);
                         tlw.Show();
                         tlw.Activate();
                     }
                     else
                     {
                         throw new InvalidDataException();
                     }
                 }
                 catch (Exception)
                 {
                     System.Diagnostics.Process.Start(invokedArgs.Split(new string[] { "!" }, StringSplitOptions.None)[0]);
                 }
             }
         }
     });
 }