//パスワード private void MainMenuPassword_Click(object sender, EventArgs e) { foreach (ListViewItem item in listViewUser.SelectedItems) { var password = item.SubItems[ColPassword].Text; if (password == "") { var id = item.SubItems[ColId].Text; //未設定の場合は、再取得する var rnd = new Random(Environment.TickCount); password = string.Format("{0}abc#${1}", rnd.Next(100, 999), rnd.Next(100, 999)); if (!FbUtil.SetPassword(id, password, _accessToken)) { password = ""; MessageBox.Show("パスワードの変更に失敗しました", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { RefreshUrl();//パスワード変更に成功した場合は、ログインURLも再取得する必要がある } } item.SubItems[ColPassword].Text = password; if (password != "") { Clipboard.SetText(password); } break; //1行のみ処理 } }
//最新の状態 private void MainMenuRefresh_Click(object sender, EventArgs e) { listViewUser.Items.Clear(); var users = FbUtil.GetUsers(_appId, _accessToken); foreach (var user in users) { listViewUser.Items.Add(OneUser2Item(user)); } SetNumber();//採番 }
//各行の表示更新 名前及び性別の更新 private void listViewUser_SelectedIndexChanged(object sender, EventArgs e) { foreach (ListViewItem item in listViewUser.SelectedItems) { if (item.SubItems[ColName].Text == "" || item.SubItems[ColGender].Text == "") { var oneUser = FbUtil.GetOneUser(item.SubItems[ColId].Text, item.SubItems[ColLoginurl].Text); if (oneUser != null) { item.SubItems[ColName].Text = oneUser.Name; item.SubItems[ColGender].Text = oneUser.Gender; } } } }
//ユーザの削除 private void MainMenuDeleteUser_Click(object sender, EventArgs e) { foreach (ListViewItem item in listViewUser.SelectedItems) { var id = item.SubItems[ColId].Text; if (!FbUtil.DeleteUser(id, _accessToken)) { MessageBox.Show("削除に失敗しました。", "ERROR"); } else { listViewUser.Items.Remove(item); } } SetNumber();//採番 }
//友達の追加 private void MainMenuFriend_Click(object sender, EventArgs e) { if (listViewUser.SelectedItems.Count <= 0) { return; } OneUser me = null; var ar = new List <OneUser>(); for (var i = 0; i < listViewUser.Items.Count; i++) { var item = listViewUser.Items[i]; var oneUser = Item2OneUser(item); if (listViewUser.SelectedItems[0] == item) { me = oneUser; //自分 if (string.IsNullOrEmpty(me.AccessToken)) { MessageBox.Show("アプリ許可が無いので、友達を作成することはできません", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); return; //AccessTokenが無い場合、友達の作成はできない } } else { //AccessTokenがある(アプリ許可されているユーザ)のみが対象になる if (!string.IsNullOrEmpty(oneUser.AccessToken)) { ar.Add(oneUser); //自分以外 } } } var dlg = new FriendDlg(ar); if (DialogResult.OK == dlg.ShowDialog()) { foreach (var a in dlg.Ar) { if (!FbUtil.CreateFriend(me, a)) { MessageBox.Show("友達の追加に失敗しました", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } } } }
//LoginUrl及びAccessTokenの更新 private void RefreshUrl() { var users = FbUtil.GetUsers(_appId, _accessToken); foreach (var user in users) { for (var i = 0; i < listViewUser.Items.Count; i++) { var item = listViewUser.Items[i]; if (user.Id == item.SubItems[ColId].Text) { item.SubItems[ColLoginurl].Text = user.LoginUrl; item.SubItems[ColAccessToken].Text = user.AccessToken; break; } } } }
//初期化 private void Init() { _accessToken = FbUtil.GetAccessToken(_appId, _appSecret); if (_accessToken == "") { MessageBox.Show("初期化に失敗しました。\nアプリID若しくはアプリのシークレットに誤りがないかを確認してください。", "ERROR"); } //メニュー初期化 var initialize = (_accessToken != ""); MainMenuCreateUser.Enabled = initialize; MainMenuDeleteUser.Enabled = initialize; MainMenuLogin.Enabled = initialize; MainMenuFriend.Enabled = initialize; MainMenuRefresh.Enabled = initialize; //最新の状態 MainMenuRefresh_Click(null, null); }
//ユーザ作成 private void MainMenuCreateUser_Click(object sender, EventArgs e) { var dlg = new CreateUserDlg(); if (DialogResult.OK == dlg.ShowDialog()) { int count = dlg.Count; for (int i = 0; i < count; i++) { var oneUser = FbUtil.CreateUser(_appId, dlg.Prefix, dlg.Installed, dlg.Permission, _accessToken); if (oneUser == null) { MessageBox.Show("ユーザの作成に失敗しました", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } else { listViewUser.Items.Insert(0, OneUser2Item(oneUser)); SetNumber();//採番 } } } }