Exemplo n.º 1
0
        public DataGridWindow(List <Groups> groupList, List <GroupParameters> parametersList)
        {
            this.InitializeComponent();

            var dataViewModel = new DataViewModel();

            this.DataContext = dataViewModel;


            var Groups = new ObservableCollection <IRow>();

            foreach (var gitem in groupList)
            {
                var ParamsToAdd = new ObservableCollection <IColumn>();
                foreach (var item in parametersList)
                {
                    for (int i = 1; i < item.paramSize + 1; i++)
                    {
                        ParamsToAdd.Add(new PropertyGrid {
                            ParamName = item.paramName + i, ParamValue = item.paramDensity.ToString()
                        });
                    }
                }
                Groups.Add(new GroupGrid
                {
                    Name   = gitem.groupName,
                    Params = ParamsToAdd
                });
            }
            dataViewModel.PopulateViewModel(Groups);
        }
        void generateData()
        {
            DataGridWindow KEK          = new DataGridWindow(groupList, parametersList);
            var            dialogresult = KEK.ShowDialog();

            if (dialogresult == true)
            {
                DataViewModel GeneratingData = (DataViewModel)KEK.DataContext;

                using (var dialog = new System.Windows.Forms.FolderBrowserDialog())
                {
                    System.Windows.Forms.DialogResult result = dialog.ShowDialog();
                    if (result == System.Windows.Forms.DialogResult.OK)
                    {
                        try
                        {
                            int                   nrObiektu        = 1;
                            string                obiektyGrupy     = "";
                            string                obiektyParametry = "";
                            string                newObject        = "";
                            HashSet <string>      uniqueObiekty    = new HashSet <string>();
                            int                   gestoscXparam;
                            int                   groupnr       = 0;
                            bool                  notunique     = true;
                            List <int>            groupPassList = new List <int>();
                            List <List <double> > paramPassList = new List <List <double> >();



                            foreach (var group in GeneratingData.Rows)                //Tworzenie obiektu i przypisanie do grupy
                            {
                                for (int i = 0; i < groupList[groupnr].groupSize; i++)
                                {
                                    obiektyGrupy     += "Obiekt" + nrObiektu.ToString() + " - " + group.Name + Environment.NewLine;
                                    obiektyParametry += "Obiekt" + nrObiektu.ToString() + " - " + group.Name + ","; //Tworzenie parametrów i przypisanie do obiektu
                                    groupPassList.Add(groupnr);
                                    notunique = true;
                                    while (notunique)
                                    {
                                        List <double> nextPassList = new List <double>();
                                        newObject = "";
                                        foreach (var prop in group.Columns)
                                        {
                                            gestoscXparam = rnd.Next(0, 100);
                                            int value = 0;
                                            if (Int32.TryParse(prop.EditableValue, out value))
                                            {
                                                if (gestoscXparam <= value) //Paramety o podanej gęstosci zasięgu 0-100
                                                {                           ///////////////////////////tutaj to ogólnie trzeba random dyskretny wjebac gdzie 100 to zawsze 0 to nigdy bo teraz to mi nie wychodzi i brane z Parametru
                                                    newObject += "1" + ",";
                                                    nextPassList.Add(1);
                                                }
                                                else
                                                {
                                                    newObject += "0" + ",";
                                                    nextPassList.Add(0);
                                                }
                                            }
                                            else
                                            {
                                                int valueRnd = rnd.Next(0, 2);
                                                newObject += valueRnd.ToString() + ",";//jak nie ma gęstości to poprostu random
                                                nextPassList.Add(valueRnd);
                                            }
                                        }

                                        if (uniqueObiekty.Add(newObject))
                                        {
                                            notunique         = false;
                                            obiektyParametry += newObject;
                                            paramPassList.Add(nextPassList);
                                        }
                                    }//while not unique


                                    obiektyParametry  = obiektyParametry.TrimEnd(',');
                                    obiektyParametry += Environment.NewLine;
                                    ++nrObiektu;
                                }
                                groupnr++;
                            }///Rows

                            /*
                             *
                             *
                             * foreach (var group in groupList)                //Tworzenie obiektu i przypisanie do grupy
                             * {
                             *  for (int i = 0; i < group.groupSize; i++)
                             *  {
                             *      obiektyGrupy += "Obiekt" + nrObiektu.ToString() + " - " + group.groupName + "\\n";
                             *      obiektyParametry += "Obiekt" + nrObiektu.ToString() + " - "; //Tworzenie parametrów i przypisanie do obiektu
                             *      foreach (var prop in parametersList)
                             *      {
                             *          gestoscXparam = rnd.Next(0, 100);
                             *          if (gestoscXparam <= prop.paramDensity)               //Paramety o podanej gęstosci zasięgu
                             *          {
                             *              obiektyParametry += rnd.Next(0, prop.paramSize) + " , "; //Paramety o podanym zasięgu
                             *          }
                             *          else
                             *          {
                             *              obiektyParametry += "0" + " ,";
                             *          }
                             *      }
                             *      obiektyParametry = obiektyParametry.TrimEnd(',');
                             *      obiektyParametry += "\\n";
                             ++nrObiektu;
                             *  }
                             * }
                             *
                             *
                             *
                             */
                            string path = dialog.SelectedPath + "\\\\" + fileNameTextBox.Text.ToString() + "Groups.txt";
                            System.IO.File.WriteAllText(path, obiektyGrupy);
                            path = dialog.SelectedPath + "\\\\" + fileNameTextBox.Text.ToString() + "Objects.txt";
                            System.IO.File.WriteAllText(path, obiektyParametry);
                            MessageBox.Show("Pliki zostały utworzone", "Nothing to acknowledge", MessageBoxButton.OK, MessageBoxImage.Information);
                            ValidationWindow validate = new ValidationWindow(groupPassList, paramPassList);
                            validate.Show();
                            validate.Close();
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("Pliki nie zostały utworzone błąd", "Nothing to work properly", MessageBoxButton.OK, MessageBoxImage.Warning);

                            throw;
                        }
                    } //folderBrowserDialogResult
                }     //folderBrowserDialogUsing
            }         //resultWindowDialog
            else
            {
                MessageBox.Show("Jakiś Błąd w drugim oknie", "Nothing to work properly", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }        ///GenerateData