public override void Run() { State = WorkerState.Working; StatusMessage = "Init"; fieldDelimiter = FieldDelimiter.GetDbValue().ToString(); var fi = new FileInfo(ExportFileName); var baseFileName = fi.FullName.Replace(fi.Extension, string.Empty); avfrFile = new StreamWriter(baseFileName + "_AVFR.txt", false, Encoding.UTF8); StatusMessage = "Generating Child node list ... "; var allChildren = Taxonomies.Cast <ExtendedTaxonomyInfo>().SelectMany(p => p.Taxonomy.AllLeafChildren).Distinct().ToList(); CurrentProgress = 0; MaximumProgress = allChildren.Count; avfrFile.WriteLine( "T1{0}T2{0}T3{0}T4{0}T5{0}T6{0}T7{0}AttributeName{0}Value{0}NodeSkuCount{0}ValueSkuCount{0}AttributeSkuCount{0}NavigationOrder{0}DisplayOrder{0}Attribute FillRate{0}Value FillRate", fieldDelimiter); foreach (var taxonomyInfo in allChildren) { WriteAVFRData(taxonomyInfo); CurrentProgress++; } avfrFile.Close(); avfrFile.Dispose(); StatusMessage = "Done."; State = WorkerState.Ready; }
public override void Run() { State = WorkerState.Working; _parsedSkuExclusions = ParseSkuInclusionAndExclusions(SkuExclusions); _parsedSkuInclusions = ParseSkuInclusionAndExclusions(SkuInclusions); _delimiter = FieldDelimiter.GetDbValue().ToString(); //Create new context _currentDb = new NatalieDbDataContext(); var dlo = new DataLoadOptions(); dlo.LoadWith <TaxonomyInfo>(taxonomyInfo => taxonomyInfo.TaxonomyDatas); dlo.LoadWith <EntityInfo>(entityInfo => entityInfo.EntityDatas); dlo.LoadWith <SchemaInfo>(schemaInfo => schemaInfo.SchemaDatas); //dlo.AssociateWith<TaxonomyInfo>(taxonomyInfo => taxonomyInfo.TaxonomyDatas.Where(p => p.Active)); dlo.AssociateWith <EntityInfo>(entityInfo => entityInfo.EntityDatas.Where(p => p.Active)); dlo.AssociateWith <SchemaInfo>(schemaInfo => schemaInfo.SchemaDatas.Where(p => p.Active)); //dlo.AssociateWith<TaxonomyInfo>(taxonomyInfo => taxonomyInfo.SkuInfos.Where(p => p.Active)); _currentDb.LoadOptions = dlo; _currentDb.CommandTimeout = 2000; _currentDb.Connection.Open(); _currentDb.Connection.ChangeDatabase(NatalieTools.Instance.InstanceData.Dc.Connection.Database); _separator = NatalieTools.Instance.InstanceData.CurrentProject.ListSeparator; StatusMessage = "Init"; var fi = new FileInfo(ExportFileName); _baseFileName = fi.FullName.Replace(fi.Extension, string.Empty); //_taxonomyFile = new StreamWriter(_baseFileName + "_Classification.txt", false, Encoding.UTF8); //_taxonomyFile.WriteLine("ItemId{0}New Taxonomy{0}Node Type{0}Old Taxonomy", _delimiter); var exportTaxonomyIds = Taxonomies.Cast <ExtendedTaxonomyInfo>().Select(p => p.Taxonomy.ID).Distinct().ToList(); var exportTaxonomies = _currentDb.TaxonomyInfos.Where(p => exportTaxonomyIds.Contains(p.ID)).ToList(); var allExportTaxonomies = exportTaxonomies.SelectMany(p => p.AllChildren2).Union(exportTaxonomies).Distinct().ToList(); var exportGroups = allExportTaxonomies.GroupBy(GetTaxPrefix).ToList(); CurrentProgress = 0; MaximumProgress = exportGroups.Count(); foreach (var grp in exportGroups) { WriteTaxonomyToFile(grp.Select(g => g), grp.Key); CurrentProgress++; } //_taxonomyFile.Close(); StatusMessage = "Done!"; State = WorkerState.Ready; }