예제 #1
0
        public void GetInputArrayFromDatabase(int arrayId)
        {
            lock (_syncDatabaseAccessing)
            {
                using (Database.SortersVisualizerDBEntities context = new Database.SortersVisualizerDBEntities())
                {
                    if (!context.Database.Exists())
                    {
                        throw new DatabaseDoesntExistException("The required database does not exist." +
                                                               "Check the availability of the appropriate database and try again.");
                    }

                    Database.InputArrays inputArray = (from array in context.InputArrays
                                                       where array.iInputArrayId == arrayId
                                                       select array).FirstOrDefault();

                    if (inputArray == null)
                    {
                        throw new KeyNotFoundException("The required array with ID = " + arrayId + " does not exist.");
                    }

                    int rows    = inputArray.iNumberOfRows;
                    int columns = inputArray.iNumberOfColumns;

                    _controllerModel.ArrayForSorting = Utils.ConvertToTwoDimensionArray(inputArray.vcInputArrayContent, rows, columns);
                }
            }
        }
        public void CreateArray(object parameter)
        {
            using (Database.SortersVisualizerDBEntities context = new Database.SortersVisualizerDBEntities())
            {
                if (!context.Database.Exists())
                {
                    MessageBox.Show(MessagesRandomArrayCreationWindow.DatabaseDoesntExistText,
                                    MessagesRandomArrayCreationWindow.DatabaseConnectionText, MessageBoxButton.OK, MessageBoxImage.Error);

                    _logger.Error("Database doesn't exist");

                    if (CloseViewAction != null)
                    {
                        CloseViewAction();
                    }

                    return;
                }

                int[] array = new int[ArrayInfo.RowsNumb * ArrayInfo.ColumnsNumb];

                array = Tools.Utils.GetRandomArray(array.Length, (int)ArrayInfo.MinValue, (int)ArrayInfo.MaxValue);

                Database.InputArrays inputArray = new Database.InputArrays
                {
                    iNumberOfRows       = ArrayInfo.RowsNumb,
                    iNumberOfColumns    = ArrayInfo.ColumnsNumb,
                    vcInputArrayContent = string.Join(" ", array)
                };

                context.InputArrays.Add(inputArray);
                int rowsAffected = context.SaveChanges();

                if (rowsAffected > 0)
                {
                    MessageBox.Show(MessagesRandomArrayCreationWindow.ArraySuccessfullyCreatedText,
                                    MessagesRandomArrayCreationWindow.OperationResultText, MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else
                {
                    MessageBox.Show(MessagesRandomArrayCreationWindow.ArrayUnsuccessfullyCreatedText,
                                    MessagesRandomArrayCreationWindow.OperationResultText, MessageBoxButton.OK, MessageBoxImage.Warning);

                    _logger.Error("Array insertion into database error");
                }
            }

            if (CloseViewAction != null)
            {
                CloseViewAction();
            }
        }
        private void ButtonApplyClick(object sender, EventArgs e)
        {
            using (Database.SortersVisualizerDBEntities context = new Database.SortersVisualizerDBEntities())
            {
                if (!context.Database.Exists())
                {
                    MessageBox.Show(MessagesRandomArrayCreationInDatabaseForm.DatabaseDosentExistText,
                                    MessagesRandomArrayCreationInDatabaseForm.DatabaseConnectionText, MessageBoxButtons.OK, MessageBoxIcon.Error);

                    this.Close();
                }

                int[] array = new int[(int)_rows * (int)_columns];

                array = Tools.Utils.GetRandomArray(array.Length, (int)_minValue, (int)_maxValue);

                Database.InputArrays inputArray = new Database.InputArrays
                {
                    iNumberOfRows       = (int)_rows,
                    iNumberOfColumns    = (int)_columns,
                    vcInputArrayContent = string.Join(" ", array)
                };

                context.InputArrays.Add(inputArray);
                int rowsAffected = context.SaveChanges();

                if (rowsAffected > 0)
                {
                    MessageBox.Show(MessagesRandomArrayCreationInDatabaseForm.ArraySuccessfullyCreatedText,
                                    MessagesRandomArrayCreationInDatabaseForm.OperationResultText, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show(MessagesRandomArrayCreationInDatabaseForm.ArrayUnsuccessfullyCreatedText,
                                    MessagesRandomArrayCreationInDatabaseForm.OperationResultText, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }

            this.Close();
        }