private async void SetImportedInfo() { //try //{ FormIsBusy(this, null); //به این که میرسه برمیگرده به تردی که این متود اسینک رو صدا زده که اینجا ترد یو آی میباشد // بنابراین کارهای یو آی را که تا اینجا غیر فعال کردن فرم می باشد انجام میدهد // زمانی که متود زیر کامل شد بر میگرده به ادامه این کد var result = await GetTablesAndColumnInfo(); listNew = new List <TableImportItem>(); listEdited = new List <TableImportItem>(); listDeleted = new List <TableImportItem>(); listExisting = new List <TableImportItem>(); listException = new List <TableImportItem>(); var originalEntities = bizTableDrivedEntity.GetOrginalEntities(Database.ID, EntityColumnInfoType.WithFullColumns, EntityRelationshipInfoType.WithoutRelationships, false); foreach (var item in result.Where(x => x.Exception == false)) { if (originalEntities.Any(x => x.Name.ToLower() == item.Entity.Name.ToLower())) { //باید اصلاح شود که موجودیت ارث بری داخلی همه ستونهای جدول را بگیرد و نه اختصاصی شده ها را var existingEntity = originalEntities.First(x => x.Name.ToLower() == item.Entity.Name.ToLower()); if (!existingEntity.IsDisabled) { var diff = EntityIsModified(item, existingEntity); if (!string.IsNullOrEmpty(diff)) { item.Entity.Alias = existingEntity.Alias; item.Entity.Description = existingEntity.Description; item.Selected = true; item.Tooltip = diff; listEdited.Add(item); } else { item.Entity = existingEntity; listExisting.Add(item); } } } else { item.Selected = true; listNew.Add(item); } } if (listNew.Any()) { var columnTags = WizardHelper.GetColumnsAliasAndDescriptions(listNew.SelectMany(x => x.Entity.Columns).ToList()); var tags = WizardHelper.GetTablesAliasAndDescriptions(listNew.Select(x => x.Entity).ToList()); foreach (var item in listNew) { if (!string.IsNullOrEmpty(tags.Item1) || !string.IsNullOrEmpty(tags.Item2)) { WizardHelper.SetEntityAliasAndDescription(item, tags.Item1, tags.Item2); } foreach (var column in item.Entity.Columns) { WizardHelper.SetColumnAliasAnadDescription(column, columnTags.Item1, columnTags.Item2); CheckNewColumnPersianDate(column); } item.Tooltip = GetNewItemTooltip(item); } } if (listEdited.Any(x => x.Entity.Columns.Any(y => y.ColumnsAdded))) { var tags = WizardHelper.GetColumnsAliasAndDescriptions(listEdited.SelectMany(x => x.Entity.Columns).Where(y => y.ColumnsAdded).ToList()); if (!string.IsNullOrEmpty(tags.Item1) || !string.IsNullOrEmpty(tags.Item2)) { foreach (var item in listEdited.Where(x => x.Entity.Columns.Any(y => y.ColumnsAdded))) { foreach (var column in item.Entity.Columns.Where(x => x.ColumnsAdded)) { WizardHelper.SetColumnAliasAnadDescription(column, tags.Item1, tags.Item2); CheckNewColumnPersianDate(column); } } } } foreach (var item in result.Where(x => x.Exception == true)) { listException.Add(item); } //var existingEntities = GetOrginalEntities; foreach (var item in originalEntities.Where(x => !x.IsDisabled && !result.Any(y => y.Entity.Name == x.Name))) { listDeleted.Add(new TableImportItem(item, "", true)); } //var result = await GenerateDefaultEntitiesAndColumns(); //نتیجه خط بالا که برگشت ادامه کار طی میشود // ManageLogs(result, lstTables); //if (listNew.Count > 0) // SetNewEntitiesProperties(listNew); dtgNewTables.ItemsSource = listNew; dtgEditTables.ItemsSource = listEdited; dtgDeletedTables.ItemsSource = listDeleted; dtgExceptionTables.ItemsSource = listException; dtgExistingTables.ItemsSource = listExisting; if (listException.Any()) { tabExceptionTables.Visibility = Visibility.Visible; } else { tabExceptionTables.Visibility = Visibility.Collapsed; } tabNewTables.Foreground = listNew.Any() ? new SolidColorBrush(Colors.Green) : new SolidColorBrush(Colors.Red); tabEditTables.Foreground = listEdited.Any() ? new SolidColorBrush(Colors.Green) : new SolidColorBrush(Colors.Red); tabDeletedTables.Foreground = listDeleted.Any() ? new SolidColorBrush(Colors.Green) : new SolidColorBrush(Colors.Red); tabExceptionTables.Foreground = listException.Any() ? new SolidColorBrush(Colors.Green) : new SolidColorBrush(Colors.Red); tabExistingTables.Foreground = listExisting.Any() ? new SolidColorBrush(Colors.Green) : new SolidColorBrush(Colors.Red); if (listNew.Any()) { tabNewTables.IsSelected = true; } else if (listEdited.Any()) { tabEditTables.IsSelected = true; } else if (listDeleted.Any()) { tabDeletedTables.IsSelected = true; } else if (listException.Any()) { tabExceptionTables.IsSelected = true; } else if (listExisting.Any()) { tabExistingTables.IsSelected = true; } btnInsert.IsEnabled = listNew.Any() || listEdited.Any() || listDeleted.Any(); //} //catch (Exception ex) //{ // MessageBox.Show("خطا در پردازش اطلاعات" + Environment.NewLine + ex.Message); //} //finally //{ FormIsFree(this, null); //} }
private async void SetImportedInfo() { try { FormIsBusy(this, null); var result = await GetViewsInfo(); result.ForEach(x => x.Entity.IsView = true); listNew = new List <TableImportItem>(); listEdited = new List <TableImportItem>(); listDeleted = new List <TableImportItem>(); listExisting = new List <TableImportItem>(); listException = new List <TableImportItem>(); var originalViews = bizTableDrivedEntity.GetOrginalEntities(Database.ID, EntityColumnInfoType.WithSimpleColumns, EntityRelationshipInfoType.WithoutRelationships, true); foreach (var item in result.Where(x => x.Exception == false)) { if (originalViews.Any(x => x.Name.ToLower() == item.Entity.Name.ToLower())) { //باید اصلاح شود که موجودیت ارث بری داخلی همه ستونهای جدول را بگیرد و نه اختصاصی شده ها را var existingView = originalViews.First(x => x.Name.ToLower() == item.Entity.Name.ToLower()); if (!existingView.IsDisabled) { var diff = ViewIsModified(item.Entity, existingView); if (!string.IsNullOrEmpty(diff)) { item.Selected = true; item.Tooltip = diff; listEdited.Add(item); } else { listExisting.Add(item); } } } else { item.Selected = true; listNew.Add(item); } } if (listNew.Any()) { var columnTags = WizardHelper.GetColumnsAliasAndDescriptions(listNew.SelectMany(x => x.Entity.Columns).ToList()); var tags = WizardHelper.GetTablesAliasAndDescriptions(listNew.Select(x => x.Entity).ToList()); foreach (var item in listNew) { if (!string.IsNullOrEmpty(tags.Item1) || !string.IsNullOrEmpty(tags.Item2)) { WizardHelper.SetEntityAliasAndDescription(item, tags.Item1, tags.Item2); } foreach (var column in item.Entity.Columns) { WizardHelper.SetColumnAliasAnadDescription(column, columnTags.Item1, columnTags.Item2); } item.Tooltip = GetNewItemTooltip(item); } } if (listEdited.Any(x => x.Entity.Columns.Any(y => y.ColumnsAdded))) { var tags = WizardHelper.GetColumnsAliasAndDescriptions(listEdited.SelectMany(x => x.Entity.Columns).Where(y => y.ColumnsAdded).ToList()); if (!string.IsNullOrEmpty(tags.Item1) || !string.IsNullOrEmpty(tags.Item2)) { foreach (var item in listEdited.Where(x => x.Entity.Columns.Any(y => y.ColumnsAdded))) { foreach (var column in item.Entity.Columns.Where(x => x.ColumnsAdded)) { WizardHelper.SetColumnAliasAnadDescription(column, tags.Item1, tags.Item2); } } } } foreach (var item in result.Where(x => x.Exception == true)) { listException.Add(item); } //var existingViews = bizTableDrivedEntity.GetEnabledOrginalViews(Database.ID); foreach (var item in originalViews.Where(x => !x.IsDisabled && !result.Any(y => y.Entity.Name == x.Name))) { listDeleted.Add(new TableImportItem(item, "", true)); } //var result = await GenerateDefaultViewsAndColumns(); //نتیجه خط بالا که برگشت ادامه کار طی میشود // ManageLogs(result, lstViews); dtgNewViews.ItemsSource = listNew; dtgEditViews.ItemsSource = listEdited; dtgExistingViews.ItemsSource = listExisting; dtgExceptionViews.ItemsSource = listException; dtgDeletedViews.ItemsSource = listDeleted; if (listException.Any()) { tabExceptionViews.Visibility = Visibility.Visible; } else { tabExceptionViews.Visibility = Visibility.Collapsed; } tabNewViews.Foreground = listNew.Any() ? new SolidColorBrush(Colors.Green) : new SolidColorBrush(Colors.Red); tabEditViews.Foreground = listEdited.Any() ? new SolidColorBrush(Colors.Green) : new SolidColorBrush(Colors.Red); tabDeletedViews.Foreground = listDeleted.Any() ? new SolidColorBrush(Colors.Green) : new SolidColorBrush(Colors.Red); tabExceptionViews.Foreground = listException.Any() ? new SolidColorBrush(Colors.Green) : new SolidColorBrush(Colors.Red); tabExistingViews.Foreground = listExisting.Any() ? new SolidColorBrush(Colors.Green) : new SolidColorBrush(Colors.Red); if (listNew.Any()) { tabNewViews.IsSelected = true; } else if (listEdited.Any()) { tabEditViews.IsSelected = true; } else if (listDeleted.Any()) { tabDeletedViews.IsSelected = true; } else if (listException.Any()) { tabExceptionViews.IsSelected = true; } else if (listExisting.Any()) { tabExistingViews.IsSelected = true; } btnInsert.IsEnabled = listNew.Any() || listEdited.Any() || listDeleted.Any(); } catch (Exception ex) { MessageBox.Show("خطا در پردازش اطلاعات" + Environment.NewLine + ex.Message); } finally { FormIsFree(this, null); } }