private async void GetReply()
        {
            try
            {
                pr_Load.Visibility = Visibility.Visible;

                string url = string.Format("http://message.bilibili.com/api/notify/query.replyme.list.do?_device=wp&&_ulv=10000&access_key={0}&actionKey=appkey&appkey={1}&build=410005&data_type=1&page_size=40&platform=android&ts={2}", ApiHelper.AccessKey, ApiHelper.AndroidKey.Appkey, ApiHelper.TimeStamp);
                url += "&sign=" + ApiHelper.GetSign(url);
                string results = await WebClientClass.GetResultsUTF8Encode(new Uri(url));

                MessageReplyModel model = JsonConvert.DeserializeObject <MessageReplyModel>(results);
                if (model.code == 0)
                {
                    List <MessageReplyModel> list = JsonConvert.DeserializeObject <List <MessageReplyModel> >(model.data.ToString());
                    foreach (var item in list)
                    {
                        MessageReplyModel models = JsonConvert.DeserializeObject <MessageReplyModel>(item.publisher.ToString());
                        item.mid  = models.mid;
                        item.name = models.name;
                        item.face = models.face;
                    }
                    list_Reply.ItemsSource = list;
                }
                else
                {
                    Utils.ShowMessageToast("读取失败" + model.message, 3000);
                }
            }
            catch (Exception)
            {
                Utils.ShowMessageToast("读取失败", 3000);
            }
            finally
            {
                pr_Load.Visibility = Visibility.Collapsed;
            }
        }
Beispiel #2
0
        public async Task SendMessageReplyAsync(MessageReplyModel reply, string baseUrl)
        {
            var msg = await messagesRepository.GetMessageAsync(reply.MessageId);

            var sender = msg.FromUserId == reply.UserId ? msg.FromUser : msg.ToUser;

            var discordWebhookUrl = await usersRepository.GetUserDiscordWebhookUrl(msg.FromUserId == reply.UserId?msg.ToUserId : msg.FromUserId);

            if (string.IsNullOrEmpty(discordWebhookUrl))
            {
                return;
            }

            var eb = new EmbedBuilder();

            eb.WithColor(Color.Blue);
            eb.WithUrl(baseUrl + "/messages/" + msg.Id);
            eb.WithTitle($"New Reply Message #{msg.Id}");
            eb.WithDescription($"{sender.Name} sent a new reply to message: **{msg.Title}**");
            eb.WithFooter(sender.Name);
            eb.WithCurrentTimestamp();

            SendEmbed(discordWebhookUrl, eb.Build());
        }
Beispiel #3
0
        public ActionResult DetailView(int id)
        {
            var       userName                = User.Identity.GetUserName();
            DataTable dtblProject             = new DataTable();
            DataTable dtblMessageboard        = new DataTable();
            DataTable dtblMessageboardReplies = new DataTable();
            DataTable dtblProjectUser         = new DataTable();
            DataTable img = new DataTable();

            byte[] profileImage = null;
            string contentType  = "";

            using (SqlConnection sqlCon = new SqlConnection(connectionString))
            {
                sqlCon.Open();
                string         query = "SELECT * FROM Projects WHERE Id = @Id";
                SqlDataAdapter sqlDa = new SqlDataAdapter(query, sqlCon);
                sqlDa.SelectCommand.Parameters.AddWithValue("@Id", id);
                sqlDa.Fill(dtblProject);

                query = "SELECT * FROM Messageboards WHERE ProjectId = @Id";
                sqlDa = new SqlDataAdapter(query, sqlCon);
                sqlDa.SelectCommand.Parameters.AddWithValue("@Id", id);
                sqlDa.Fill(dtblMessageboard);

                query = "SELECT * FROM ProjectUser WHERE ProjectId = @Id";
                sqlDa = new SqlDataAdapter(query, sqlCon);
                sqlDa.SelectCommand.Parameters.AddWithValue("@Id", id);
                sqlDa.Fill(dtblProjectUser);

                string selectQuery = "SELECT AspNetUsers.ProfileImage, AspNetUsers.FileContentType, AspNetUsers.UserName FROM AspNetUsers, ProjectUser WHERE ProjectUser.ProjectId = " + id + " AND AspNetUsers.UserName = ProjectUser.Name";

                // Read Byte [] Value from Sql Table
                SqlCommand selectCommand = new SqlCommand(selectQuery, sqlCon);

                sqlDa = new SqlDataAdapter(selectQuery, sqlCon);
                sqlDa.Fill(img);

/*
 *              SqlDataReader reader;
 *              reader = selectCommand.ExecuteReader();
 *              Dictionary<string, string> images = new Dictionary<string, string>();
 *              if (reader != null)
 *              {
 *                  if (reader.Read() && !System.Convert.IsDBNull(reader.GetValue(0)))
 *                  {
 *                      profileImage = (byte[])reader.GetValue(0);
 *                      contentType = Convert.ToString(reader.GetValue(1));
 *                      userName = Convert.ToString(reader.GetValue(2));
 *
 *                      images.Add("testo", "test");
 *
 *                      images.Add(userName, string.Format("data:{0};base64,{1}",
 *                          contentType, Convert.ToBase64String(profileImage)));
 *                      Debug.WriteLine(userName);
 *                      Debug.WriteLine("++++++++++++++++++ " + userName +" "+ string.Format("data:{0};base64,{1}",
 *                          contentType, Convert.ToBase64String(profileImage)));
 *
 *                  }
 *              }
 */
                //ViewBag.Images = images;
            }

            Dictionary <string, string> images = new Dictionary <string, string>();

            Debug.WriteLine("++++++++++++++++++ " + img.Rows.Count);
            images.Add("testo", "test");
            if (img.Rows.Count >= 1)
            {
                for (int i = 0; i < img.Rows.Count; i++)
                {
                    if (img.Rows[i][0] != System.DBNull.Value && img.Rows[i][1] != System.DBNull.Value && img.Rows[i][2] != System.DBNull.Value)
                    {
                        profileImage = (byte[])img.Rows[i][0];
                        contentType  = img.Rows[i][1].ToString();
                        userName     = img.Rows[i][2].ToString();

                        Debug.WriteLine("++++++++++++++++++ " + img.Rows.Count + " " + userName);

                        images.Add(userName, string.Format("data:{0};base64,{1}", contentType, Convert.ToBase64String(profileImage)));
                    }
                }
            }
            ViewBag.Images = images;

            if (dtblProject.Rows.Count == 1)
            {
                ProjectViewModel pvm = new ProjectViewModel();
                pvm.Id          = Convert.ToInt32(dtblProject.Rows[0][0].ToString());
                pvm.Name        = dtblProject.Rows[0][1].ToString();
                pvm.Description = dtblProject.Rows[0][2].ToString();
                pvm.ManagerId   = dtblProject.Rows[0][3].ToString();
                pvm.ManagerName = dtblProject.Rows[0][4].ToString();

                for (int i = 0; i < dtblProjectUser.Rows.Count; i++)
                {
                    pvm.Member.Add(dtblProjectUser.Rows[i][1].ToString());
                }
                for (int i = 0; i < dtblMessageboard.Rows.Count; i++)
                {
                    MessageViewModel mvm = new MessageViewModel();
                    mvm.Id              = Convert.ToInt32(dtblMessageboard.Rows[i][0].ToString());
                    mvm.Message         = dtblMessageboard.Rows[i][1].ToString();
                    mvm.Author          = dtblMessageboard.Rows[i][3].ToString();
                    mvm.Date            = dtblMessageboard.Rows[i][4].ToString();
                    mvm.FileName        = dtblMessageboard.Rows[i][5].ToString();
                    mvm.FileContentType = dtblMessageboard.Rows[i][6].ToString();
                    using (SqlConnection sqlCon = new SqlConnection(connectionString))
                    {
                        sqlCon.Open();
                        string         query = "SELECT * FROM MessageboardReplies WHERE MessageboardId = @mId";
                        SqlDataAdapter sqlDa = new SqlDataAdapter(query, sqlCon);
                        sqlDa.SelectCommand.Parameters.AddWithValue("@mId", dtblMessageboard.Rows[i][0].ToString());
                        sqlDa.Fill(dtblMessageboardReplies);
                    }
                    for (int j = 0; j < dtblMessageboardReplies.Rows.Count; j++)
                    {
                        string info1 = dtblMessageboardReplies.Rows[j][3].ToString();
                        string info2 = dtblMessageboard.Rows[i][0].ToString();
                        System.Diagnostics.Debug.WriteLine(info1 + " compared to: " + info2);
                        if (dtblMessageboardReplies.Rows[j][3].ToString() == dtblMessageboard.Rows[i][0].ToString())
                        {
                            MessageReplyModel mrm = new MessageReplyModel();
                            mrm.Id      = Convert.ToInt32(dtblMessageboardReplies.Rows[j][0]);
                            mrm.Message = dtblMessageboardReplies.Rows[j][1].ToString();
                            mrm.Author  = dtblMessageboardReplies.Rows[j][2].ToString();
                            mrm.Date    = dtblMessageboardReplies.Rows[j][4].ToString();
                            mvm.MessageReplies.Add(mrm);
                            System.Diagnostics.Debug.WriteLine(mvm.MessageReplies.Count.ToString());
                        }
                    }
                    pvm.Messages.Add(mvm);
                }

                ViewBag.IsAuthorized = userName;

                return(View(pvm));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
        public async Task DeleteReplyAsync(MessageReplyModel reply)
        {
            await HttpClient.DeleteAsync("api/messages/replies/" + reply.Id);

            Message.Replies.Remove(reply);
        }
        private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
        {
            MessageReplyModel model = (sender as HyperlinkButton).DataContext as MessageReplyModel;

            this.Frame.Navigate(typeof(UserInfoPage), model.mid);
        }