private void BuildObjectName(string[] assemblyNameList) { XPDictionary dict = new ReflectionDictionary(); var lst = new XPCollection <CoreLib.Label.UIObjectBase>(unitOfWork1).ToList(); foreach (string assebly in assemblyNameList) { var assemblyInstance = GlobalMethods.GetAssemblyByName(assebly); dict.CollectClassInfos(assemblyInstance); foreach (XPClassInfo item in dict.Classes) { //if (item.BaseClass !=null && // ( // item.BaseClass.FullName.Contains("XPLiteObjectExt")|| // item.BaseClass.FullName.Contains("XPLiteObject") || // item.BaseClass.FullName.Contains("XPObject") ) // ) if (item.IsPersistent) { if (!(item.FullName.Contains("XPLiteObjectExt") || item.FullName.Contains("XPLiteObject") || item.FullName.Contains("XPObject"))) { //var obj = unitOfWork1.FindObject<UIObjectBase>(CriteriaOperator.Parse("[ObjectName] = ? ", item.FullName)); //var obj = lst.Where(x => x.ObjectName == item.FullName).FirstOrDefault(); int counter = int.Parse(unitOfWork1.ExecuteScalar($"SELECT count(*) FROM dbo.UIObjectBase WHERE ObjectName = '{item.FullName}'").ToString()); if (counter == 0) { var obj = new UIObjectBase(unitOfWork1) { ObjectName = item.FullName, AssemblyName = item.AssemblyName }; obj.Save(); } } } } unitOfWork1.CommitChanges(); } }
private void BuildMemberName(UIObjectBase table) { #region Old //var classInfo = unitOfWork1.Dictionary.GetClassInfo(table.AssemblyName,table.ObjectName); //foreach (var m in classInfo.Members.Where(x => !string.IsNullOrEmpty(x.MappingField))) //{ // var caption = m.FindAttributeInfo("caption"); // var help = m.FindAttributeInfo("help"); // string fieldName = $"{m.Owner.FullName}.{m.Name}"; // if (caption != null) // { // string lblId = ((CustomAttribute)caption).Value; // if (!string.IsNullOrEmpty(lblId)) // { // var line = unitOfWork1.GetObjectByKey<UILabel>(lblId); // if(line != null) // { // line.FieldName = fieldName; // line.Save(); // } // } // } // else // { // var objName = unitOfWork1.FindObject<UIObjectBase>(CriteriaOperator.Parse(" ObjectName = ? ", classInfo.FullName)); // //Test if label already existed but not referenced in Xpo yet // var labelLine = unitOfWork1.FindObject<UILabel>(CriteriaOperator.Parse("[ObjectName] = ? AND [FieldName] = ? AND [LabelType] = ? ",objName, fieldName, MyEnums.UILabelType.FieldCaption)); // if (objName != null && labelLine == null) // { // UILabel newLbl = new UILabel(unitOfWork1) // { // LabelType = MyEnums.UILabelType.FieldCaption, // FieldName = fieldName, // ObjectName = objName, // Lang_en = m.Name, // LookupMemberCharWidth=10, // Width=10, // IsDisabled=false, // IsHidden=false, // VisibleOrder=0 // }; // newLbl.Langs.Add(new UILabelLang(unitOfWork1) { UILabelType = MyEnums.UILabelType.FieldCaption, Lang_en = newLbl.FieldName }); // newLbl.Langs.Add(new UILabelLang(unitOfWork1) { UILabelType = MyEnums.UILabelType.FieldHelp, Lang_en = newLbl.FieldName }); // newLbl.Save(); // } // } // if (help != null) // { // string lblId = ((CustomAttribute)help).Value; // if (!string.IsNullOrEmpty(lblId)) // { // var line = unitOfWork1.GetObjectByKey<UILabel>(lblId); // if (line != null) // { // line.FieldName = m.Name; // line.Save(); // } // } // } //} #endregion var classInfo = unitOfWork1.Dictionary.GetClassInfo(table.AssemblyName, table.ObjectName); var objectBaseLine = table; if (objectBaseLine == null) { return; } foreach (var m in classInfo.Members.Where(x => !string.IsNullOrEmpty(x.MappingField) || x.FindAttributeInfo("NonPersistentAttribute") != null)) { string fieldName = $"{m.Owner.FullName}.{m.Name}"; var labelLine = objectBaseLine.FindOrCreateUILabel(fieldName); } unitOfWork1.CommitChanges(); }