示例#1
0
        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;
        }
示例#2
0
        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;
        }