using CollaborativePlatformMain.DFEntity.MessageSubUtil;
using CollaborativePlatformMain.Form.MessageSubPage.Project;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace CollaborativePlatformMain.Form.MessageSubPage
{
///
/// SeconMessagePage.xaml 的交互逻辑
///
public partial class SeconMessagePage : Page
{
///
/// 父级窗体
///
public HomepageForm Homepage;
///
/// 有参构造
///
/// 父级窗体
public SeconMessagePage(HomepageForm homepageForm)
{
InitializeComponent();
Homepage = homepageForm;
}
public ObservableCollection tongzhis1 = new ObservableCollection();
public ObservableCollection tongzhis2 = new ObservableCollection();
public ObservableCollection xiangmu1 = new ObservableCollection();
public ObservableCollection xiangmu2 = new ObservableCollection();
public List xitong1 = new List();
public List xitong2 = new List();
///
/// 消息更新
///
public static List MessageDatas = new List();
///
/// 窗体初始化
///
///
///
private void Window_Loaded(object sender, RoutedEventArgs e)
{
List secondaryNodes = new List() { "通知公告", "项目", "系统" };
for (int i = 0; i < secondaryNodes.Count; i++)
{
if (i == 0)
{
List projects = new List() { "国博城项目总消息", "北京大兴项目总消息", "绿地项目总消息" };
MessageData messageData = new MessageData();
messageData.SeconNode = secondaryNodes[i];
messageData.ThreeNodes = projects;
tongzhis1.Add(messageData);
for (int j = 0; j < projects.Count; j++)
{
MessageData threeData = new MessageData();
threeData.SeconNode = projects[j];
if (j == 0)
{
List nodes = new List() { "按甲方要求,国博城项目务必在4月15号之前完成报审版。" };
threeData.ThreeNodes = nodes;
}
else if (j == 1)
{
List nodes = new List() { "按甲方要求,北京大兴项目务必在4月22号之前完成报审版。" };
threeData.ThreeNodes = nodes;
}
else if (j == 2)
{
List nodes = new List() { "按甲方要求,绿地项目务必在4月30号之前完成报审版。" };
threeData.ThreeNodes = nodes;
}
tongzhis2.Add(threeData);
}
}
else if (i == 1)
{
List projects = new List() { };
//添加新增数据
projects.AddRange(MessageDatas.Select(x => x.SeconNode).ToList());
MessageData messageData = new MessageData();
messageData.SeconNode = secondaryNodes[i];
messageData.ThreeNodes = projects;
xiangmu1.Add(messageData);
for (int j = 0; j < projects.Count; j++)
{
MessageData threeData = new MessageData();
threeData.SeconNode = projects[j];
//if (j == 0)
//{
// List nodes = new List() { "国博城项目建筑1#楼3层更新。", "国博城项目建筑1#楼5层更新", "国博城项目建筑2#楼3层更新。" };
// threeData.ThreeNodes = nodes;
//}
//else if (j == 1)
//{
// List nodes = new List() { "北京大兴项目结构2#楼1层墙柱平法图更新。", "北京大兴项目结构1#楼3层墙柱平法图更新。" };
// threeData.ThreeNodes = nodes;
//}
//else if (j == 2)
//{
// List nodes = new List() { "绿地项目地下人防图更新。", "绿地项目暖通3#楼3层更新" };
// threeData.ThreeNodes = nodes;
//}
//else
//{
foreach (var item in MessageDatas)
{
if (item.SeconNode.Equals(threeData.SeconNode))
{
threeData.ThreeNodes = item.ThreeNodes;
break;
}
}
//}
xiangmu2.Add(threeData);
}
}
else if (i == 2)
{
List projects = new List() { "系统更新", "停服升级" };
MessageData messageData = new MessageData();
messageData.SeconNode = secondaryNodes[i];
messageData.ThreeNodes = projects;
xitong1.Add(messageData);
for (int j = 0; j < projects.Count; j++)
{
MessageData threeData = new MessageData();
threeData.SeconNode = projects[j];
if (j == 0)
{
List nodes = new List() { "交互平台版本更新至2.0版本",
" 本次更新了:",
" 1.主界面消息分组。",
" 2.修改了登陆界面。",
" 请及时更新!!",};
threeData.ThreeNodes = nodes;
}
else if (j == 1)
{
List nodes = new List() { "交互平台版本将在4月13日8点20分至4月13日8点50分进行停服更新",
"本次停服更新不会导致您的数据丢失。"};
threeData.ThreeNodes = nodes;
}
xitong2.Add(threeData);
}
}
}
me_message.Children.Clear();
foreach (var item in tongzhis2)
{
Button button = new Button();
button.Content = item.SeconNode;
button.BorderThickness = new Thickness(0);
button.Width = 180;
button.Height = 30;
button.Tag = item;
button.Click += new RoutedEventHandler(messageBtnClick);
button.HorizontalContentAlignment = HorizontalAlignment.Left;
me_message.Children.Add(button);
}
}
///
/// 二级菜单选中的元素
///
public static string SelectNode = "";
///
/// 通知公告
///
///
///
private void me_announcementClick(object sender, RoutedEventArgs e)
{
MenuItem menu = sender as MenuItem;
if (menu == null) return;
me_message.Children.Clear();
foreach (var item in tongzhis2)
{
Button button = new Button();
button.Content = item.SeconNode;
button.BorderThickness = new Thickness(0);
button.Width = 180;
button.Height = 30;
button.Background = Brushes.WhiteSmoke;
button.Visibility = Visibility.Visible;
button.Click += new RoutedEventHandler(messageBtnClick);
button.Tag = item;
button.HorizontalContentAlignment = HorizontalAlignment.Left;
me_message.Children.Add(button);
}
SelectNode = menu.Header.ToString();
}
///
/// 项目
///
///
///
private void me_projectClick(object sender, RoutedEventArgs e)
{
MenuItem menu = sender as MenuItem;
if (menu == null) return;
me_message.Children.Clear();
foreach (var item in xiangmu2)
{
Button button = new Button();
button.Content = item.SeconNode;
button.BorderThickness = new Thickness(0);
button.Width = 180;
button.Height = 30;
button.Tag = item;
button.Click += new RoutedEventHandler(messageBtnClick);
button.HorizontalContentAlignment = HorizontalAlignment.Left;
me_message.Children.Add(button);
}
SelectNode = menu.Header.ToString();
}
///
/// 系统
///
///
///
private void me_systemClick(object sender, RoutedEventArgs e)
{
MenuItem menu = sender as MenuItem;
if (menu == null) return;
me_message.Children.Clear();
foreach (var item in xitong2)
{
Button button = new Button();
button.Content = item.SeconNode;
button.BorderThickness = new Thickness(0);
button.Width = 180;
button.Height = 30;
button.Tag = item;
button.Click += new RoutedEventHandler(messageBtnClick);
button.HorizontalContentAlignment = HorizontalAlignment.Left;
me_message.Children.Add(button);
}
SelectNode = menu.Header.ToString();
}
///
/// 具体消息按钮
///
///
///
private void messageBtnClick(object sender, RoutedEventArgs e)
{
Button button = sender as Button;
MessageData announcement = button.Tag as MessageData;
if (announcement == null) return;
List specificContent = announcement.ThreeNodes;
me_right.Children.Clear();
foreach (var specificConten in specificContent)
{
//ScrollViewer scrollViewer = new ScrollViewer();
//scrollViewer.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
//me_right.Children.Add(scrollViewer);
if (SelectNode.Equals("项目"))
{
DockPanel dockPanel = new DockPanel();
dockPanel.Margin = new Thickness(0, 10, 30, 0);
dockPanel.HorizontalAlignment = HorizontalAlignment.Right;
TextBlock textBlock1 = new TextBlock();
textBlock1.Text = "查看";
textBlock1.FontSize = 13;
textBlock1.Foreground = new SolidColorBrush(Colors.Green);
textBlock1.TextDecorations = TextDecorations.Underline;
textBlock1.Margin = new Thickness(0, 0, 10, 0);
textBlock1.FontFamily = new FontFamily("黑体");
textBlock1.DataContext = specificConten;
textBlock1.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(Message_Look);
textBlock1.HorizontalAlignment = HorizontalAlignment.Right;
dockPanel.Children.Add(textBlock1);
TextBlock textBlock2 = new TextBlock();
textBlock2.Text = "忽略";
textBlock2.FontSize = 13;
textBlock2.FontFamily = new FontFamily("黑体");
textBlock2.Foreground = new SolidColorBrush(Colors.Green);
textBlock2.TextDecorations = TextDecorations.Underline;
textBlock2.DataContext = specificConten;
textBlock2.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(Message_Ignore);
dockPanel.Children.Add(textBlock2);
dockPanel.HorizontalAlignment = HorizontalAlignment.Right;
StackPanel stackPanel1 = new StackPanel();
TextBlock textBlock3 = new TextBlock();
textBlock3.Text = specificConten;
textBlock3.FontSize = 15;
textBlock3.FontFamily = new FontFamily("黑体");
textBlock3.DataContext = specificConten;
textBlock3.HorizontalAlignment = HorizontalAlignment.Left;
stackPanel1.DataContext = specificConten;
stackPanel1.Children.Add(textBlock3);
stackPanel1.Children.Add(dockPanel);
stackPanel1.Width = 480;
me_right.Children.Add(stackPanel1);
}
else
{
TextBlock textBlock = new TextBlock();
textBlock.Text = specificConten;
textBlock.FontSize = 15;
textBlock.FontFamily = new FontFamily("黑体");
textBlock.DataContext = announcement;
me_right.Children.Add(textBlock);
}
}
}
///
/// 忽略事件
///
///
///
private void Message_Ignore(object sender, RoutedEventArgs e)
{
int count = xiangmu2.Count;
TextBlock textBlock = sender as TextBlock;
string messageData = textBlock.DataContext as string;
bool isEqual = false;
//删除单独一条消息
foreach (var item in xiangmu2)
{
for (int i = 0; i < item.ThreeNodes.Count; i++)
{
string iThreeNode = item.ThreeNodes[i];
if (iThreeNode.Equals(messageData))
{
item.ThreeNodes.RemoveAt(i);
isEqual = true;
break;
}
}
if (isEqual) break;
}
for (int i = 0; i < me_right.Children.Count; i++)
{
if (me_right.Children[i] is StackPanel stackPanel)
{
for (int j = 0; j < stackPanel.Children.Count; j++)
{
string stackMessageData = stackPanel.DataContext as string;
if (stackMessageData.Equals(messageData))
{
me_right.Children.RemoveAt(i);
i--;
break;
}
}
}
}
xiangmu2 = new ObservableCollection(xiangmu2.Where(x => x.ThreeNodes.Count > 0));
//一条信息没有父级删除
if (count != xiangmu2.Count)
{
me_message.Children.Clear();
foreach (var item in xiangmu2)
{
Button button = new Button();
button.Content = item.SeconNode;
button.BorderThickness = new Thickness(0);
button.Width = 180;
button.Height = 30;
button.Tag = item;
button.Click += new RoutedEventHandler(messageBtnClick);
button.HorizontalContentAlignment = HorizontalAlignment.Left;
me_message.Children.Add(button);
}
}
}
///
/// 查看
///
///
///
private void Message_Look(object sender, RoutedEventArgs e)
{
TextBlock textBlock = sender as TextBlock;
string messageData = textBlock.DataContext as string;
Dictionary keyValuePairs = SeconProjectPage.floor_quanPages;
FullProfessionPage fullProfessionPage = null;
foreach (var item in keyValuePairs)
{
string probBuliName = item.Key.Replace(" ", "");
messageData = messageData.Replace("项目", "");
messageData = messageData.Replace(" ", "");
messageData = messageData.Replace("更新", "");
messageData = messageData.Replace("建筑", "");
if (messageData.Contains(probBuliName))
{
fullProfessionPage = item.Value;
break;
}
}
if (fullProfessionPage != null)
{
BigFullProfessiongForm bigFullProfessiongForm = new BigFullProfessiongForm(Homepage, OperatingFloorPage.FullProfessionPage, messageData);
bigFullProfessiongForm.ShowDialog();
}
}
}
}