Пример #1
0
        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;
                }
            }
        }
Пример #3
0
        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);
        }
Пример #5
0
 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();
        }
Пример #8
0
 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);
 }
Пример #12
0
        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;
                }
            }
        }