Exemple #1
0
        private async void SaveUserBtn_Click(object sender, EventArgs e)
        {
            string firstName  = firstNameTextBox.Text;
            string middleName = middleNameTextBox.Text;
            string lastName   = lastNameTextBox.Text;

            if (IsNullOrEmpty(value: firstName))
            {
                firstNameTextBox.Select();
            }
            if (IsNullOrEmpty(value: middleName))
            {
                middleNameTextBox.Select();
            }
            if (IsNullOrEmpty(value: lastName))
            {
                lastNameTextBox.Select();
            }

            var user = new UI.Models.User
            {
                FirstName  = firstName,
                MiddleName = middleName,
                LastName   = lastName
            };

            await _context.Users.AddAsync(entity : user);

            await _context.SaveChangesAsync();

            DialogResult = Yes;
            Hide();
        }
Exemple #2
0
        /// <summary>
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void RemoveSoftwareFromUserBtn_Click(object sender, EventArgs e)
        {
            var software = (UI.Models.Software)softwaresBindingSource.Current;

            if (software != null)
            {
                software.IdUser = null;
                _context.Softwares.Update(entity: software);
                await _context.SaveChangesAsync();
            }
            await Binding();
        }
Exemple #3
0
        /// <summary>
        ///     Удаление пользователя
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void RemoveUserBtn_Click(object sender, EventArgs e)
        {
            if (UsersGridView.SelectedRows.Count > 0)
            {
                var id   = (int)UsersGridView.SelectedRows[index : 0].Cells[index : 0].Value;
                var user = await _context.Users.FindAsync(id);

                _context.Users.Remove(entity: user);
                await _context.SaveChangesAsync();
                await SetBinding();

                UsersGridView.Refresh();
            }
        }
Exemple #4
0
        private async void AcceptSelect_Click(object sender, EventArgs e)
        {
            //Получаем данные
            var software = (UI.Models.Software)softwaresBindingSource.Current;
            var user     = await _context.Users.FindAsync(_id);

            //Добавляем приложение пользователю и сохраняем в бд изменения
            software.IdUser = _id;
            user.Softwares.Add(item: software);
            _context.Update(entity: user);
            await _context.SaveChangesAsync().ConfigureAwait(continueOnCapturedContext: true);

            //Назад к главному окну
            this.Nav(to: new Main());
        }
Exemple #5
0
        /// <summary>
        ///     Use case: приложению больше не нужна данная база её нужно удалить
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void RemoveDatabaseFromSoftwareBtn_Click(object sender, EventArgs e)
        {
            UI.Models.Software software            = ((ObjectView <UI.Models.Software>)softwareBindingSource.Current).Object;
            DataBase           dataBase            = ((ObjectView <DataBase>)dataBaseBindingSource.Current).Object;
            SoftwareDataBase   firstOrDefaultAsync =
                await context.SoftwareDatabases.FirstOrDefaultAsync(predicate : it => it.IdDataBase == dataBase.Id &&
                                                                    it.IdSoftware == software.Id);

            context.Remove(entity: firstOrDefaultAsync);
            await context.SaveChangesAsync();

            await Binding();

            SoftwareGridView.Refresh();
        }
Exemple #6
0
        private void SaveServerBtn_Click(object sender, EventArgs e)
        {
            string serverName = serverNameTextBox.Text;

            if (serverName.IsNullOrEmpty())
            {
                serverNameTextBox.Select();
                return;
            }

            _context.Servers.AddAsync(entity: new UI.Models.Server
            {
                Name = serverName
            });
            _context.SaveChangesAsync();
            Hide();
        }
Exemple #7
0
        private void SaveOsBtn_Click(object sender, EventArgs e)
        {
            string os       = textBox1.Text;
            string capacity = textBox2.Text;

            if (string.IsNullOrEmpty(value: os))
            {
                textBox1.Select();
                return;
            }

            context.OperatingSystems.AddAsync(entity: new OperatingSystem
            {
                Name     = Name,
                Capacity = capacity
            });
            context.SaveChangesAsync();
            Hide();
        }
Exemple #8
0
        private async void AddSoftwareForUserBtn_Click(object sender, EventArgs e)
        {
            var idOc = ((ObjectView <OperatingSystem>)operatingSystemBindingSource.Current).Object.Id;

            try
            {
                //Проверки: не ввели значение для name, такое имя и операционная система уже существуют
                SoftwareNameTextBox.Validate("Ви не ввели назву додатку", out var name);
                UI.Models.Software nameExist =
                    await _context.Softwares.SingleOrDefaultAsync(software => software.Name.Equals(name) &&
                                                                  software.IdOperatingSystem == idOc);

                if (nameExist != null)
                {
                    throw new DuplicateNameException("Програма з таким ім'ям вже існує");
                }

                //Валидация прошла успешно
                //Создаём новое приложение, получаем пользователя, добавляем ему приложение, обновляем значение в бд и сохраняем
                var newSoftware = new UI.Models.Software {
                    IdOperatingSystem = idOc, IdUser = _userId, Name = name
                };
                await _context.Softwares.AddAsync(newSoftware);

                await _context.SaveChangesAsync();

                //Возвращаемся на главную
                this.Nav(new Main());
            }
            catch (FormatException formatException)
            {
                MessageBox.Show(formatException.Message, "Не коректні дані", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            catch (DuplicateNameException duplicateNameException)
            {
                MessageBox.Show(duplicateNameException.Message, "Не коректні дані", MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
            }
        }
Exemple #9
0
        private async void SaveDatabaseBtn_Click(object sender, EventArgs e)
        {
            var databaseName = nameTextBox.Text;

            UI.Models.Server server = ((ObjectView <UI.Models.Server>)serverBindingSource.Current).Object;

            if (databaseName.IsNullOrEmpty())
            {
                nameTextBox.Select();
                return;
            }

            var dataBase = new DataBase
            {
                Name     = databaseName,
                IdServer = server.Id
            };
            await _context.Databases.AddAsync(entity : dataBase);

            await _context.SaveChangesAsync();

            Hide();
        }
Exemple #10
0
        private async void RemoveDatabaseBtn_Click(object sender, EventArgs e)
        {
            DataBase current = ((ObjectView <DataBase>)dataBaseBindingSource.Current).Object;

            var query = from software in _context.Softwares
                        join sdb in _context.SoftwareDatabases on software.Id equals sdb.IdSoftware
                        where sdb.IdDataBase == current.Id
                        select software;

            if (!query.Any())
            {
                _context.Databases.Remove(entity: current);
                await _context.SaveChangesAsync();
                await Binding();

                dataBaseDataGridView.Refresh();
            }
            else
            {
                MessageBox.Show(text: "Неможливо видалити дану базу данных, так оскільки на неї силаються деякі прогррамні додати",
                                caption: "Попередження!", buttons: OK, icon: Warning);
            }
        }