protected EdtLabelInfo getDataEntityFieldLabel(IDataEntityViewField tableField, EdtLabelInfo labelInfo)
        {
            if (String.IsNullOrEmpty(labelInfo.Label) == true &&
                String.IsNullOrEmpty(tableField.Label) == false)
            {
                // find the label here
                labelInfo.Label = tableField.Label;
            }
            if (String.IsNullOrEmpty(labelInfo.HelpLabel) == true &&
                String.IsNullOrEmpty(tableField.HelpText) == false)
            {
                // find the help label here
                labelInfo.HelpLabel = tableField.HelpText;
            }

            if (labelInfo.RequiresDigging())
            {
                // This means we need to find the underlying table / field and find the label from there
            }
            //if (labelInfo.RequiresDigging()
            //    && String.IsNullOrEmpty(tableField.ExtendedDataType) == false)
            //{
            //    AxEdt axEdt = Common.CommonUtil.GetModelSaveService().GetExtendedDataType(tableField.ExtendedDataType);
            //    labelInfo = this.getEdtBaseLabel(axEdt, labelInfo);
            //}

            //if (labelInfo.RequiresDigging()
            //    && tableField is FieldEnum)
            //{
            //    FieldEnum tableFieldEnum = tableField as FieldEnum;

            //    var axEnum = Common.CommonUtil.GetModelSaveService().GetEnum(tableFieldEnum.EnumType);
            //    if (axEnum != null)
            //    {
            //        if (String.IsNullOrEmpty(labelInfo.Label) == true
            //                        && String.IsNullOrEmpty(axEnum.Label) == false)
            //        {
            //            // find the label here
            //            labelInfo.Label = axEnum.Label;
            //        }
            //        if (String.IsNullOrEmpty(labelInfo.HelpLabel) == true
            //            && String.IsNullOrEmpty(axEnum.HelpText) == false)
            //        {
            //            // find the help label here
            //            labelInfo.HelpLabel = axEnum.HelpText;
            //        }
            //    }
            //}

            return(labelInfo);
        }
Esempio n. 2
0
        protected EdtLabelInfo getDataEntityFieldLabel(IDataEntityViewField field, EdtLabelInfo labelInfo)
        {
            if (String.IsNullOrEmpty(labelInfo.Label) == true &&
                String.IsNullOrEmpty(field.Label) == false)
            {
                // find the label here
                labelInfo.Label = field.Label;
            }
            if (String.IsNullOrEmpty(labelInfo.HelpLabel) == true &&
                String.IsNullOrEmpty(field.HelpText) == false)
            {
                // find the help label here
                labelInfo.HelpLabel = field.HelpText;
            }

            if (labelInfo.RequiresDigging())
            {
                /*
                 * if(field.DataEntityViewExtension != null)
                 * {
                 *  var extensionEntity = field.DataEntityViewExtension.RootElement as DataEntityViewExtension;
                 * }
                 * else*/
                if (field is DataEntityViewUnmappedField)
                {
                    DataEntityViewUnmappedField unmapeddField = field as DataEntityViewUnmappedField;
                    AxEdt axEdt = Common.CommonUtil.GetModelSaveService().GetExtendedDataType(unmapeddField.ExtendedDataType);
                    labelInfo = this.getEdtBaseLabel(axEdt, labelInfo);

                    if (labelInfo.RequiresDigging() &&
                        field is DataEntityViewUnmappedFieldEnum)
                    {
                        var unmapeddFieldEnum = field as DataEntityViewUnmappedFieldEnum;

                        labelInfo = this.getEnumLabel(unmapeddFieldEnum.EnumType, labelInfo);
                    }
                }
                // This means we need to find the underlying table / field and find the label from there
                else if (field is DataEntityViewMappedField)
                {
                    string tableName        = string.Empty;
                    var    metaModelService = Common.CommonUtil.GetModelSaveService();

                    var mappedField = field as DataEntityViewMappedField;
                    if (field.DataEntityViewExtension != null)
                    {
                        // Find the dataEntityView based on the name
                        var entityName = field.DataEntityViewExtension.Name;
                        entityName = entityName.Substring(0, entityName.IndexOf("."));
                        var dataEntity = metaModelService.GetDataEntityView(entityName);
                        dataEntity.ViewMetadata.DataSources.ToList().ForEach(ds =>
                        {
                            if (ds.Name.Equals(mappedField.DataSource, StringComparison.InvariantCultureIgnoreCase))
                            {
                                tableName = ds.Table;
                            }
                            else
                            {
                                var ee = ds.DataSources.GetEnumerator();
                                while (ee.MoveNext())
                                {
                                    tableName = this.findDataSoruceName_DataEntity(ee.Current, mappedField.DataSource);
                                    if (String.IsNullOrEmpty(tableName) == false)
                                    {
                                        break;
                                    }
                                    //if (ee.Current.Name.Equals(mappedField.DataSource, StringComparison.InvariantCultureIgnoreCase))
                                    //{   //TODO: what if there are even more nested data sources found ?
                                    //    tableName = ee.Current.Table;
                                    //    break;
                                    //}
                                    //else
                                    //{

                                    //}
                                }
                            }
                        });
                    }
                    else
                    {
                        var dataSources = field.DataEntity.DataContractViewMetadata.DataContractDataSources;
                        var dsEnum      = dataSources.VisualChildren.GetEnumerator();
                        while (dsEnum.MoveNext())
                        {
                            QueryRootDataSource ds = dsEnum.Current as QueryRootDataSource;
                            if (ds.Name.Equals(mappedField.DataSource, StringComparison.InvariantCultureIgnoreCase))
                            {
                                tableName = ds.Table;
                                //Tables.TableHelper.GetFirstExtension
                                // var metaModelProviders = ServiceLocator.GetService(typeof(IMetaModelProviders)) as IMetaModelProviders;

                                break; // we dont need to continue the while loop of the data sources anymore
                            }
                        }
                    }
                    var table = metaModelService.GetTable(tableName);

                    var tableField = table.Fields.Where(f => f.Name.Equals(mappedField.DataField)).FirstOrDefault();

                    if (labelInfo.RequiresDigging() &&
                        String.IsNullOrEmpty(tableField.ExtendedDataType) == false)
                    {
                        AxEdt axEdt = Common.CommonUtil.GetModelSaveService().GetExtendedDataType(tableField.ExtendedDataType);
                        labelInfo = this.getEdtBaseLabel(axEdt, labelInfo);
                    }

                    if (labelInfo.RequiresDigging() &&
                        tableField is AxTableFieldEnum)
                    {
                        var tableFieldEnum = tableField as AxTableFieldEnum;
                        labelInfo = this.getEnumLabel(tableFieldEnum.EnumType, labelInfo);
                    }
                }
            }
            //if (labelInfo.RequiresDigging()
            //    && String.IsNullOrEmpty(tableField.ExtendedDataType) == false)
            //{
            //    AxEdt axEdt = Common.CommonUtil.GetModelSaveService().GetExtendedDataType(tableField.ExtendedDataType);
            //    labelInfo = this.getEdtBaseLabel(axEdt, labelInfo);
            //}

            //if (labelInfo.RequiresDigging()
            //    && tableField is FieldEnum)
            //{
            //    FieldEnum tableFieldEnum = tableField as FieldEnum;

            //    var axEnum = Common.CommonUtil.GetModelSaveService().GetEnum(tableFieldEnum.EnumType);
            //    if (axEnum != null)
            //    {
            //        if (String.IsNullOrEmpty(labelInfo.Label) == true
            //                        && String.IsNullOrEmpty(axEnum.Label) == false)
            //        {
            //            // find the label here
            //            labelInfo.Label = axEnum.Label;
            //        }
            //        if (String.IsNullOrEmpty(labelInfo.HelpLabel) == true
            //            && String.IsNullOrEmpty(axEnum.HelpText) == false)
            //        {
            //            // find the help label here
            //            labelInfo.HelpLabel = axEnum.HelpText;
            //        }
            //    }
            //}

            return(labelInfo);
        }