Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.09 KB | None | 0 0
  1.         public static IList<IProductAttributeModel> GetProductAttributes(IProductModel product, string languageCode)
  2.         {
  3.             LinqMetaData linqMetaData = new LinqMetaData();
  4.             var qAttributes = from attr in linqMetaData.VTrProductAttribute
  5.                     where attr.ProductId == product.BaseProductId && attr.LanguageCode == languageCode
  6.                     orderby attr.AttributeGroupId, attr.OrderNumber
  7.                     select new ProductAttributeModel
  8.                     {
  9.                         AttributeId = attr.AttributeId,
  10.                         Name = attr.Name,
  11.                         Description = attr.Description,
  12.                         TranslatedName = attr.TranslatedName,
  13.                         TranslatedDescription = attr.TranslatedDescription,
  14.                         DataTypeCode = attr.DataTypeCode,
  15.                         AttributeGroupId = attr.AttributeGroupId,
  16.                         AttributeGroupName = attr.AttributeGroupName,
  17.                         TranslatedAttributeGroupName = attr.TranslatedAttributeGroupName,
  18.                         AttributeGroupDisplayOrderNumber = attr.AttributeGroupDisplayOrderNumber,
  19.                         OrderNumber = attr.OrderNumber,
  20.                         IsMandatory = attr.IsMandatory,
  21.                         IsVisible = attr.IsVisible,
  22.                         IsSearchable = attr.IsSearchable,
  23.                         AttributeLevelCode = attr.AttributeLevelCode,
  24.                         AttributeShowModeCode = attr.AttributeShowModeCode,
  25.                         DefaultValue = attr.DefaultValue
  26.                     } as IProductAttributeModel;
  27.  
  28.  
  29.             var Attributes = qAttributes.ToList();
  30.             var qAttrId = from row in Attributes
  31.                             where row.DataTypeCode == LtDataType.Enum
  32.                             select row.AttributeId;
  33.  
  34.             // Get enum values.
  35.             var qEnumValues = from row in linqMetaData.VTrEnumValue
  36.                               where qAttrId.Contains(row.EnumAttributeId) && row.LanguageCode == languageCode
  37.                               select new EnumValueModel
  38.                               {
  39.                                 EnumValueId = row.EnumValueId,
  40.                                 EnumAttributeId = row.EnumAttributeId,
  41.                                 DisplayOrderNumber = row.DisplayOrderNumber,
  42.                                 OrderNumber = row.OrderNumber,
  43.                                 Value = row.EnumValue,
  44.                                 TranslatedValue = row.TranslatedValue,
  45.                                 IsDefault = row.IsDefault,
  46.                                 //Description = null,
  47.                                 TranslatedDescription = row.TranslatedDescription,
  48.                                 //Pictures = null
  49.                               }
  50.                               as IEnumValueModel;
  51.             var EnumValues = qEnumValues.ToList();
  52.  
  53.             // Get enum value pictures.
  54.             var qEnumValueId = from row in qEnumValues select row.EnumValueId;
  55.             var qEnumValuePictures = from row in linqMetaData.EnumValuePicture
  56.                                      where qEnumValueId.Contains(row.EnumValueId)
  57.                                      select new EnumValuePictureModel
  58.                                      {
  59.                                         EnumValueId = row.EnumValueId,
  60.                                         Name = row.Name,
  61.                                         PictureTypeCode = row.EnumValuePictureTypeCode,
  62.                                         PictureFilename = row.PictureFilename,
  63.                                         Description = row.Description
  64.                                      };                                
  65.  
  66.             // Prepare enum values for fast processing
  67.             var dictEnumValues = new Dictionary<long, IEnumValueModel>();
  68.             foreach (var row in EnumValues)
  69.             {
  70.                 dictEnumValues[row.EnumValueId] = row;
  71.             }
  72.  
  73.             // Link pictures to enum values
  74.             foreach (var row in qEnumValuePictures)
  75.             {
  76.                 var enumVal = dictEnumValues[row.EnumValueId];
  77.                 if (enumVal.Pictures == null)
  78.                 {
  79.                     enumVal.Pictures = new List<IEnumValuePictureModel>();
  80.                 }
  81.                 enumVal.Pictures.Add(row);
  82.             }
  83.  
  84.             // Prepare atribute data for fast processing
  85.             var dictAttributes = new Dictionary<long, IProductAttributeModel>();
  86.             foreach (var row in Attributes)
  87.             {
  88.                 dictAttributes[row.AttributeId] = row;
  89.             }
  90.  
  91.             // Link enum values to attributes
  92.             foreach (var row in EnumValues)
  93.             {
  94.                 var attr = dictAttributes[row.EnumAttributeId];
  95.                 if (attr.EnumValues == null)
  96.                 {
  97.                     attr.EnumValues = new List<IEnumValueModel>();
  98.                 }
  99.                 attr.EnumValues.Add(row);
  100.             }
  101.  
  102.             return Attributes;
  103.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement