public override BUSField Init(TContext context) { BUSField businessEntity = base.Init(context); BusinessComponent busComp = context.BusinessComponents .AsNoTracking() .Select(bc => new { id = bc.Id, table = bc.Table, tableId = bc.TableId }) .Select(bc => new BusinessComponent { Id = bc.id, Table = bc.table, TableId = bc.tableId }) .FirstOrDefault(i => i.Id.ToString() == ComponentsRecordsInfo.GetSelectedRecord("Business Component")); if (busComp != null) { businessEntity.BusComp = busComp; businessEntity.BusCompId = busComp.Id; businessEntity.Table = busComp.Table; businessEntity.TableId = busComp.TableId; } return(businessEntity); }
public override UIField BusinessToUI(BUSField businessEntity) { UIField UIEntity = base.BusinessToUI(businessEntity); UIEntity.JoinName = businessEntity.JoinName; UIEntity.PickListName = businessEntity.PickListName; UIEntity.TableColumnName = businessEntity.TableColumnName; UIEntity.JoinColumnName = businessEntity.JoinColumnName; UIEntity.IsCalculate = businessEntity.IsCalculate; UIEntity.CalculatedValue = businessEntity.CalculatedValue; UIEntity.Type = businessEntity.Type; UIEntity.Required = businessEntity.Required; UIEntity.Readonly = businessEntity.Readonly; return(UIEntity); }
public override Field BusinessToData(Field field, BUSField businessEntity, TContext context, bool NewRecord) { Field dataEntity = base.BusinessToData(field, businessEntity, context, NewRecord); dataEntity.BusComp = businessEntity.BusComp; dataEntity.BusCompId = businessEntity.BusCompId; dataEntity.Join = businessEntity.Join; dataEntity.JoinId = businessEntity.JoinId; dataEntity.PickListId = businessEntity.PickListId; dataEntity.TableColumn = businessEntity.TableColumn; dataEntity.TableColumnId = businessEntity.TableColumnId; dataEntity.JoinColumn = businessEntity.JoinColumn; dataEntity.JoinColumnId = businessEntity.JoinColumnId; dataEntity.Required = businessEntity.Required; dataEntity.Readonly = businessEntity.Readonly; dataEntity.Type = businessEntity.Type; dataEntity.IsCalculate = businessEntity.IsCalculate; dataEntity.CalculatedValue = businessEntity.CalculatedValue; return(dataEntity); }
public override BUSField UIToBusiness(UIField UIEntity, TContext context, IViewInfo viewInfo, bool isNewRecord) { BUSField businessEntity = base.UIToBusiness(UIEntity, context, viewInfo, isNewRecord); BusinessComponent busComp = context.BusinessComponents .AsNoTracking() .Select(bc => new { id = bc.Id, name = bc.Name, table = new { id = bc.Table.Id, tableColumns = bc.Table.TableColumns.Select(tableColumn => new { id = tableColumn.Id, name = tableColumn.Name }) }, tableId = bc.TableId, fields = bc.Fields.Select(field => new { id = field.Id, name = field.Name }) }) .Select(bc => new BusinessComponent { Id = bc.id, Name = bc.name, Table = new Table { Id = bc.table.id, TableColumns = bc.table.tableColumns.Select(tableColumn => new TableColumn { Id = tableColumn.id, Name = tableColumn.name }).ToList() }, TableId = bc.tableId, Fields = bc.fields.Select(field => new Field { Id = field.id, Name = field.name }).ToList() }) .FirstOrDefault(n => n.Id.ToString() == ComponentsRecordsInfo.GetSelectedRecord("Business Component")); if (busComp == null) { businessEntity.ErrorMessage = "First you need create business component."; } else { // Если запись новая и она не уникальна, записывается ошибка Field field = busComp.Fields?.FirstOrDefault(n => n.Name == UIEntity.Name); if (field != null && field.Id != UIEntity.Id) { businessEntity.ErrorMessage = $"Field with this name is already exists in business component {busComp.Name}."; } else { businessEntity.BusComp = busComp; businessEntity.BusCompId = busComp.Id; businessEntity.BusCompName = busComp.Name; businessEntity.Table = busComp.Table; businessEntity.TableId = busComp.TableId; // Join Join join = context.Joins .AsNoTracking() .Select(j => new { id = j.Id, name = j.Name, table = new { id = j.Table.Id, tableColumns = j.Table.TableColumns.Select(joinColumn => new { id = joinColumn.Id, name = joinColumn.Name }) }, tableId = j.TableId }) .Select(j => new Join { Id = j.id, Name = j.name, Table = new Table { Id = j.table.id, TableColumns = j.table.tableColumns.Select(joinColumn => new TableColumn { Id = joinColumn.id, Name = joinColumn.name }).ToList() }, TableId = j.tableId }) .FirstOrDefault(n => n.Name == UIEntity.JoinName); if (join != null) { businessEntity.Join = join; businessEntity.JoinId = join.Id; businessEntity.JoinName = join.Name; businessEntity.JoinTableId = join.TableId; } // Table column if (businessEntity.Table != null && businessEntity.Table.TableColumns != null) { TableColumn tableColumn = businessEntity.Table.TableColumns.FirstOrDefault(n => n.Name == UIEntity.TableColumnName); if (tableColumn != null) { businessEntity.TableColumn = tableColumn; businessEntity.TableColumnId = tableColumn.Id; businessEntity.TableColumnName = tableColumn.Name; } } // Join column if (join?.Table != null && join.Table.TableColumns != null) { TableColumn joinColumn = join.Table.TableColumns.FirstOrDefault(n => n.Name == UIEntity.JoinColumnName); if (joinColumn != null) { businessEntity.JoinColumn = joinColumn; businessEntity.JoinColumnId = joinColumn.Id; businessEntity.JoinColumnName = joinColumn.Name; } } // PickList PickList pickList = context.PickLists.AsNoTracking().FirstOrDefault(n => n.Name == UIEntity.PickListName); if (pickList != null) { businessEntity.PickList = pickList; businessEntity.PickListId = pickList.Id; businessEntity.PickListName = pickList.Name; } } businessEntity.IsCalculate = UIEntity.IsCalculate; businessEntity.CalculatedValue = UIEntity.CalculatedValue; if (!UIEntity.IsCalculate) { businessEntity.CalculatedValue = string.Empty; } businessEntity.Type = UIEntity.Type; businessEntity.Required = UIEntity.Required; businessEntity.Readonly = UIEntity.Readonly; if (UIEntity.IsCalculate && businessEntity.PickList == null) { businessEntity.Readonly = true; } } return(businessEntity); }
public override IEnumerable <ValidationResult> BUSUIValidate(TContext context, BUSField businessComponent, UIField UIEntity) { List <ValidationResult> result = base.BUSUIValidate(context, businessComponent, UIEntity).ToList(); if (string.IsNullOrWhiteSpace(businessComponent.ErrorMessage)) { if (businessComponent.PickList == null && !string.IsNullOrWhiteSpace(UIEntity.PickListName)) { result.Add(new ValidationResult( "Picklist with this name not found.", new List <string>() { "PickListName" })); } if (businessComponent.Table == null && (!string.IsNullOrWhiteSpace(UIEntity.TableColumnName))) { result.Add(new ValidationResult( "At first you need to add a table to business component " + businessComponent.BusCompName + ".", new List <string>() { "Table" })); } else if (businessComponent.TableColumn == null && (!string.IsNullOrWhiteSpace(UIEntity.TableColumnName))) { result.Add(new ValidationResult( "Table column with this name not found in table " + businessComponent.Table.Name + ".", new List <string>() { "TableColumnName" })); } if (businessComponent.Join == null && (!string.IsNullOrWhiteSpace(UIEntity.JoinColumnName))) { result.Add(new ValidationResult( "At first you need to add a join to this field.", new List <string>() { "Table" })); } else if (businessComponent.JoinColumn == null && (!string.IsNullOrWhiteSpace(UIEntity.JoinColumnName))) { result.Add(new ValidationResult( "Table column with this name not found in table " + businessComponent.Join.Table.Name + ".", new List <string>() { "TableColumnName" })); } if (businessComponent.CalculatedValue != null && businessComponent.CalculatedValue.Length > 500) { result.Add(new ValidationResult( "Calculated field cannot be more than 500 characters.", new List <string>() { "CalculatedValue" })); } } return(result); }
public override BUSField DataToBusiness(Field dataEntity, TContext context) { BUSField businessEntity = base.DataToBusiness(dataEntity, context); // BusComp BusinessComponent busComp = context.BusinessComponents .AsNoTracking() .Select(bc => new { id = bc.Id, name = bc.Name, table = new { id = bc.Table.Id, tableColumns = bc.Table.TableColumns.Select(tableColumn => new { id = tableColumn.Id, name = tableColumn.Name }) }, tableId = bc.TableId }) .Select(bc => new BusinessComponent { Id = bc.id, Name = bc.name, Table = new Table { Id = bc.table.id, TableColumns = bc.table.tableColumns.Select(tableColumn => new TableColumn { Id = tableColumn.id, Name = tableColumn.name }).ToList() }, TableId = bc.tableId }) .FirstOrDefault(i => i.Id == dataEntity.BusCompId); businessEntity.BusComp = busComp; businessEntity.BusCompId = busComp.Id; businessEntity.BusCompName = busComp.Name; businessEntity.Table = busComp.Table; businessEntity.TableId = busComp.TableId; // Join Join join = context.Joins .AsNoTracking() .Select(bc => new { id = bc.Id, name = bc.Name, table = new { id = bc.Table.Id, tableColumns = bc.Table.TableColumns.Select(tableColumn => new { id = tableColumn.Id, name = tableColumn.Name }) }, tableId = bc.TableId }) .Select(bc => new Join { Id = bc.id, Name = bc.name, Table = new Table { Id = bc.table.id, TableColumns = bc.table.tableColumns.Select(tableColumn => new TableColumn { Id = tableColumn.id, Name = tableColumn.name }).ToList() }, TableId = bc.tableId }) .FirstOrDefault(i => i.Id == dataEntity.JoinId); if (join != null) { businessEntity.Join = join; businessEntity.JoinId = join.Id; businessEntity.JoinName = join.Name; businessEntity.JoinTableId = join.TableId; } // Table column if (busComp.Table != null && busComp.Table.TableColumns != null && dataEntity.TableColumnId != null) { TableColumn tableColumn = busComp.Table.TableColumns.FirstOrDefault(i => i.Id == dataEntity.TableColumnId); if (tableColumn != null) { businessEntity.TableColumn = tableColumn; businessEntity.TableColumnId = tableColumn.Id; businessEntity.TableColumnName = tableColumn.Name; } else { dataEntity.TableColumn = null; dataEntity.TableColumnId = null; context.Entry(dataEntity).State = EntityState.Modified; context.SaveChanges(); } } // Join column if (join?.Table != null && join.Table?.TableColumns != null && dataEntity.JoinColumnId != null) { TableColumn joinColumn = join.Table.TableColumns.FirstOrDefault(i => i.Id == dataEntity.JoinColumnId); if (joinColumn != null) { businessEntity.JoinColumn = joinColumn; businessEntity.JoinColumnId = joinColumn.Id; businessEntity.JoinColumnName = joinColumn.Name; } else { dataEntity.JoinColumn = null; dataEntity.JoinColumnId = null; context.Entry(dataEntity).State = EntityState.Modified; context.SaveChanges(); } } // PickList if (dataEntity.PickListId != null) { PickList pickList = context.PickLists.FirstOrDefault(i => i.Id == dataEntity.PickListId); if (pickList != null) { businessEntity.PickListId = dataEntity.PickListId; businessEntity.PickListName = pickList.Name; } } businessEntity.Readonly = dataEntity.Readonly; businessEntity.IsCalculate = dataEntity.IsCalculate; businessEntity.CalculatedValue = dataEntity.CalculatedValue; businessEntity.Required = dataEntity.Required; businessEntity.Type = dataEntity.Type; return(businessEntity); }