public override UIPickMap BusinessToUI(BUSPickMap businessEntity) { UIPickMap UIEntity = base.BusinessToUI(businessEntity); UIEntity.BusCompFieldName = businessEntity.BusCompFieldName; UIEntity.PickListFieldName = businessEntity.PickListFieldName; UIEntity.Constrain = businessEntity.Constrain; return(UIEntity); }
public override BUSPickMap UIToBusiness(UIPickMap UIEntity, TContext context, IViewInfo viewInfo, bool isNewRecord) { BUSPickMap businessEntity = base.UIToBusiness(UIEntity, context, viewInfo, isNewRecord); Field field = context.Fields.FirstOrDefault(i => i.Id.ToString() == ComponentsRecordsInfo.GetSelectedRecord("Field")); if (field == null) { businessEntity.ErrorMessage = "First you need create field."; } else { // Если запись новая и она не уникальна, записывается ошибка PickMap pickMap = field.PickMaps?.FirstOrDefault(n => n.Name == UIEntity.Name); if (pickMap != null && pickMap.Id != UIEntity.Id) { businessEntity.ErrorMessage = $"Field pick map with this name is already exists in field {UIEntity.Name}."; } else { businessEntity.Field = field; businessEntity.FieldId = field.Id; // BusComp and pickList PickList pickList = context.PickLists .AsNoTracking() .Select(pl => new { id = pl.Id, busComp = new { id = pl.BusCompId, fields = pl.BusComp.Fields.Select(field => new { id = field.Id, name = field.Name, }) } }) .Select(pl => new PickList { Id = pl.id, BusComp = new BusinessComponent { Id = pl.busComp.id, Fields = pl.busComp.fields.Select(field => new Field { Id = field.id, Name = field.name }).ToList() } }) .FirstOrDefault(i => i.Id == field.PickListId); // PickList if (pickList != null) { businessEntity.PickList = pickList; businessEntity.PickListId = pickList.Id; BusinessComponent busComp = context.BusinessComponents .AsNoTracking() .Select(bc => new { id = bc.Id, fields = bc.Fields.Select(field => new { id = field.Id, name = field.Name, }) }) .Select(bc => new BusinessComponent { Id = bc.id, Fields = bc.fields.Select(field => new Field { Id = field.id, Name = field.name }).ToList() }) .FirstOrDefault(i => i.Id == field.BusCompId); BusinessComponent pickListBusComp = pickList.BusComp; businessEntity.BusComp = busComp; businessEntity.BusCompId = busComp.Id; if (pickListBusComp != null) { businessEntity.PickListBusComp = pickListBusComp; businessEntity.PickListBusCompId = pickListBusComp.Id; // BusCompField Field busCompField = busComp.Fields.FirstOrDefault(n => n.Name == UIEntity.BusCompFieldName); if (busCompField != null) { businessEntity.BusCompField = busCompField; businessEntity.BusCompFieldId = busCompField.Id; businessEntity.BusCompFieldName = busCompField.Name; } // PickListField Field pickListField = pickListBusComp.Fields.FirstOrDefault(n => n.Name == UIEntity.PickListFieldName); if (pickListField != null) { businessEntity.PickListField = pickListField; businessEntity.PickListFieldId = pickListField.Id; businessEntity.PickListFieldName = pickListField.Name; } } } businessEntity.Constrain = UIEntity.Constrain; } } return(businessEntity); }
public override IEnumerable <ValidationResult> BUSUIValidate(TContext context, BUSPickMap businessComponent, UIPickMap UIEntity) { List <ValidationResult> result = base.BUSUIValidate(context, businessComponent, UIEntity).ToList(); if (string.IsNullOrWhiteSpace(businessComponent.ErrorMessage)) { if (businessComponent.PickList == null) { result.Add(new ValidationResult( "At first you need to add a picklist to field " + businessComponent.Field.Name + ".", new List <string>() { "PickList" })); } else if (businessComponent.PickListBusComp == null) { result.Add(new ValidationResult( "At first you need to add a business component to picklist " + businessComponent.PickList.Name + ".", new List <string>() { "PickListBusComp" })); } else { if (businessComponent.BusCompField == null) { result.Add(new ValidationResult( "Field with this name not found.", new List <string>() { "BusCompField" })); } if (businessComponent.PickListField == null) { result.Add(new ValidationResult( "Field with this name not found.", new List <string>() { "PickListField" })); } } } return(result); }
public override IEnumerable <ValidationResult> UIValidate(TContext context, IViewInfo viewInfo, UIPickMap UIEntity, bool isNewRecord) { List <ValidationResult> result = base.UIValidate(context, viewInfo, UIEntity, isNewRecord).ToList(); if (string.IsNullOrWhiteSpace(UIEntity.BusCompFieldName)) { result.Add(new ValidationResult( "Business component field name is a required field.", new List <string>() { "BusCompFieldName" })); } if (string.IsNullOrWhiteSpace(UIEntity.PickListFieldName)) { result.Add(new ValidationResult( "Pick list field name is a required field.", new List <string>() { "PickListFieldName" })); } return(result); }