using 智能仓储WCS管理系统.ViewModel;
using HandyControl.Controls;
using HandyControl.Tools.Extension;
using Ping9719.WpfEx.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
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;
using MessageBox = HandyControl.Controls.MessageBox;
using Window = System.Windows.Window;
using 智能仓储WCS管理系统.Views.Controls;
using WCS.Model.ApiModel.User;
using WCS.Model;
using 智能仓储WCS管理系统.Api;
using WCS.Model.ApiModel;
namespace 智能仓储WCS管理系统
{
///
/// 用户信息
///
public partial class UserEditView : Window
{
public UserEditView()
{
InitializeComponent();
}
///
///
///
/// true:成功,false:取消
public static bool Show(UserModel userBase, CrudEnum crudEnum)
{
bool isOk = false;
var roleList = new List();
//调用接口获取权限列表
var dia = Dialog.Show(new TextDialog());
try
{
var body = new GetUsersRequest()
{
UserName = LocalStatic.CurrentUser,
DeviceType = LocalFile.Config.DeviceType,
Info = string.Empty,
};
var Result = ApiHelp.GetDataFromHttp>>(LocalFile.Config.ApiIpHost + "user/getRoles", body, "POST");
if (Result != null && Result.Data != null)
{
roleList = Result.Data;
}
}
catch (Exception ex)
{
Growl.Error("加载数据失败:" + ex.Message);
}
finally
{
dia.Close();
}
Application.Current.Dispatcher.Invoke(new Action(() =>
{
var view = new UserEditView();
try
{
if (crudEnum == CrudEnum.Read)
view.qr.IsEnabled = false;
var rs = roleList.Where(o => !o.IsAdmin).ToList();
view.textBox.Text = userBase.LoginName;
view.passwordBox.Password = userBase.Password;
view.checkComboBox.ItemsSource = rs;
view.checkComboBox.DisplayMemberPath = nameof(RoleModel.Name);
view.checkComboBox.SelectedValuePath = nameof(RoleModel.Id);
//var aaa = rs.Where(o => userBase.RoleIds.Contains(o.Id)).ToList();
//ListBoxAttach.SetSelectedItems(view.checkComboBox, aaa);
foreach (var item in userBase.RoleIds)
{
var aaa = rs.FirstOrDefault(o => o.Id == item);
if (aaa != null)
view.checkComboBox.SelectedItems.Add(aaa);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
view = null;
return;
}
view.qr.Click += (s, e) =>
{
try
{
UserModel newuser = new UserModel()
{
Id = userBase.Id,
IsAdmin = userBase.IsAdmin,
LoginName = view.textBox.Text.Trim(),
Password = view.passwordBox.Password,
RoleIds = view.checkComboBox.SelectedItems.Cast().Select(o => o.Id).ToList(),
Time = userBase.Time,
};
if (crudEnum == CrudEnum.Update)
{
if (string.IsNullOrEmpty(newuser.LoginName))
{
MessageBox.Show("请输入名称");
return;
}
try
{
var body = new AddUserRequest()
{
UserName = LocalStatic.CurrentUser,
DeviceType = LocalFile.Config.DeviceType,
User = newuser,
AddOrUpdate = AddOrUpdate.Update
};
var Result = ApiHelp.GetDataFromHttp>(LocalFile.Config.ApiIpHost + "user/addUser", body, "POST");
if (Result != null && Result.Code == 200)
{
isOk = true;
view.Close();
}
else
{
Growl.Error(Result.Message);
}
}
catch (Exception ex)
{
Growl.Error("更新数据失败:" + ex.Message);
}
}
else if (crudEnum == CrudEnum.Create)
{
newuser.Id = 0;
newuser.Time = DateTime.Now;
if (string.IsNullOrEmpty(newuser.LoginName))
{
MessageBox.Show("请输入名称");
return;
}
//调用接口获取权限列表
try
{
var body = new AddUserRequest()
{
UserName = LocalStatic.CurrentUser,
DeviceType = LocalFile.Config.DeviceType,
User = newuser,
AddOrUpdate = AddOrUpdate.Add
};
var Result = ApiHelp.GetDataFromHttp>(LocalFile.Config.ApiIpHost + "user/addUser", body, "POST");
if (Result != null && Result.Code == 200)
{
isOk = true;
view.Close();
}
else
{
Growl.Error(Result.Message);
}
}
catch (Exception ex)
{
Growl.Error("新增用户失败:" + ex.Message);
}
}
else
{
MessageBox.Show("不支持此操作");
return;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
return;
}
//isOk = true;
//view.Close();
};
view.ShowDialog();
view = null;
}));
return isOk;
}
private void qx(object sender, RoutedEventArgs e)
{
this.Close();
}
}
}