public FunctionResult GetCodeFunctionEntityResult(DR_Requester resuester, int codeFunctionEntityID, DP_DataRepository dataItem) { var codeFunctionEntity = bizCodeFunction.GetCodeFunctionEntity(resuester, codeFunctionEntityID); var parameters = new List <object>(); //var formulaUsageParemeters = new List<FormulaUsageParemetersDTO>(); foreach (var column in codeFunctionEntity.CodeFunctionEntityColumns) { EntityInstanceProperty property = dataItem.GetProperty(column.ColumnID); if (property != null) { //FormulaUsageParemetersDTO formulaUsageParemeter = new FormulaUsageParemetersDTO(); //formulaUsageParemeter.ParameterName = property.Name; //formulaUsageParemeter.ParameterValue = (property.Value != null ? property.Value.ToString() : "<Null>"); //formulaUsageParemeters.Add(formulaUsageParemeter); //stringParamList += (stringParamList == "" ? "" : ",") + column.FunctionColumnParamName; //paramList.Add(column.FunctionColumnParamName); if (property.Value != null) { parameters.Add(Convert.ChangeType(property.Value, column.FunctionColumnDotNetType)); } else { parameters.Add(null); } } } var result = GetCodeFunctionResult(resuester, codeFunctionEntity.CodeFunctionID, parameters); // result.FormulaUsageParemeters = formulaUsageParemeters; return(result); }
private Tuple <Enum_QueryItemType, List <EntityInstanceProperty> > GetQueryDeleteOrUpdateNull(DP_DataRepository item, ChildRelationshipInfo parentChildRelatoinshipInfo) { Enum_QueryItemType queryItemType; List <EntityInstanceProperty> listEditProperties = new List <EntityInstanceProperty>(); if (parentChildRelatoinshipInfo == null) { queryItemType = Enum_QueryItemType.Delete; } else { if (parentChildRelatoinshipInfo.RelationshipDeleteOption == RelationshipDeleteOption.DeleteCascade) { queryItemType = Enum_QueryItemType.Delete; } else { queryItemType = Enum_QueryItemType.Update; foreach (var col in parentChildRelatoinshipInfo.Relationship.RelationshipColumns) { var prop = item.GetProperty(col.SecondSideColumnID); if (prop == null) { prop = new EntityInstanceProperty(col.SecondSideColumn); } prop.Value = null; listEditProperties.Add(prop); } } } return(new Tuple <Enum_QueryItemType, List <EntityInstanceProperty> >(queryItemType, listEditProperties)); }
//private void Item_RelatedDataChanged(object sender, RelatedDataChangedArg e) //{ //} //private List<DP_DataRepository> AddViewSearchData(List<DP_DataView> searchedData, I_EditEntityArea editEntityArea) //{ // CheckEditArea(editEntityArea); // List<DP_DataRepository> result = new List<DP_DataRepository>(); // foreach (var item in searchedData) // { // var keys = item.Properties.Where(x => x.IsKey); // var existData = DataList.FirstOrDefault(x => x.IsNewItem == false && keys.All(z => x.KeyProperties.Any(h => h.ColumnID == z.ColumnID && z.Value == h.Value))); // if (existData == null) // { // result.Add(ConvertDataViewToDataRepository(item, editEntityArea)); // //CheckItemInfo(item, item, editEntityArea); // } // else // { // if (existData.IsFullData) // { // result.Add(existData); // } // else // { // result.Add(existData); // } // } // } // return result; //} //private DP_DataRepository ConvertDataViewToDataRepository(DP_DataView item, I_EditEntityArea editEntityArea) //{ //} //private void CheckItemInfo(DP_DataRepository mainItem, I_EditEntityArea editEntityArea) //{ // if (string.IsNullOrEmpty(mainItem.ViewInfo)) // { // List<int> columnIDs = new List<int>(); // if (editEntityArea.EntityListViewDTO.EntityListViewAllColumns.Any(x => x.RelationshipTailID == 0)) // { // foreach (var prop in editEntityArea.EntityListViewDTO.EntityListViewAllColumns.Where(x => x.RelationshipTailID == 0)) // { // columnIDs.Add(prop.ColumnID); // } // } // else // { // var columnList = editEntityArea.FullEntity.Columns; // int columnID = 0; // if (columnList.Any(x => x.Name.ToLower() == "name")) // { // columnID = columnList.First(x => x.Name.ToLower() == "name").ID; // } // else if (columnList.Any(x => x.Name.ToLower() == "title")) // { // columnID = columnList.First(x => x.Name.ToLower() == "title").ID; // } // else if (columnList.Any(x => x.Name.ToLower() == "desc")) // { // columnID = columnList.First(x => x.Name.ToLower() == "desc").ID; // } // else if (columnList.Any(x => x.Name.ToLower() == "description")) // { // columnID = columnList.First(x => x.Name.ToLower() == "description").ID; // } // else if (columnList.Any(x => x.Name.ToLower() == "code")) // { // columnID = columnList.First(x => x.Name.ToLower() == "code").ID; // } // else if (columnList.Any(x => x.Name.ToLower() == "id")) // { // columnID = columnList.First(x => x.Name.ToLower() == "id").ID; // } // else // columnID = mainItem.Properties.FirstOrDefault(x => !string.IsNullOrEmpty(x.Value))?.ColumnID ?? 0; // if (columnID != 0) // columnIDs.Add(columnID); // } // List<EntityInstanceProperty> viewItemProperties = new List<EntityInstanceProperty>(); // foreach (var col in columnIDs) // { // var title = ""; // var property = mainItem.Properties.FirstOrDefault(x => x.ColumnID == col); // if (property != null) // { // if (property.Value == "<Null>" || property.Value == "0" || property.Value == "") // { // title += (title == "" ? "" : ",") + " Selected " + (string.IsNullOrEmpty(editEntityArea.SimpleEntity.Alias) ? editEntityArea.SimpleEntity.Name : editEntityArea.SimpleEntity.Alias); // } // else // title += (title == "" ? "" : ",") + property.Value; // } // viewItemProperties.Add(property); // } // mainItem.ViewEntityProperties.Add(new Tuple<int, List<EntityInstanceProperty>>(editEntityArea.AreaInitializer.EntityID, viewItemProperties)); // } //} //private void CheckItemInfo(DP_DataRepository mainItem, DP_DataRepository viewItem, I_EditEntityArea editEntityArea) //{ // if (string.IsNullOrEmpty(mainItem.ViewInfo)) // { // List<EntityInstanceProperty> viewItemProperties = null; // if (viewItem != null) // { // viewItemProperties = viewItem.Properties; // } // else // { // viewItemProperties = new List<EntityInstanceProperty>(); // foreach (var column in editEntityArea.EntityListViewDTO.EntityListViewAllColumns) // { // if (column.RelationshipTailID == 0) // { // var value = editEntityArea.FetchTypePorpertyValue() // } // l // } // DR_SearchViewRequest request = new DR_SearchViewRequest(); // request.Requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester(); // foreach (var keyProperty in mainItem.Properties.Where(x => x.IsKey)) // { // var searchProperty = new SearchProperty(); // searchProperty.ColumnID = keyProperty.ColumnID; // searchProperty.Value = keyProperty.Value; // request.SearchDataItems.Phrases.Add(searchProperty); // } // request.EntityID = request.SearchDataItems.TargetEntityID; // request.Requester.SkipSecurity = true; // request.EntityViewID = editEntityArea.EntityListViewDTO.ID; // var foundView = AgentUICoreMediator.GetAgentUICoreMediator.SendSearchViewRequest(request).ResultDataItems[0]; // viewItemProperties = foundView.Properties; // } // foreach (var property in viewItemProperties) // { // if (!string.IsNullOrEmpty(property.Value)) // { // mainItem.ViewInfo += (string.IsNullOrEmpty(mainItem.ViewInfo) ? "" : ",") + property.Name + ":" + property.Value; // } // } // } //} //public List<DP_DataRepository> SerachDataViewFromParentRelation(int relationshipID, DP_DataRepository parentRelationData) //{ // return null; //} //private void Data_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) //{ // //if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) // //{ // // foreach (DP_DataRepository item in e.NewItems) // // { // // if (item.IsNewItem) // // { // // item.ViewInfo = GetDataItemInfo(editArea, data[0]); // // } // // } // //} // SetTempInfo(sender as I_EditEntityArea); //} //internal void SetTempInfo(I_EditEntityArea editArea) //{ // if (editArea.AreaInitializer.SourceRelationColumnControl != null) // { // if (editArea.AreaInitializer.IntracionMode == IntracionMode.CreateSelectInDirect || // editArea.AreaInitializer.IntracionMode == IntracionMode.CreateInDirect) // { // var data = editArea.AreaInitializer.SourceRelationColumnControl.RelatedData.GetRelatedData(editArea.AreaInitializer.SourceRelationColumnControl.Relationship.ID); // if (data.Any()) // { // var text = ""; // if (editArea is I_EditEntityAreaOneData) // { // if (data.Count > 1) // throw new Exception("asdasd"); // text = GetInfo(data[0], editArea); // } // else if (editArea is I_EditEntityAreaMultipleData) // { // text = data.Count + " " + "داده وجود دارد"; // foreach (var item in data) // { // text += Environment.NewLine; // text += GetInfo(item, editArea); // } // } // if (editArea.AreaInitializer.SourceRelationColumnControl.SourceEditArea is I_EditEntityAreaOneData) // editArea.TemporaryDisplayView.SetLinkText(text); // else if (editArea.AreaInitializer.SourceRelationColumnControl.SourceEditArea is I_EditEntityAreaMultipleData) // { // var parentMultipleEditArea = (editArea.AreaInitializer.SourceRelationColumnControl.SourceEditArea as I_EditEntityAreaMultipleData); // var relationshipControl = parentMultipleEditArea.RelationshipColumnControls.FirstOrDefault(x => x.Relationship.ID == editArea.AreaInitializer.SourceRelationColumnControl.Relationship.ID); // if (relationshipControl != null) // relationshipControl.ControlPackage.View.SetTemporaryViewText(editArea.AreaInitializer.SourceRelationColumnControl.RelatedData, text); // } // } // else // { // if (editArea.AreaInitializer.SourceRelationColumnControl.SourceEditArea is I_EditEntityAreaOneData) // editArea.TemporaryDisplayView.SetLinkText(""); // else if (editArea.AreaInitializer.SourceRelationColumnControl.SourceEditArea is I_EditEntityAreaMultipleData) // { // var parentMultipleEditArea = (editArea.AreaInitializer.SourceRelationColumnControl.SourceEditArea as I_EditEntityAreaMultipleData); // var relationshipControl = parentMultipleEditArea.RelationshipColumnControls.FirstOrDefault(x => x.Relationship.ID == editArea.AreaInitializer.SourceRelationColumnControl.Relationship.ID); // if (relationshipControl != null) // relationshipControl.ControlPackage.View.SetTemporaryViewText(editArea.AreaInitializer.SourceRelationColumnControl.RelatedData, ""); // } // } // } // } //} private string GetInfo(DP_DataRepository dP_DataRepository, I_EditEntityArea editEntityArea) { string result = ""; if (dP_DataRepository.DataView == null) { if (!dP_DataRepository.IsFullData) { throw new Exception("Asdadsf"); } var columns = editEntityArea.DefaultEntityListViewDTO.EntityListViewAllColumns.Where(x => x.RelationshipTailID == 0); if (columns.Any()) { foreach (var item in columns) { var property = dP_DataRepository.GetProperty(item.ColumnID); result += (result == "" ? "" : ",") + property.Name + ":" + property.Value; } } else { foreach (var item in dP_DataRepository.GetProperties().Take(3)) { var property = dP_DataRepository.GetProperty(item.ColumnID); result += (result == "" ? "" : ",") + property.Name + ":" + property.Value; } result += " ..."; } } else { foreach (var item in dP_DataRepository.DataView.Properties) { //var column = dP_DataRepository.DataView.Properties; result += (result == "" ? "" : ",") + item.Name + ":" + item.Value; } } return(result); }
public FunctionResult GetDatabaseFunctionValue(DR_Requester requester, int functionID, DP_DataRepository dataItem) { // var formulaUsageParemeters = new List<FormulaUsageParemetersDTO>(); var databaseFunctionEntity = bizDatabaseFunction.GetDatabaseFunctionEntity(requester, functionID); // List<object> paramList = new List<object>(); List <Tuple <string, object> > parameters = new List <Tuple <string, object> >(); if (databaseFunctionEntity != null) { foreach (var column in databaseFunctionEntity.DatabaseFunctionEntityColumns) { object value = null; if (column.ColumnID != 0) { EntityInstanceProperty property = dataItem.GetProperty(column.ColumnID); if (property != null) { value = property.Value; } } else { if (column.FixedParam == Enum_FixedParam.RequesterIdentity) { value = requester.Identity.ToString(); } } //FormulaUsageParemetersDTO formulaUsageParemeter = new FormulaUsageParemetersDTO(); //formulaUsageParemeter.ParameterName = column.FunctionColumnParamName; //formulaUsageParemeter.ParameterValue = (value != null ? value.ToString() : "<Null>"); //formulaUsageParemeters.Add(formulaUsageParemeter); parameters.Add(new Tuple <string, object>(column.FunctionColumnParamName, value)); } } var result = GetDatabaseFunctionValue(requester, databaseFunctionEntity.DatabaseFunction, parameters); // result.FormulaUsageParemeters = formulaUsageParemeters; return(result); }
private bool ValidateData(DP_DataRepository data) { bool result = true; data.ISValid = true; //اگر داده جدید باشد ستونها و رابطی که اجباری باشند اما در فرم ورود اطلاعات وجود نداشته باشند را چک میکند CheckAccessValidation(data); foreach (var simplePropertyControl in EditArea.SimpleColumnControls) { var dataProperty = data.GetProperty(simplePropertyControl.Column.ID); if (dataProperty != null) { ValidateSimpleColumn(data, dataProperty, simplePropertyControl); } } foreach (var relationshipControl in EditArea.RelationshipColumnControls) { relationshipControl.EditNdTypeArea.SetChildRelationshipInfo(data.ChildRelationshipInfos.First(x => x.Relationship == relationshipControl.Relationship)); ValidateRelationshipColumn(data, data.ChildRelationshipInfos.First(x => x.Relationship == relationshipControl.Relationship), relationshipControl); } ValidateRelationshipFilters(data); ValidateISARelationships(data); ValidateUnionRelationships(data); ValidateEntityValidations(data); if (EditArea.AreaInitializer.TailDataValidation != null) { ValidateTailDataValidation(data); } if (data.ISValid == false) { result = false; } return(result); }
private QueryItem SetSortedTree(DR_Requester requester, List <QueryItem> result, DP_DataRepository item, QueryItem parentQueryItem = null, ChildRelationshipInfo parentChildRelationshipInfo = null) { List <EntityInstanceProperty> editingProperties = new List <EntityInstanceProperty>(); foreach (var child in item.ChildRelationshipInfos.Where(x => x.Relationship.MastertTypeEnum == Enum_MasterRelationshipType.FromForeignToPrimary)) { List <EntityInstanceProperty> foreignKeyProperties = new List <EntityInstanceProperty>(); //foreach (var relCol in child.Relationship.RelationshipColumns) //{ // var prop = item.GetProperty(relCol.FirstSideColumnID); // foreignKeyProperties.Add(prop); //} bool isSelfTable = false; if (child.Relationship.RelationshipColumns.All(x => x.FirstSideColumnID == x.SecondSideColumnID)) { isSelfTable = true; //foreach (var prop in item.GetProperties()) // childItem.AddProperty(prop.Column, prop.Value); } if (child.RelatedData.Any()) { foreach (var pkData in child.RelatedData) { var pkQueryItem = SetSortedTree(requester, result, pkData); //int pkIdentityColumnID = 0; //if (pkData.IsNewItem) // if (pkData.KeyProperties.Any(x => x.IsIdentity)) // { // pkIdentityColumnID = pkData.KeyProperties.First(x => x.IsIdentity).ColumnID; // } // queryItem.FKSources.Add(new FKToPK(child.Relationship, pkQueryItem, pkIdentityColumnID, isSelfTable)); if (child.RelationshipIsChangedForUpdate) { foreach (var relCol in child.Relationship.RelationshipColumns) { var fkprop = item.GetProperty(relCol.FirstSideColumnID); if (fkprop == null) { fkprop = new EntityInstanceProperty(relCol.FirstSideColumn); } var pkprop = pkData.GetProperty(relCol.SecondSideColumnID); if (pkData.IsNewItem && (pkprop.Column.IsIdentity || pkprop.PKIdentityColumn != null)) { fkprop.Value = "{" + fkprop.ColumnID + "}"; fkprop.PKIdentityColumn = pkprop; } else { fkprop.Value = pkData.GetProperty(relCol.SecondSideColumnID).Value; } //fkprop.IsHidden = child.IsHidden; foreignKeyProperties.Add(fkprop); } } } } else { if (item.IsNewItem || (child.RelationshipIsChangedForUpdate && child.RemovedDataForUpdate.Any())) { foreach (var relCol in child.Relationship.RelationshipColumns) { var fkprop = item.GetProperty(relCol.FirstSideColumnID); if (fkprop == null) { fkprop = new EntityInstanceProperty(relCol.FirstSideColumn); } fkprop.Value = null; //prop.IsHidden = child.IsHidden; foreignKeyProperties.Add(fkprop); } } } foreach (var fkProp in foreignKeyProperties) { fkProp.HasForeignKeyData = true; editingProperties.Add(fkProp); } } if (parentChildRelationshipInfo != null && parentChildRelationshipInfo.Relationship.MastertTypeEnum == Enum_MasterRelationshipType.FromPrimartyToForeign) { bool isSelfTable = false; if (parentChildRelationshipInfo.Relationship.RelationshipColumns.All(x => x.FirstSideColumnID == x.SecondSideColumnID)) { isSelfTable = true; //foreach (var prop in item.GetProperties()) // childItem.AddProperty(prop.Column, prop.Value); } //int pkIdentityColumnID = 0; //if (parentItem.IsNewItem) // if (parentItem.KeyProperties.Any(x => x.IsIdentity)) // { // pkIdentityColumnID = parentItem.KeyProperties.First(x => x.IsIdentity).ColumnID; // } //parentQueryItem همون طرف pk هست //var relationship = bizRelationship.GetRelationship(parentChildRelationshipInfo.Relationship.PairRelationshipID); //queryItem.FKSources.Add(new FKToPK(relationship, parentQueryItem, pkIdentityColumnID, isSelfTable)); if (parentChildRelationshipInfo.RelationshipIsChangedForUpdate && item.IsEdited) //اینجا edited اضافه شد چون ممکنه یک به چند باشه و فقط یک داده فرزند اضافه شده باشد { foreach (var relCol in parentChildRelationshipInfo.Relationship.RelationshipColumns) { var fkprop = item.GetProperty(relCol.SecondSideColumnID); if (fkprop == null) { fkprop = new EntityInstanceProperty(relCol.SecondSideColumn); } var pkprop = parentQueryItem.DataItem.GetProperty(relCol.FirstSideColumnID); if (parentQueryItem.DataItem.IsNewItem && (pkprop.Column.IsIdentity || pkprop.PKIdentityColumn != null)) { fkprop.Value = "{" + fkprop.ColumnID + "}"; fkprop.PKIdentityColumn = pkprop; } else { fkprop.Value = pkprop.Value; } fkprop.HasForeignKeyData = true; //fkprop.IsHidden = parentChildRelationshipInfo.IsHidden; editingProperties.Add(fkprop); } } } QueryItem queryItem = new QueryItem(GetTableDrivedDTO(requester, item.TargetEntityID), item.IsNewItem ? Enum_QueryItemType.Insert : Enum_QueryItemType.Update, editingProperties, item); result.Add(queryItem); foreach (var child in item.ChildRelationshipInfos.Where(x => x.Relationship.MastertTypeEnum == Enum_MasterRelationshipType.FromPrimartyToForeign)) { foreach (var childItem in child.RelatedData) { SetSortedTree(requester, result, childItem, queryItem, child); } } return(queryItem); }
//صدا زده میشود RelationData تنها بوسیله ShowData برای نمایش داده های اضافه شده در آن صدا زده میشود.در مابقی موارد ShowData که AddData فقط یکجا مشخص میشود و آنهم در specificDate public override bool ShowDataInDataView(DP_DataRepository specificDate) { if (!specificDate.IsFullData) { throw new Exception("asdasd"); } foreach (var propertyControl in SimpleColumnControls) { var property = specificDate.GetProperty(propertyControl.Column.ID); if (property != null) { //////ShowTypePropertyControlValue(specificDate, propertyControl, property.Value); //if (propertyControl.Column.ColumnValueRange != null && propertyControl.Column.ColumnValueRange.Details.Any()) //{ // var columnKeyValue = propertyControl.Column.ColumnValueRange; // CheckItemsSourceAndPropertyValue(propertyControl, specificDate); //} SetBinding(specificDate, propertyControl, property); } else { //???? } } bool result = true; //جدید--دقت شود که اگر نمایش مستقیم نیست داخل فرم رابطه ای نباید همه کنترلها مقداردهی شوند foreach (var relationshipControl in RelationshipColumnControls) { bool relationshipFirstSideHasValue = relationshipControl.Relationship.RelationshipColumns.Any() && relationshipControl.Relationship.RelationshipColumns.All(x => specificDate.GetProperties().Any(y => !AgentHelper.ValueIsEmpty(y) && y.ColumnID == x.FirstSideColumnID)); //relationshipControl.EditNdTypeArea.AreaInitializer.SourceRelationColumnControl.RelatedData = specificDate; //اینجا یکارایی بشه دسترسی موقت bool childLoadedBefore = specificDate.ChildRelationshipInfos.Any(x => x.Relationship.ID == relationshipControl.Relationship.ID); ChildRelationshipInfo childData = null; if (childLoadedBefore) { childData = specificDate.ChildRelationshipInfos.First(x => x.Relationship.ID == relationshipControl.Relationship.ID); } else { if (!relationshipFirstSideHasValue) { childData = specificDate.AddChildRelationshipInfo(relationshipControl.Relationship); } else { bool childIsDataView = (relationshipControl.EditNdTypeArea.AreaInitializer.IntracionMode == IntracionMode.CreateDirect || relationshipControl.EditNdTypeArea.AreaInitializer.IntracionMode == IntracionMode.CreateSelectDirect); if (childIsDataView) { childData = AreaInitializer.EditAreaDataManager.SerachDataFromParentRelationForChildDataView(relationshipControl.Relationship, this, relationshipControl.EditNdTypeArea, specificDate); } else { childData = AreaInitializer.EditAreaDataManager.SerachDataFromParentRelationForChildTempView(relationshipControl.Relationship, this, relationshipControl.EditNdTypeArea, specificDate); } } } if (childData.SecurityIssue == false) { // if (relationshipControl.EditNdTypeArea.AreaInitializer.IntracionMode == IntracionMode.CreateInDirect || //relationshipControl.EditNdTypeArea.AreaInitializer.IntracionMode == IntracionMode.CreateSelectInDirect) // { // if (relationshipControl.EditNdTypeArea.TemporaryDisplayView != null) // relationshipControl.EditNdTypeArea.TemporaryDisplayView.DisableEnable(TemporaryLinkType.DataView, true); // if (relationshipControl.EditNdTypeArea.TemporaryDisplayView != null) // { // if (relationshipControl.EditNdTypeArea.SecurityReadOnlyByParent|| relationshipControl.EditNdTypeArea.AreaInitializer.SecurityReadOnly ) // { // if (!childData.RelatedData.Any()) // { // //اگر مستقیم بود چی..اصن نباید دیتای دیفالت تولید بشه .درست شود // relationshipControl.EditNdTypeArea.TemporaryDisplayView.DisableEnable(TemporaryLinkType.DataView, false); // } // } // } // } var childResult = relationshipControl.EditNdTypeArea.SetChildRelationshipInfoAndShow(childData); if (!childResult) { result = false; } } else { result = false; } } if (result) { OnDataItemShown(new EditAreaDataItemLoadedArg() { DataItem = specificDate, InEditMode = true }); } // CheckRelationshipReadonlyEnablity(); DecideDataSectionEnablity(); return(result); //else }
//بعدا بررسی شود private bool InternalShowDataInDataView(DP_DataRepository specificDate) { if (!specificDate.IsFullData) { throw new Exception("asdasd"); } foreach (var propertyControl in SimpleColumnControls) { var property = specificDate.GetProperty(propertyControl.Column.ID); if (property != null) { //if (AreaInitializer.IntracionMode == IntracionMode.Create // || AreaInitializer.IntracionMode == IntracionMode.CreateSelect) //{ //if (propertyControl.Column.ColumnValueRange != null && propertyControl.Column.ColumnValueRange.Details.Any()) //{ // var columnKeyValue = propertyControl.Column.ColumnValueRange; // if (!string.IsNullOrEmpty(property.Value)) // { // if (columnKeyValue.ValueFromTitleOrValue) // { // if (!columnKeyValue.Details.Any(x => x.KeyTitle == property.Value)) // property.Value = ""; // } // else // { // if (!columnKeyValue.Details.Any(x => x.Value == property.Value)) // property.Value = ""; // } // } //} SetBinding(specificDate, propertyControl, property); //ShowTypePropertyControlValue(specificDate, propertyControl, property.Value); //} } else { //???? } } bool result = true; foreach (var relationshipControl in RelationshipColumnControls) { bool relationshipFirstSideHasValue = relationshipControl.Relationship.RelationshipColumns.Any() && relationshipControl.Relationship.RelationshipColumns.All(x => specificDate.GetProperties().Any(y => y.Value != null && !string.IsNullOrEmpty(y.Value.ToString()) && y.ColumnID == x.FirstSideColumnID)); bool childLoadedBefore = specificDate.ChildRelationshipInfos.Any(x => x.Relationship.ID == relationshipControl.Relationship.ID); ChildRelationshipInfo childData = null; if (childLoadedBefore) { childData = specificDate.ChildRelationshipInfos.First(x => x.Relationship.ID == relationshipControl.Relationship.ID); } else { if (!relationshipFirstSideHasValue) { childData = specificDate.AddChildRelationshipInfo(relationshipControl.Relationship); } else { childData = AreaInitializer.EditAreaDataManager.SerachDataFromParentRelationForChildTempView(relationshipControl.Relationship, this, relationshipControl.EditNdTypeArea, specificDate); } } if (childData.SecurityIssue == false) { relationshipControl.EditNdTypeArea.SetChildRelationshipInfoAndShow(childData); //if (relationshipControl.EditNdTypeArea.SecurityReadOnlyByParent || relationshipControl.EditNdTypeArea.AreaInitializer.SecurityReadOnly) // if (!childData.RelatedData.Any()) // { // relationshipControl.View.DisableEnable(specificDate, TemporaryLinkType.DataView, false); // } } else { result = false; } } if (result) { OnDataItemShown(new EditAreaDataItemLoadedArg() { DataItem = specificDate, InEditMode = true }); } // OnDataItemLoaded(new EditAreaDataItemLoadedArg() { DataItem = specificDate, InEditMode = true }); return(result); }
public object GetValueSomeHow(DR_Requester requester, DP_DataRepository sentdata, EntityRelationshipTailDTO valueRelationshipTail, int valueColumnID, bool firstIfMultiple = false) { if (valueRelationshipTail == null) { var proprty = sentdata.GetProperty(valueColumnID); return(proprty?.Value); } else { DP_DataRepository relatedData = null; if (sentdata.ParantChildRelationshipInfo != null && sentdata.ParantChildRelationshipInfo.Relationship.PairRelationshipID == valueRelationshipTail.Relationship.ID) { if (sentdata.ParantChildRelationshipInfo.Relationship.PairRelationshipID == valueRelationshipTail.Relationship.ID) { relatedData = sentdata.ParantChildRelationshipInfo.SourceData; } } else if (sentdata.ChildRelationshipInfos.Any(x => x.Relationship.ID == valueRelationshipTail.Relationship.ID)) { var childInfo = sentdata.ChildRelationshipInfos.First(x => x.Relationship.ID == valueRelationshipTail.Relationship.ID); if (childInfo.RelatedData.Count > 1) { if (firstIfMultiple) { relatedData = childInfo.RelatedData.First(); } else { throw new Exception("asav"); } } else if (childInfo.RelatedData.Count == 1) { relatedData = childInfo.RelatedData.First(); } else if (childInfo.RelatedData.Count == 0) { //یعنی یا داده مرتبطی وجود نداشته یا حذف شده return(""); } } if (relatedData != null) { return(GetValueSomeHow(requester, relatedData, valueRelationshipTail.ChildTail, valueColumnID, firstIfMultiple)); } else { //var columnValues = sentdata.KeyProperties; //if (columnValues == null || columnValues.Count == 0) // throw new Exception("asasd"); //سکوریتی داده اعمال میشود // var requester = AgentUICoreMediator.GetAgentUICoreMediator.GetRequester(); //این شرط منطقیه؟؟ if (!sentdata.IsNewItem) { var relationshipTailDataManager = new RelationshipTailDataManager(); var searchDataTuple = relationshipTailDataManager.GetTargetSearchItemFromRelationshipTail(sentdata, valueRelationshipTail); DR_SearchFullDataRequest request = new DR_SearchFullDataRequest(requester, searchDataTuple); var searchResult = new SearchRequestManager().Process(request); if (searchResult.ResultDataItems.Count > 1) { throw new Exception("asdasd"); } else if (searchResult.ResultDataItems.Count == 1) { var foundDataItem = searchResult.ResultDataItems.First(); var prop = foundDataItem.GetProperty(valueColumnID); if (prop != null) { return(prop.Value); } else { return(""); } } else { return(""); } } else { return(""); } } } //return ""; }