Пример #1
0
 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
         }
     }
     ;
 }
Пример #2
0
        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();
        }