public Token(int id, Sku sku, string expression, TokenType tokenType) { _sku = sku; _id = "t" + id; _expression = expression; this.tokenType = tokenType; }
public Token(int id, Sku sku, string expression) { _sku = sku; _id = "t" + id; if (expression.IndexOf("[Special:", StringComparison.Ordinal) > -1) { tokenType = TokenType.Special; } else if (expression.StartsWith("[") && expression.EndsWith("]")) { expression = expression.Substring(1, expression.Length - 2).Trim(); if (expression.Contains(SubUomExpression)) { tokenType = TokenType.Uom; expression = expression.Replace(SubUomExpression, string.Empty).Trim(); } else if (expression.Contains(SubAttributeValueOnlyExpression)) { tokenType = TokenType.AttributeValueOnly; expression = expression.Replace(SubAttributeValueOnlyExpression, string.Empty).Trim(); } else { tokenType = TokenType.Attribute; } } else if (expression.StartsWith("\"") && expression.EndsWith("\"")) { tokenType = TokenType.Constant; } _expression = expression; }
// Private Methods (19) void AddSkuGap(Sku sku, string attributeName) { if (!_skuGaps.ContainsKey(sku)) { _skuGaps.Add(sku, new List <string>()); } _skuGaps[sku].Add(attributeName); }
private void UpdateLinkStatus(FilteredSkuLink link, string accuracy, string reasonCode, string reasonDetail, string brandReasonDetail = null) { //Sku sku = rbResultsInLeftSku.Checked ? link.LeftSku : link.RightSku; //results in left Sku Sku sku = link.LeftSku; var leftLowerTaxonomy = sku.Taxonomy.ToString().ToLower(); if (!string.IsNullOrEmpty(reasonCode) && !string.IsNullOrEmpty(reasonDetail)) { var rightLowerTaxonomy = link.RightTaxonomy.ToString().ToLower(); if (leftLowerTaxonomy.Contains(">Representational>".ToLower())) { if (rightLowerTaxonomy.Contains(">Line Drawing".ToLower())) { reasonDetail = "Line Drawing"; reasonCode = "Does not fit Image Guidelines"; } else if (rightLowerTaxonomy.Contains(">Group Shot".ToLower())) { reasonDetail = "Group Shot"; reasonCode = "Does not fit Image Guidelines"; } } else if (leftLowerTaxonomy.Contains(">One-One>".ToLower())) { if (rightLowerTaxonomy.Contains(">Line Drawing".ToLower())) { reasonDetail = "Line Drawing"; reasonCode = "Does not fit Image Guidelines"; } } } var status = accuracy == Yes || accuracy == No ? "Completed" : "Sent to MSC for data insufficiency"; //if (leftLowerTaxonomy.Contains(">One-One>".ToLower()) && (reasonCode == null || !reasonCode.Equals("Does not fit Image Guidelines", StringComparison.OrdinalIgnoreCase))) // return; sku.UpsertValue(txtResultPrefix.Text + "Accurate?", accuracy); sku.UpsertValue(txtResultPrefix.Text + "Reason Code", reasonCode); sku.UpsertValue(txtResultPrefix.Text + "Reason Detail", reasonDetail); //sku.UpsertValue(txtResultPrefix.Text + "Brand Reason Detail", brandReasonDetail); sku.UpsertValue(txtResultPrefix.Text + "Status", status); }
private bool CreateSkuLink(Sku leftSku, Sku rightSku, string matchType) { if (rightSku.ID.Equals(leftSku.ID)) { return(false); } var existingSkuLink = AryaTools.Instance.InstanceData.Dc.SkuLinks.Any( sl => sl.Active && sl.Sku.Equals(leftSku) && sl.Sku1.Equals(rightSku)); if (existingSkuLink) { return(false); } var newSkuLink = new SkuLink { Sku = leftSku, Sku1 = rightSku, LinkType = txtSkuLinkType.Text + "-" + matchType }; AryaTools.Instance.InstanceData.Dc.SkuLinks.InsertOnSubmit(newSkuLink); return(true); }
private int FindExactMatches(Sku sourceSku) { IQueryable <Sku> skuFilter = from sku in AryaTools.Instance.InstanceData.Dc.Skus //where sku.SkuInfos.Any(si => si.Active && leftTaxIds.Contains(si.TaxonomyID)) select sku; var schemaAttributes = GetInSchemaAttributes(sourceSku.Taxonomy); if (schemaAttributes.Count == 0) { return(0); } //Must match Brand //var brandAttribute = Attribute.GetAttributeFromName(BrandName, true); //if (!schemaAttributes.Contains(brandAttribute)) // schemaAttributes.Add(brandAttribute); bool hasValues = false; string matchType = "Exact"; foreach (var att in schemaAttributes) { var attribute = att; var values = sourceSku.GetValuesForAttribute(attribute.AttributeName, true).Select(ed => ed.Value).ToList(); if (values.Count == 0 || values.Any(val => _dontCareValues.Contains(val))) { continue; } if (values.Any(val => _notDiscernibles.Contains(val))) { matchType = "Potential"; continue; } hasValues = true; skuFilter = skuFilter.Where( sku => sku.EntityInfos.Any( ei => ei.EntityDatas.Any( ed => ed.Active && ed.AttributeID.Equals(attribute.ID) && values.Contains(ed.Value)))); } if (!hasValues) { return(0); } var targetSkus = skuFilter.Distinct().ToList(); int newLinkCount = 0; foreach (var targetSku in targetSkus) { if (targetSku.Taxonomy.ToString().Contains(">Images>")) { continue; } if (CreateSkuLink(targetSku, sourceSku, matchType)) { newLinkCount++; } } return(newLinkCount); }
public TaxAttValueCalculator(Sku sku) { _sku = sku; sourceTaxonomy = _sku.Taxonomy; }