private void saveJsonSerialization(Stream saveStream)
        {
            var info = new allInformations();

            info.title       = puzzleTitleTextBox.Text;
            info.difficulty  = difficultyTextBox.Text;
            info.columnCount = columns;
            info.rowCount    = rows;
            info.isColored   = new bool[columns * rows];
            for (int i = 0; i < columns; i++)
            {
                for (int j = 0; j < rows; j++)
                {
                    if (bgColors[i, j] == Color.Black)
                    {
                        info.isColored[i * rows + j] = true;
                    }
                }
            }

            string       serialization = JsonSerializer.Serialize <allInformations>(info);
            StreamWriter sw            = new StreamWriter(saveStream);

            sw.Write(serialization);
            sw.Close();
        }
        private void iterateFiles()
        {
            Stream loadStream;

            listView.Items.Clear();
            fileCount = 0;
            var info = new allInformations();

            listInfo = new List <allInformations>();

            foreach (var file in Directory.EnumerateFiles(directoryTextBox.Text))
            {
                if (file.ToString().EndsWith(".json"))
                {
                    loadStream = File.OpenRead(file);
                    if (loadJsonSerialization(loadStream, ref info))
                    {
                        listInfo.Add(info);
                        fileCount++;
                    }
                }
            }

            for (int i = 0; i < fileCount; i++)
            {
                listView.Items.Add(new ListViewItem(new[] { listInfo[i].title, listInfo[i].columnCount.ToString(),
                                                            listInfo[i].rowCount.ToString(), listInfo[i].difficulty }));
            }
            listView.Refresh();
        }
        private bool loadJsonSerialization(Stream loadStream, ref allInformations info)
        {
            StreamReader sr            = new StreamReader(loadStream);
            string       serialization = sr.ReadToEnd();

            info = JsonSerializer.Deserialize <allInformations>(serialization);
            sr.Close();
            if (info.columnCount < 2 || info.columnCount > 15 || info.rowCount < 2 || info.rowCount > 15 ||
                info.title == null || info.difficulty == null || info.isColored.Length != info.columnCount * info.rowCount)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
        private bool loadJsonSerialization(Stream loadStream)
        {
            StreamReader    sr            = new StreamReader(loadStream);
            string          serialization = sr.ReadToEnd();
            allInformations info          = JsonSerializer.Deserialize <allInformations>(serialization);

            if (info.columnCount < 2 || info.columnCount > 15 || info.rowCount < 2 || info.rowCount > 15 ||
                info.title == null || info.difficulty == null || info.isColored.Length != info.columnCount * info.rowCount)
            {
                var invalidForm = new InvalidFileForm();
                invalidForm.ShowDialog();
                sr.Close();
                return(false);
            }

            insertValues(info);
            sr.Close();
            return(true);
        }
 public void insertValues(allInformations info)
 {
     this.columns = info.columnCount;
     this.rows    = info.rowCount;
     this.setColors();
     this.isColored     = new bool[info.columnCount, info.rowCount];
     this.coloredAmount = 0;
     for (int i = 0; i < info.columnCount; i++)
     {
         for (int j = 0; j < info.rowCount; j++)
         {
             this.isColored[i, j] = info.isColored[i * info.rowCount + j];
             if (this.isColored[i, j])
             {
                 this.coloredAmount++;
             }
         }
     }
 }