private void SelectRelationships(TableImportItem tableImportItem) { //foreach (var rel in tableImportItem.Relationships) //{ // if (rel.DataEntryEnabled) // rel.Select = true; //} if (tableImportItem.Entity.IndependentDataEntry != true) { if (tableImportItem.Relationships.Count == 1) { tableImportItem.Relationships.First().Select = true; } else if (tableImportItem.Relationships.Count > 1) { foreach (var rel in tableImportItem.Relationships) { if (tableImportItem.Entity.Name.ToLower().StartsWith(rel.Entity1.ToLower())) { rel.Select = true; // break; } } if (!tableImportItem.Relationships.Any(x => x.Select)) { foreach (var rel in tableImportItem.Relationships) { if (rel.TypeEnum == Enum_RelationshipType.OneToMany && rel.RelationshipColumns.Any(y => y.SecondSideColumn.PrimaryKey)) { rel.Select = true; // break; } } } //if (!tableImportItem.Relationships.Any(x => x.Select)) //{ // List<Tuple<RelationshipDTO, int>> listRelEntityColumns = new List<Tuple<RelationshipDTO, int>>(); // foreach (var rel in tableImportItem.Relationships) // { // var fEntity = listAllEntitis.First(x => x.ID == rel.EntityID1); // listRelEntityColumns.Add(new Tuple<RelationshipDTO, int>(rel, fEntity.Columns.Count)); // } // var most = listRelEntityColumns.OrderByDescending(x => x.Item2).First().Item2; // foreach (var item in listRelEntityColumns.Where(x => x.Item2 == most)) // { // item.Item1.Select = true; // } //} } else { } SetRelatedEntityNames(tableImportItem); } }
private async void SetImportedInfo() { try { FormIsBusy(this, null); finalList = new List <TableImportItem>(); // listNewNonSuspicious = new List<TableImportItem>(); if (bizTableDrivedEntity.ExistsEnabledEntitiesWithNullDataReference(Database.ID)) { listAllEntitis = await GetOrginalEntities(); //List<TableImportItem> listNewSuspicious = new List<TableImportItem>(); //List<TableImportItem> listNewNonSuspicious = new List<TableImportItem>(); foreach (var entity in listAllEntitis.Where(x => !x.IsDisabled && x.IsDataReference == null)) { var item = new TableImportItem(entity, false, ""); SetInfo(item); finalList.Add(item); //if (IsSuspicious(entity)) // listNewSuspicious.Add(item); //else //{ // item.Entity.IsDataReference = false; // listNewNonSuspicious.Add(item); //} } await DecideProperties(finalList.Select(x => x.Entity).ToList()); //finalList = listNewSuspicious.Union(listNewNonSuspicious).OrderByDescending(x => x.Entity.IsDataReference).ToList(); } //if (listNewSuspicious.Any()) // tabNewTablesSuspicious.IsSelected = true; //else if (listNewNonSuspicious.Any()) // tabNewTablesNonSuspicious.IsSelected = true; dtgTables.ItemsSource = finalList.OrderByDescending(x => x.Entity.IsDataReference).ToList(); //dtgNewTablesNonSuspicious.ItemsSource = listNewNonSuspicious; btnInsert.IsEnabled = finalList.Any(); } catch (Exception ex) { MessageBox.Show("خطا در پردازش اطلاعات" + Environment.NewLine + ex.Message); } finally { if (finalList.Any()) { FormIsFree(this, null); lblMessage.Visibility = Visibility.Collapsed; } else { lblMessage.Text = "موجودیتی برای تعیین وضعیت جدول پایه موجود نمی باشد"; lblMessage.Visibility = Visibility.Visible; } } }
private void SetRelatedEntityNames(TableImportItem tableImportItem) { var relNames = ""; foreach (var item in tableImportItem.Relationships.Where(x => x.Select)) { relNames += (relNames == "" ? "" : ",") + item.Entity1; } tableImportItem.RelatedEntityNames = relNames; }
private string GetNewItemTooltip(TableImportItem item) { string tooltip = item.Entity.Name + ((!string.IsNullOrEmpty(item.Entity.Alias) && item.Entity.Name != item.Entity.Alias) ? " As " + "'" + item.Entity.Alias + "'" : ""); tooltip += Environment.NewLine + "Columns : "; foreach (var column in item.Entity.Columns) { tooltip += Environment.NewLine + column.Name + ((!string.IsNullOrEmpty(column.Alias) && column.Name != column.Alias) ? " As " + "'" + column.Alias + "'" : ""); } return(tooltip); }
private void DecideCellEnabled(TableImportItem item, GridViewCellBase cell) { if (cell != null) { cell.IsEnabled = item.Entity.IndependentDataEntry != true; } if (!cell.IsEnabled) { item.RelatedEntityNames = ""; } //if (item.Entity.IndependentDataEntry != true) // if (item.Relationships.Count <= 1) // cell.IsEnabled = false; }
private void SetInfo(TableImportItem item) { var tooltip = "Columns :"; foreach (var column in item.Entity.Columns) { tooltip += Environment.NewLine + column.Name + (column.PrimaryKey ? " (PK) " : "") + " : " + column.DataType + (column.IsNull ? " " + "(Nullable)" : ""); } tooltip += Environment.NewLine + "Relationship :"; foreach (var relationship in item.Entity.Relationships) { tooltip += Environment.NewLine + relationship.Entity2 + " : " + relationship.TypeEnum.ToString(); } item.Tooltip += (string.IsNullOrEmpty(item.Tooltip) ? "" : Environment.NewLine) + tooltip; }
//public List<TableDrivedEntityDTO> listAllEntitis { get; private set; } private async void SetImportedInfo() { listNew = new List <TableImportItem>(); var listEntity = bizTableDrivedEntity.GetOrginalEntitiesWithoutUIComposition(Database.ID, EntityColumnInfoType.WithFullColumns, EntityRelationshipInfoType.WithRelationships); foreach (var entity in listEntity) { var item = new TableImportItem(entity, false, ""); SetInfo(item); listNew.Add(item); } await DecideProperties(listNew); dtgNewTables.ItemsSource = listNew; btnInsert.IsEnabled = listNew.Any(); }
public static void SetEntityAliasAndDescription(TableImportItem item, string entitytitleTag, string entitydescTag) { if (!string.IsNullOrEmpty(entitytitleTag) || !string.IsNullOrEmpty(entitydescTag)) { if (!string.IsNullOrEmpty(entitytitleTag)) { if (item.Entity.DatabaseDescriptions.Any(x => x.Item1.ToLower() == entitytitleTag)) { item.Entity.Alias = item.Entity.DatabaseDescriptions.First(x => x.Item1.ToLower() == entitytitleTag).Item2; } } if (!string.IsNullOrEmpty(entitydescTag)) { if (item.Entity.DatabaseDescriptions.Any(x => x.Item1.ToLower() == entitydescTag)) { item.Entity.Description = item.Entity.DatabaseDescriptions.First(x => x.Item1.ToLower() == entitydescTag).Item2; } } } }
private string EntityIsModified(TableImportItem dbItem, TableDrivedEntityDTO existingEntity) { string result = ""; if (dbItem.Entity.RelatedSchema != existingEntity.RelatedSchema) { result += (result == "" ? "" : Environment.NewLine) + "شمای موجودیت تغییر کرده است"; } //if (!string.IsNullOrEmpty(dbItem.Alias)) // if (string.IsNullOrEmpty(existingEntity.Alias) || existingEntity.Alias == existingEntity.Name) // if (dbItem.Alias != existingEntity.Alias) //if (existingEntity.Reviewed == false) //{ // //if (!string.IsNullOrEmpty(dbItem.Alias)) // if (dbItem.Alias != existingEntity.Alias) // result += (result == "" ? "" : Environment.NewLine) + "عنوان معادل موجودیت تغییر کرده است"; // //if (!string.IsNullOrEmpty(dbItem.Description)) // if (dbItem.Description != existingEntity.Description) // result += (result == "" ? "" : Environment.NewLine) + "توضیحات موجودیت تغییر کرده است"; //} if (dbItem.Entity.Columns.Any(x => !existingEntity.Columns.Any(y => y.Name.Replace("ي", "ی") == x.Name.Replace("ي", "ی")))) { foreach (var column in dbItem.Entity.Columns.Where(x => !existingEntity.Columns.Any(y => y.Name.Replace("ي", "ی") == x.Name.Replace("ي", "ی")))) { column.ColumnsAdded = true; result += (result == "" ? "" : Environment.NewLine) + "ستون" + " " + column.Name + " " + "اضافه شده است"; } } if (existingEntity.Columns.Where(x => !x.IsDisabled).Any(x => !dbItem.Entity.Columns.Any(y => y.Name.Replace("ي", "ی") == x.Name.Replace("ي", "ی")))) { foreach (var column in existingEntity.Columns.Where(x => !dbItem.Entity.Columns.Any(y => y.Name.Replace("ي", "ی") == x.Name.Replace("ي", "ی")))) { result += (result == "" ? "" : Environment.NewLine) + "ستون" + " " + column.Name + " " + "حذف شده است"; } } foreach (var column in existingEntity.Columns.Where(x => !x.IsDisabled && dbItem.Entity.Columns.Any(y => y.Name == x.Name))) { var dbColumn = dbItem.Entity.Columns.First(y => y.Name == column.Name); if (column.DataType != dbColumn.DataType) { result += (result == "" ? "" : Environment.NewLine) + "نوع ستون" + " " + column.Name + " " + "تغییر کرده است"; } if (column.IsIdentity != dbColumn.IsIdentity) { result += (result == "" ? "" : Environment.NewLine) + "شمارش ستون" + " " + column.Name + " " + "تغییر کرده است"; } if (column.PrimaryKey != dbColumn.PrimaryKey) { result += (result == "" ? "" : Environment.NewLine) + "کلید ستون" + " " + column.Name + " " + "تغییر کرده است"; } //if (column.Position != dbColumn.Position) // result += (result == "" ? "" : Environment.NewLine) + "موقعیت ستون" + " " + column.Name + " " + "تغییر کرده است"; if (column.IsDBCalculatedColumn != dbColumn.IsDBCalculatedColumn) { result += (result == "" ? "" : Environment.NewLine) + "محاسباتی بودن ستون" + " " + column.Name + " " + "تغییر کرده است"; } if (column.DBFormula != dbColumn.DBFormula) { result += (result == "" ? "" : Environment.NewLine) + "فرمول محاسباتی ستون" + " " + column.Name + " " + "تغییر کرده است"; } if (column.IsNull != dbColumn.IsNull) { result += (result == "" ? "" : Environment.NewLine) + "Null" + " " + "پذیر بودن ستون" + " " + column.Name + " " + "تغییر کرده است"; } if (column.DefaultValue != dbColumn.DefaultValue) { result += (result == "" ? "" : Environment.NewLine) + "مقدار پیش فرض ستون" + " " + column.Name + " " + "تغییر کرده است"; } if ((column.NumericColumnType != null && dbColumn.NumericColumnType != null) && ((dbColumn.NumericColumnType.Precision != 0 && column.NumericColumnType.Precision != dbColumn.NumericColumnType.Precision) || (dbColumn.NumericColumnType.Scale != 0 && column.NumericColumnType.Scale != dbColumn.NumericColumnType.Scale))) { result += (result == "" ? "" : Environment.NewLine) + "خصوصیات عددی ستون" + " " + column.Name + " " + "تغییر کرده است"; } if ((column.StringColumnType != null && dbColumn.StringColumnType != null) && (dbColumn.StringColumnType.MaxLength != 0 && column.StringColumnType.MaxLength > dbColumn.StringColumnType.MaxLength)) { result += (result == "" ? "" : Environment.NewLine) + "خصوصیات رشته ای ستون" + " " + column.Name + " " + "تغییر کرده است"; } //if (existingEntity.ColumnsReviewed == false) //{ // //if (!string.IsNullOrEmpty(dbColumn.Alias)) // if (dbColumn.Alias != column.Alias) // result += (result == "" ? "" : Environment.NewLine) + "عنوان معادل ستون" + " " + column.Name + " " + "تغییر کرده است"; // //if (!string.IsNullOrEmpty(dbColumn.Description)) // if (dbColumn.Description != column.Description) // result += (result == "" ? "" : Environment.NewLine) + "توضیحات ستون" + " " + column.Name + " " + "تغییر کرده است"; //} } return(result); }
private void SetUIComposition(TableImportItem item) { item.UIComposition = bizEntityUIComposition.GenerateUIComposition(item.Entity); }
private void SetDefaultListView(TableImportItem item) { item.DefaultListView = bizEntityListView.GenerateDefaultListView(item.Entity); }
private async void SetImportedInfo() { try { FormIsBusy(this, null); finalList = new List <TableImportItem>(); //List<TableImportItem> listNewNonSuspicious = new List<TableImportItem>(); if (bizTableDrivedEntity.ExistsEnabledEntitiesWithNullIndependentProperty(Database.ID)) { listAllEntitis = await GetOrginalEntities(); listAllEnabledRelationships = await GetEnabledRelationships(); foreach (var entity in listAllEntitis.Where(x => !x.IsDisabled && x.IndependentDataEntry == null)) { var relationships = new List <RelationshipDTO>(); foreach (var rel in listAllEnabledRelationships.Where(x => x.EntityID2 == entity.ID)) { // var oneSideEntity = listAllEntitis.First(x => x.ID == rel.EntityID1); // if (oneSideEntity.IndependentDataEntry == true) relationships.Add(rel); } var item = new TableImportItem(entity, false, ""); item.Relationships = relationships; SetInfo(item); finalList.Add(item); //if (IsSuspicious(entity)) //{ // item.Entity.IndependentDataEntry = true; // listNewSuspicious.Add(item); //} //else //{ // listNewNonSuspicious.Add(item); //} } await DecideProperties(finalList.ToList()); //finalList = listNewSuspicious.Union(listNewNonSuspicious).OrderByDescending(x => x.Entity.IndependentDataEntry).ToList(); //foreach (var item in listNewNonSuspicious) //{ // if (item.Relationships.Count == 1) // { // item.Relationships.First().Select = true; // SetRelatedEntityNames(item); // } //} } //if (listNewNonSuspicious.Any()) // tabNewTablesNonSuspicious.IsSelected = true; //else if (listNewSuspicious.Any()) // tabNewTablesSuspicious.IsSelected = true; dtgTables.ItemsSource = finalList.OrderByDescending(x => x.Entity.IndependentDataEntry).ToList(); //dtgNewTablesNonSuspicious.ItemsSource = listNewNonSuspicious; btnInsert.IsEnabled = finalList.Any(); } catch (Exception ex) { MessageBox.Show("خطا در پردازش اطلاعات" + Environment.NewLine + ex.Message); } finally { if (finalList.Any()) { FormIsFree(this, null); lblMessage.Visibility = Visibility.Collapsed; } else { lblMessage.Text = "موجودیتی به منظور تعیین مستقل بودن و یا نبودن موجود نمی باشد"; lblMessage.Visibility = Visibility.Visible; } } }