Пример #1
0
 public void PopulateGrid(IStructure structure)
 {
     DataGrid.GenerateDataTable(structure);
     ExportCommand.OnCanExecuteChanged(this, new EventArgs());
 }
Пример #2
0
        private async void Load(object param)
        {
            try
            {
                var path = GetPath();
                if (path == null)
                {
                    return;
                }
                string text;

                using (var str = new StreamReader(path, Encoding.Default))
                {
                    IsBusy = true;
                    text   = await str.ReadToEndAsync();

                    await Task.Delay(1000);

                    IsBusy = false;
                }

                var xdoc = XDocument.Parse(text);

                foreach (var chapterss in xdoc.Root.Elements("Chapters"))
                {
                    foreach (var chapter in chapterss.Elements("Chapter"))
                    {
                        var count          = 0;
                        var chapterCaption = chapter.Attributes("Caption").First();
                        var newchapter     = new Models(chapterCaption.Value);

                        foreach (var position in chapter.Elements("Position"))
                        {
                            var caption = position.Attributes("Caption").First();
                            var code    = position.Attributes("Code").First();
                            var units   = position.Attributes("Units").First();
                            count++;
                            var quantity   = position.Elements("Quantity").First();
                            var quantityFx = quantity.Attributes("Fx").First();
                            var result     = CalcExpression(quantityFx.Value);
                            var positions  = new Position(count, code.Value, caption.Value, units.Value, result.ToString());
                            newchapter.Positions.Add(positions);


                            foreach (var resources in position.Elements("Resources"))
                            {
                                foreach (var tzm in resources.Elements("Tzm"))
                                {
                                    var tzm1           = tzm.Attributes("Caption").First();
                                    var tzmMchCode     = tzm.Attributes("Code").First();
                                    var tzmMchUnits    = tzm.Attributes("Units").First();
                                    var tzmMchQuantity = tzm.Attributes("Quantity").First();


                                    positions.TzmMchs.Add(new TzmMch(tzmMchCode.Value, tzm1.Value, tzmMchUnits.Value,
                                                                     tzmMchQuantity.Value));
                                }

                                foreach (var mch in resources.Elements("Mch"))
                                {
                                    var mch1           = mch.Attributes("Caption").First();
                                    var tzmMchCode     = mch.Attributes("Code").First();
                                    var tzmMchUnits    = mch.Attributes("Units").First();
                                    var tzmMchQuantity = mch.Attributes("Quantity").First();
                                    positions.TzmMchs.Add(new TzmMch(tzmMchCode.Value, mch1.Value, tzmMchUnits.Value,
                                                                     tzmMchQuantity.Value));
                                }
                            }
                        }

                        Chapters.Add(newchapter);
                    }
                }

                _isFileLoaded = true;
                ExportCommand.OnCanExecuteChanged();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            finally
            {
                IsBusy = false;
            }
        }