private async Task Register() { try { var isUserExist = await CloudService.CheckUserExist(Email, CTSFactory.MakeCTS(10000).Token); isUserExist.ParseAPIResult(); if (!isUserExist.IsSuccessful) { throw new ArgumentException(); } var json = JsonObject.Parse(isUserExist.JsonSrc); var isExist = JsonParser.GetBooleanFromJsonObj(json, "isExist", false); if (isExist) { throw new ArgumentException("The email has been used."); } var registerResult = await CloudService.Register(Email, MD5.GetMd5String(Password), CTSFactory.MakeCTS(100000).Token); registerResult.ParseAPIResult(); if (!registerResult.IsSuccessful) { throw new ArgumentException(); } await Login(); } catch (ArgumentException e) { ToastService.SendToast(e.Message.IsNotNullOrEmpty() ? e.Message : "Fail to register"); } catch (TaskCanceledException e) { } catch (Exception e) { } finally { ShowLoading = Visibility.Collapsed; } }