后台代码
public class GetTenants
{
public string tenancyName { get; set; }
public string name { get; set; }
public string editionDisplayName { get; set; }
public string connectionString { get; set; }
public string isActive { get; set; }
public string creationTime { get; set; }
public string subscriptionEndDateUtc { get; set; }
public string editionId { get; set; }
public string isInTrialPeriod { get; set; }
public string id { get; set; }
}
public class MainViewModel : ViewModelBase
{
private ObservableCollection<GetTenants> \_TenantsModel;
public ObservableCollection<GetTenants> TenantsModel
{
get { return \_TenantsModel; }
set { \_TenantsModel = value;RaisePropertyChanged(); }
}
private string userName = string.Empty;
private string passWord = string.Empty;
public static string Token = string.Empty;
public string Password
{
get { return passWord; }
set { passWord = value; RaisePropertyChanged(); }
}
public string UserName
{
get { return userName; }
set { userName = value; RaisePropertyChanged(); }
}
private GetTenants \_Model;
public GetTenants Model
{
get { return \_Model; }
set { \_Model = value;RaisePropertyChanged();
}
}
private string \_CboxText;
public string CboxText
{
get { return \_CboxText; }
set { \_CboxText = value;RaisePropertyChanged(); QueryTenantsList(value); }
}
private string \_QueryNmae;
public string QueryNmae
{
get { return \_QueryNmae; }
set { \_QueryNmae = value; RaisePropertyChanged(); }
}
public RelayCommand<object> QueryTenantsCommand { get; set; }
public RelayCommand Close { get; set; }
public RelayCommand Logasync { get; private set; }
public MainViewModel()
{
QueryTenantsCommand = new RelayCommand<object>((o) => SelectModel(o));
TenantsModel = new ObservableCollection<GetTenants>();
Close = new RelayCommand(()=> ApplicationShutdown());
Logasync = new RelayCommand(()=>LogCommand());
}
private async void LogCommand()
{
if (string.IsNullOrEmpty(UserName) && string.IsNullOrEmpty(Password)) return;
JObject jObjects = new JObject();
jObjects\["userNameOrEmailAddress"\] = UserName;
jObjects\["password"\] = Password;
var LoginTask = QueryOrUpdateHttp.LoginAsync("http://47.106.71.73:5000/api/TokenAuth/Authenticate", jObjects);
var timeouttask = Task.Delay(3000);
var completedTask = await Task.WhenAny(LoginTask, timeouttask);
if (completedTask == timeouttask) return;
var jObject = JObject.Parse(LoginTask.Result.ToString());
if (string.IsNullOrEmpty(jObject.ToString()) || !string.IsNullOrEmpty(jObject\["error"\].ToString())) return;
Token = jObject\["result"\]\["accessToken"\].ToString();
if (string.IsNullOrEmpty(Token)) return;
}
public void ApplicationShutdown()
{
Messenger.Default.Send("", "ApplicationShutdown");
}
private void SelectModel(object o)
{
GetTenants combo = (o as ComboBox).SelectedItem as GetTenants;
if (combo == null) return;
QueryNmae = combo.name.Trim();
}
public static ObservableCollection<T> DeserializeJsonToList<T>(string json) where T : class
{
JsonSerializer serializer = new JsonSerializer();
using (StringReader sr = new StringReader(json))
{
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(ObservableCollection<T>));
ObservableCollection<T> list = o as ObservableCollection<T>;
return list;
}
}
private async void QueryTenantsList(string value)
{
if (string.IsNullOrEmpty(value)) return;
GetTenants loadValue = new GetTenants() { id="1", name="正在加载...."};
TenantsModel.Add( loadValue);
string result = await QueryOrUpdateHttp.GetTenantId("/api/services/app/Tenant/GetTenants?Filter=" + CboxText);
var JResult = JObject.Parse(result);
if (bool.Parse(JResult\["success"\].ToString()))
{
var results = JResult\["result"\]\["items"\].ToString();
TenantsModel.Clear();
TenantsModel = DeserializeJsonToList<GetTenants>(results);
}
else
{
MessageBox.Show("没有改公司名称");
}
}
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章