Exemplo n.º 1
0
 private TextBlock DajLabel(PropertyInfo paPropertyInfo, SqlClassAttribute paAttribut = null)
 {
     return(new TextBlock
     {
         FontSize = 20,
         Text = paAttribut?.ElementName ?? paPropertyInfo.Name,
         Margin = new Thickness(0, 5, 5, 5)
     });
 }
Exemplo n.º 2
0
 private TextBlock DajLabel(ProcedureParameter paParameter, SqlClassAttribute paAttribut = null)
 {
     return(new TextBlock
     {
         Tag = paParameter,
         Text = paAttribut?.ElementName ?? paParameter.NazovParametra,
         Margin = new Thickness(5, 0, 5, 0),
         VerticalAlignment = VerticalAlignment.Center
     });
 }
Exemplo n.º 3
0
        public virtual IVystup GetSelectOnTableData()
        {
            var atribut = SqlClassAttribute.ExtractSqlClassAttribute(this);
            var stlpce  = string.Join(", ", this.GetType().GetProperties()
                                      .Where(p => SqlClassAttribute.ExtractSqlClassAttribute(p)?.IsColumn == true &&
                                             SqlClassAttribute.ExtractSqlClassAttribute(p)?.IsReference == false)
                                      .Select(p => SqlClassAttribute.ExtractSqlClassAttribute(p)?.ColumnName));

            var select = $"select distinct {stlpce} from {atribut.TableName}";// a0 {string.Join(" ", tabulky.Select(t => $"join {t} a{++poradieAlias} on(a0.{atribut.TableKey} = a{poradieTab}.{kluce[poradieTab]})"))}";
            var vystup = new VystupSelect(select)
            {
                KlucovyStlpec = atribut.TableKey
            };

            return(vystup);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Funguje to iba na selecty bez aliasov alebo alias musí byť ako názov stĺpca
        /// </summary>
        /// <returns></returns>
        public static SqlEntita MapujRiadokSelectu <TData>(Dictionary <string, object> paRiadok, TData paExistujucaEntita = null) where TData : SqlEntita
        {
            var entita = paExistujucaEntita ?? System.Activator.CreateInstance <TData>();
            var props  = entita.GetType().GetProperties();

            foreach (var propertyInfo in props)
            {
                var atribut = SqlClassAttribute.ExtractSqlClassAttribute(propertyInfo);
                if (atribut != null && atribut.IsReference == false && paRiadok.ContainsKey(atribut.ColumnName))
                {
                    if (!string.IsNullOrEmpty(paRiadok[atribut.ColumnName]?.ToString()))
                    {
                        var hodnota = System.Convert.ChangeType(paRiadok[atribut.ColumnName], propertyInfo.PropertyType);
                        propertyInfo.SetValue(entita, hodnota);
                    }
                }
            }
            return(entita);
        }
Exemplo n.º 5
0
        /// <summary>
        /// entita sa načíta podľa svojho id
        /// </summary>
        /// <param name="paIdEntity"></param>
        /// <returns></returns>
        public virtual bool SelectPodlaId(object paIdEntity)
        {
            var atribut = SqlClassAttribute.ExtractSqlClassAttribute(this);
            var db      = new Databaza();
            var stlpce  = string.Join(", ", this.GetType().GetProperties()
                                      .Where(p => SqlClassAttribute.ExtractSqlClassAttribute(p)?.IsColumn == true &&
                                             SqlClassAttribute.ExtractSqlClassAttribute(p)?.IsReference == false)
                                      .Select(p => SqlClassAttribute.ExtractSqlClassAttribute(p)?.ColumnName));
            var iterator =
                db.SpecialSelect(
                    $"select {stlpce} from {atribut.TableName} where {atribut.TableKey} = {paIdEntity}");
            var enumerator = iterator.GetEnumerator();

            if (enumerator.MoveNext())
            {
                MapujRiadokSelectu(enumerator.Current, this);
                return(true);
            }
            return(false);
        }
Exemplo n.º 6
0
        private TextBox DajInputBox(ProcedureParameter paParameter, SqlClassAttribute paAttribut = null)
        {
            var box = new TextBox
            {
                Tag       = paParameter,
                Margin    = new Thickness(5, 0, 5, 0),
                FontSize  = 20,
                MinWidth  = 100,
                MaxLength = (paAttribut?.Length ?? 0) != 0 ? paAttribut.Length : 50
            };

            box.SetBinding(TextBox.TextProperty, new Binding()
            {
                Path             = new PropertyPath(nameof(paParameter.HodnotaParametra)),
                Source           = paParameter,
                Mode             = BindingMode.TwoWay,
                ConverterCulture = CultureInfo.CurrentCulture,
                StringFormat     = paAttribut?.SpecialFormat
            });
            return(box);
        }
Exemplo n.º 7
0
 private SqlClassAttribute DajAtributStlpca(PropertyInfo paPropertyInfo)
 {
     return(SqlClassAttribute.ExtractSqlClassAttribute(paPropertyInfo));
 }
Exemplo n.º 8
0
 private SqlClassAttribute DajAtributTabulky(SqlEntita paEntita)
 {
     return(SqlClassAttribute.ExtractSqlClassAttribute(paEntita));
 }
Exemplo n.º 9
0
        private TextBox DajInputBox(PropertyInfo paPropertyInfo, SqlEntita paEntita = null, SqlClassAttribute paAttribut = null)
        {
            var box = new TextBox
            {
                FontSize     = 20,
                IsReadOnly   = !paPropertyInfo.CanWrite || paAttribut?.ReadOnly == true,
                Margin       = new Thickness(5, 5, 0, 5),
                MaxWidth     = 180,
                MaxLines     = 10,
                TextWrapping = TextWrapping.Wrap,
                MaxLength    = (paAttribut?.Length ?? 0) != 0 ? paAttribut.Length : 50
            };

            box.SetBinding(TextBox.TextProperty, new Binding()
            {
                Path             = new PropertyPath(paPropertyInfo.Name),
                Source           = paEntita ?? DataContext,
                Mode             = paPropertyInfo.CanWrite ? BindingMode.TwoWay : BindingMode.OneWay,
                ConverterCulture = CultureInfo.CurrentCulture,
                StringFormat     = paAttribut?.SpecialFormat
            });
            return(box);
        }
Exemplo n.º 10
0
        private void GenerujPodlaSqlEntity(SqlEntita paRefencia = null)
        {
            var model = _aktualnaEntita = paRefencia ?? ModelAkoEntita;
            var atr   = SqlClassAttribute.ExtractSqlClassAttribute(model);

            Zmazat.Visibility = this.Delete && model.DeleteEnabled ? Visibility.Visible : Visibility.Collapsed;
            if (atr.IgnoreEntity)
            {
                return;
            }
            FormularTitulok.Text = ModelAkoEntita != null?DajAtributTabulky(ModelAkoEntita).ElementName : string.Empty;

            var props = model.GetType().GetProperties();

            foreach (var propertyInfo in props)
            {
                var atribut = this.DajAtributStlpca(propertyInfo);
                if (atribut.ShowElement == false)
                {
                    continue;
                }
                if (atribut.IsReference)
                {
                    var property = propertyInfo.GetValue(model) as SqlEntita;// ?? Activator.CreateInstance(propertyInfo.PropertyType) as SqlEntita;
                    if (property == null)
                    {
                        continue;
                    }
                    GenerujPodlaSqlEntity(property);
                    continue;
                }
                DajNovyRiadok();
                var       label           = DajLabel(propertyInfo, atribut);
                UIElement inputBoxOrImage = null;
                if (atribut?.IsBitmapImage == false)
                {
                    if (atribut?.IsDate == false)
                    {
                        inputBoxOrImage = DajInputBox(propertyInfo, model, atribut);
                    }
                    else
                    {
                        inputBoxOrImage = DajDatePicker(propertyInfo, model);
                    }
                }
                else
                {
                    inputBoxOrImage = new Image();
                    var img = new BitmapImage
                    {
                        StreamSource = (MemoryStream)propertyInfo.GetValue(Model)
                    };
                    ((Image)inputBoxOrImage).Source = img;
                }
                label.SetValue(Grid.RowProperty, Formular.RowDefinitions.Count - 1);
                label.SetValue(Grid.ColumnProperty, 0);
                inputBoxOrImage.SetValue(Grid.RowProperty, Formular.RowDefinitions.Count - 1);
                inputBoxOrImage.SetValue(Grid.ColumnProperty, 1);
                Formular.Children.Add(label);
                Formular.Children.Add(inputBoxOrImage);
            }
        }