/// <summary> /// Get input arrays from database /// </summary> private void InputArraysInit() { using (Database.SortersVisualizerDBEntities context = new Database.SortersVisualizerDBEntities()) { if (!context.Database.Exists()) { MessageBox.Show(MessagesArrayInitializationFromDatabaseWindow.DatabaseDoesntExistText, MessagesRandomArrayCreationWindow.DatabaseConnectionText, MessageBoxButton.OK, MessageBoxImage.Error); _logger.Error("Database doesn't exist"); if (CloseViewAction != null) { CloseViewAction(); } return; } _inputArrays = (from item in context.InputArrays select new DatabaseInfoWrapper { ArrayId = item.iInputArrayId, NumberOfColumns = item.iNumberOfColumns, NumberOfRows = item.iNumberOfRows }).ToArray(); } }
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); } } }
private void RatioTimeSizeButton_Click(object sender, EventArgs e) { chartControl.Series.Clear(); Series series1 = new Series("Sorting time", ViewType.SplineArea); using (Database.SortersVisualizerDBEntities context = new Database.SortersVisualizerDBEntities()) { if (!context.Database.Exists()) { MessageBox.Show("Database doesn't exist.", "Database", MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); } string sorterName = _threadParameters[tcInfo.SelectedIndex].SortMethod.ToString(); int arraySize = _threadParameters[tcInfo.SelectedIndex].ArrayForSorting.Length; var sortedArrays = (from item in context.SortedArrays where item.vcSorterName == sorterName orderby item.iSortedArrayId descending select item).ToArray(); var arrays = sortedArrays.Where(item => item.vcSortedArrayContent.Split(new Char[] { ' ' }).Length == arraySize).ToArray(); for (int i = 0; i < arrays.Length && i < 16; i++) // 16 - manual limit, temporary decision { series1.Points.Add(new SeriesPoint(i + 1, arrays[i].fSortingTime)); } } // Add the series to the chart. chartControl.Series.Add(series1); // Access the view-type-specific options of the series. ((SplineAreaSeriesView)series1.View).LineTensionPercent = 90; ((SplineAreaSeriesView)series1.View).ColorEach = true; ((SplineAreaSeriesView)series1.View).MarkerVisibility = DevExpress.Utils.DefaultBoolean.True; ((SplineAreaSeriesView)series1.View).FillStyle.FillMode = FillMode.Hatch; HatchFillOptions hatchFillOptions = ((SplineAreaSeriesView)series1.View).FillStyle.Options as HatchFillOptions; hatchFillOptions.HatchStyle = System.Drawing.Drawing2D.HatchStyle.Sphere; XYDiagram diagram = (XYDiagram)chartControl.Diagram; diagram.AxisY.Title.Visibility = DevExpress.Utils.DefaultBoolean.True; diagram.AxisY.Title.Alignment = StringAlignment.Center; diagram.AxisY.Title.Text = "Секунди"; diagram.AxisX.Title.Visibility = DevExpress.Utils.DefaultBoolean.True; diagram.AxisX.Title.Alignment = StringAlignment.Center; diagram.AxisX.Title.Text = "Номер сортувальника"; //Set title for chart chartControl.Titles[0].Text = "Статистика для масива з розміром " + _threadParameters[tcInfo.SelectedIndex].ArrayForSorting.Length; }
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(); }
public void AddSortedArrayToDatabase(Database.SortedArrays sortedArray) { lock (_syncDatabaseAccessing) { using (Database.SortersVisualizerDBEntities _context = new Database.SortersVisualizerDBEntities()) { if (!_context.Database.Exists()) { throw new DatabaseDoesntExistException("Cannot insert sorted array into database. " + "The required database does not exist."); } _context.SortedArrays.Add(sortedArray); int rowsAffected = _context.SaveChanges(); if (rowsAffected != 1) { throw new System.Data.DBConcurrencyException("Error in inserting sorted array into database."); } } } }
private void DataGridViewInitialization() { using (Database.SortersVisualizerDBEntities context = new Database.SortersVisualizerDBEntities()) { if (!context.Database.Exists()) { MessageBox.Show(MessagesArrayInitializationFromDatabaseForm.DatabaseDosentExistText, MessagesArrayInitializationFromDatabaseForm.DatabaseConnectionText, MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); } var inputArrays = (from item in context.InputArrays select new { item.iInputArrayId, item.iNumberOfColumns, item.iNumberOfRows }).ToList(); foreach (var item in inputArrays) { dgvDatabaseContent.Rows.Add(item.iInputArrayId, item.iNumberOfRows, item.iNumberOfColumns); } dgvDatabaseContent.ClearSelection(); } }