Ejemplo n.º 1
0
        private void ProcessAttributeValues(Sku dbItem, Item resultItem)
        {
            var attVals = (from ei in dbItem.EntityInfos
                           from ed in ei.EntityDatas
                           let attributeName = ed.Attribute.AttributeName
                                               let attributeGroup =
                               ed.Attribute.AttributeGroups.Where(ag => ag.Group.Name.StartsWith("Search_"))
                               .Select(ag => ag.Group.Name.Substring(7))
                               .FirstOrDefault() ?? attributeName
                               where ed.Active
                               select
                               new ItemAttributeValue
            {
                Name = attributeName,
                Group = attributeGroup,
                Value = ed.Value + (ed.Uom != null ? " " + ed.Uom : string.Empty)
            }).ToArray();

            resultItem.AttributeValue = attVals;
            var nodeId = dbItem.Taxonomy.ID;

            foreach (var av in attVals)
            {
                var key = GetLovKey(nodeId, av.Name, av.Value);
                if (_lovs.ContainsKey(key))
                {
                    return;
                }

                var attVal = AttVal.FromValues(nodeId, av.Name, av.Group, av.Value);
                _lovs[key] = attVal;
            }
        }
Ejemplo n.º 2
0
        private void ProcessLovs(SchemaInfo schemaInfo)
        {
            var nodeId         = schemaInfo.TaxonomyID;
            var attributeName  = schemaInfo.Attribute.AttributeName;
            var attributeGroup =
                schemaInfo.Attribute.AttributeGroups.Where(ag => ag.Group.Name.StartsWith("Search_"))
                .Select(ag => ag.Group.Name.Substring(7))
                .FirstOrDefault() ?? attributeName;

            var lovMetaDatas = from lov in schemaInfo.ListOfValues
                               where lov.Active
                               let enrichmentImage = new EnrichmentFileResourceType {
                Filename = lov.EnrichmentImage
            }
            let enrichment =
                new Enrichment {
                EnrichmentCopy = lov.EnrichmentCopy, EnrichmentPrimaryImage = enrichmentImage
            }
            select
            new
            {
                NodeId         = nodeId,
                AttributeName  = attributeName,
                AttributeGroup = attributeGroup,
                lov.Value,
                Enrichment = enrichment,
                lov.DisplayOrder
            };

            foreach (var lov in lovMetaDatas)
            {
                var key = GetLovKey(lov.NodeId, lov.AttributeName, lov.Value);
                if (!_lovs.ContainsKey(key))
                {
                    _lovs[key] = AttVal.FromValues(lov.NodeId, lov.AttributeName, lov.AttributeGroup, lov.Value);
                }

                var attVal = _lovs[key];
                attVal.Enrichment = lov.Enrichment;

                if (lov.DisplayOrder != null)
                {
                    attVal.SortableValue = string.Format("{0:000}-{1}", lov.DisplayOrder, lov.Value);
                }
            }

            var lovsToSave = _lovs.Where(l => l.Key.StartsWith(GetLovKey(nodeId, attributeName, string.Empty))).ToList();

            foreach (var lov in lovsToSave)
            {
                lov.Value.SerializeObject(GetSaveFilePath("AttVal", Guid.NewGuid().ToString()));
                AttVal val;
                _lovs.TryRemove(lov.Key, out val);
            }
        }