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) }); }
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 }); }
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); }
/// <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); }
/// <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); }
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); }
private SqlClassAttribute DajAtributStlpca(PropertyInfo paPropertyInfo) { return(SqlClassAttribute.ExtractSqlClassAttribute(paPropertyInfo)); }
private SqlClassAttribute DajAtributTabulky(SqlEntita paEntita) { return(SqlClassAttribute.ExtractSqlClassAttribute(paEntita)); }
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); }
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); } }