public void Fill(Guid caller, IEnumerable <User> users, string title, string action, UserInfoControl.ButtonType type = UserInfoControl.ButtonType.Empty) { _users = users; titleLabel.Text = title; actionLabel.Text = action; userCardsLayoutPanel.Controls.Clear(); foreach (var u in users) { var ui = new UserInfoControl(u.Id); ui.SetType(u.Id == caller ? UserInfoControl.ButtonType.Empty : type); if (_userActionEvent != null) { ui.SetEvent(UserInfoControl.Option.ActionButtonClick, _userActionEvent); } userCardsLayoutPanel.Controls.Add(ui); } if (!userCardsLayoutPanel.VerticalScroll.Visible) { Size = new Size() { Height = Height, Width = Width - 17 } } ; }
public void Show(Pseudo num, Parameter par = Parameter.Null) { DarkerBackGround(); string text = String.Empty, value = String.Empty, item1 = String.Empty, item2 = String.Empty; switch (par) { case Parameter.ChatTitle: text = "название чата"; value = DataBaseHelper.GetChat(_main.ChatId).Title; break; case Parameter.ChatPicture: text = "аватар чата"; break; case Parameter.UserName: text = "имя пользователя"; value = DataBaseHelper.GetUser(_main.UserId).Name; break; case Parameter.UserLogin: text = "логин пользователя"; item1 = "Введите логин:"; item2 = "Введите пароль:"; break; case Parameter.UserPassword: text = "пароль пользователя"; item1 = "Введите текущий пароль:"; item2 = "Введите новый пароль:"; break; case Parameter.UserPicture: text = "новый аватар пользователя"; break; case Parameter.LeaveChat: text = "покинуть данный чат"; break; case Parameter.DeleteChat: text = "удалить данный чат"; break; case Parameter.UsersAdd: text = "Добавить пользователей"; value = "Добавить"; break; case Parameter.UserContacts: text = "Контакты"; value = "Добавить новый контакт"; break; case Parameter.ChatMembers: case Parameter.NewChat: text = "Пользователи чата"; value = "Добавить пользователей"; break; case Parameter.MessageAttachs: text = "Вложения"; //value = "Загрузить все файлы"; break; case Parameter.ChatAttachs: text = "Материалы чата"; //value = "Загрузить все файлы"; break; } switch (num) { case Pseudo.Input: var inputDialog = new SimpleInputSubForm(text, value); if (inputDialog.ShowDialog(_main) == DialogResult.OK) { switch (par) { case Parameter.ChatTitle: DataBaseHelper.ChangeTitle(_main.ChatId, inputDialog.Result); _main.Chat_Update(); break; case Parameter.UserName: DataBaseHelper.ChangeName(_main.UserId, inputDialog.Result); break; } } break; case Pseudo.DoubleInput: var doubleInputDialog = new SimpleDoubleInputSubForm(text, item1, item2, par == Parameter.UserPassword); if (doubleInputDialog.ShowDialog(_main) == DialogResult.OK) { try { switch (par) { case Parameter.UserLogin: DataBaseHelper.ChangeLogin(_main.UserId, doubleInputDialog.Item1, doubleInputDialog.Item2); break; case Parameter.UserPassword: DataBaseHelper.ChangePassword(_main.UserId, doubleInputDialog.Item1, doubleInputDialog.Item2); break; } } catch (Exception ex) { DataBaseHelper.ExceptionHandler(ex.Message); } } break; case Pseudo.FileLoad: var fileLoadDialog = new SimpleFileLoadSubForm(text); if (fileLoadDialog.ShowDialog(_main) == DialogResult.OK) { switch (par) { case Parameter.UserPicture: DataBaseHelper.ChangeUserPicture(_main.UserId, Image.FromFile(fileLoadDialog.Result)); break; case Parameter.ChatPicture: DataBaseHelper.ChangeChatPicture(_main.ChatId, Image.FromFile(fileLoadDialog.Result)); _main.Chat_Update(); break; } } break; case Pseudo.ChatInfo: var chatInfoDialog = new ChatInfoSubForm(DataBaseHelper.GetChat(_main.ChatId)); chatInfoDialog.SetEvent(ChatInfoSubForm.Option.ChatMembersClick, ChatMembers_Click); chatInfoDialog.SetEvent(ChatInfoSubForm.Option.LeaveChatClick, LeaveChat_Click); chatInfoDialog.SetEvent(ChatInfoSubForm.Option.DeleteChatClick, DeleteChat_Click); chatInfoDialog.ShowDialog(_main); break; case Pseudo.YesNo: var yesNoDialog = new SimpleYesNoSubForm(text); if (yesNoDialog.ShowDialog() == DialogResult.Yes) { switch (par) { case Parameter.LeaveChat: _main.LeaveChat(); break; case Parameter.DeleteChat: _main.DeleteChat(); break; } } break; case Pseudo.UserSettings: var userSettingsDialog = new UserSettingsSubForm(_main.UserId); userSettingsDialog.SetEvent(UserSettingsSubForm.Option.ChangeUserNameClick, ChangeUserName_Click); userSettingsDialog.SetEvent(UserSettingsSubForm.Option.ChangeLoginClick, ChangeLogin_Click); userSettingsDialog.SetEvent(UserSettingsSubForm.Option.ChangePasswordClick, ChangePassword_Click); userSettingsDialog.SetEvent(UserSettingsSubForm.Option.ChangePictureClick, ChangePicture_Click); userSettingsDialog.SetEvent(UserSettingsSubForm.Option.LogOutClick, LogOut_Click); _current = userSettingsDialog; userSettingsDialog.ShowDialog(_main); break; case Pseudo.UserList: IEnumerable <User> userList = new List <User>(); UserInfoControl.ButtonType bType = UserInfoControl.ButtonType.Empty; var userListDialog = new UserListSubForm(); switch (par) { case Parameter.UserContacts: userList = DataBaseHelper.GetUserContacts(_main.UserId); bType = UserInfoControl.ButtonType.Delete; userListDialog.SetEvent(UserListSubForm.Option.UserActionButtonClick, DeleteUserContact_Click); userListDialog.AllowMultipleSelect = false; break; case Parameter.UsersAdd: var contacts = DataBaseHelper.GetUserContacts(_main.UserId); var members = DataBaseHelper.GetChatMembers(_main.ChatId); userList = contacts.Where(c => members.All(m => m.Id != c.Id)); bType = UserInfoControl.ButtonType.Empty; userListDialog.AllowMultipleSelect = true; userListDialog.SetEvent(UserListSubForm.Option.ActionButtonClick, AddChatMembers_Click); break; case Parameter.NewChat: userList = DataBaseHelper.GetUserContacts(_main.UserId); bType = UserInfoControl.ButtonType.Empty; userListDialog.AllowMultipleSelect = true; userListDialog.SetEvent(UserListSubForm.Option.ActionButtonClick, AddNewChat_click); break; case Parameter.ChatMembers: userList = DataBaseHelper.GetChatMembers(_main.ChatId); bType = UserInfoControl.ButtonType.Delete; userListDialog.SetEvent(UserListSubForm.Option.ActionButtonClick, SelectAddChatMembers_Click); userListDialog.SetEvent(UserListSubForm.Option.UserActionButtonClick, DeleteChatMember_Click); break; } userListDialog.Size = new Size(userListDialog.Size.Width, _main.ClientRectangle.Height - 30); userListDialog.Fill(_main.UserId, userList, text, value, bType); userListDialog.ShowDialog(_main); break; case Pseudo.FileList: IEnumerable <File> fileList = new List <File>(); switch (par) { case Parameter.MessageAttachs: fileList = DataBaseHelper.GetMessage(_main.MessageId).Attachs.ToFileList(); break; case Parameter.ChatAttachs: fileList = DataBaseHelper.GetChatAttachs(_main.ChatId).ToFileList(); break; } var attachViewDialog = new AttachsViewSubForm(text, fileList); attachViewDialog.ShowDialog(_main); break; } LighterBackGround(); }