public ActionResult GetMaterialDetails(int materialId = 0, int subgroupId = 0, int sourceId = 0, int sourceMaterialId = 0, string searchText = "", string tabId = "divProperties", int type = 1)
        {
            string sessionId = System.Web.HttpContext.Current.Session["TotalMateriaSession"].ToString();

            BreadcrumbNavigationGetSet(ref materialId, ref subgroupId, ref sourceId, ref sourceMaterialId, ref searchText, ref type);
            MaterialDetailsModel model = MaterialDetailsBinder.GetMaterial(materialId, subgroupId, sourceId, sourceMaterialId, searchText, sessionId, materialContextUow, tabId);

            model.ChemicalElsProperties = new ElsevierMaterialsMVC.BL.Binders.PropertyDescriptionBinder().GetProperties(materialId, materialContextUow);
            model.ActiveTab             = tabId;
            return(View("MaterialDetailsContainer", model));
        }
        public void OrderPropertiesGroups(MaterialDetailsModel model, IDictionary <ProductGroup.ProductGroupType, ProductGroup> listOfGroups)
        {
            ProductGroup orderedGroups = new ProductGroup();
            IList <ProductGroup.ProductGroupType> list = orderedGroups.GetOrder();

            foreach (var item in list)
            {
                if (listOfGroups.ContainsKey(item))
                {
                    model.Properties.ProductGroups.Add(item, listOfGroups[item]);
                }
            }
        }
示例#3
0
        public TableFilters GetMaterialDetailsMaterialInfoColumns()
        {
            ElsevierMaterialsMVC.Models.Shared.TableFilters TableFiltersModel = new ElsevierMaterialsMVC.Models.Shared.TableFilters();
            TableFiltersModel.Page = ElsevierMaterialsMVC.Models.Shared.PageEnum.MaterialDetails;
            TableFiltersModel.HasColumnsHidePosibility = true;
            TableFiltersModel.TableName = "materialDetailsInfoTable";

            ElsevierMaterials.Models.Domain.SearchFilterColumnsAll allFilters = (ElsevierMaterials.Models.Domain.SearchFilterColumnsAll)System.Web.HttpContext.Current.Session["MaterialDetailsMaterialInfo"];
            if (allFilters != null)
            {
                foreach (var colItem in allFilters.AllFilters)
                {
                    TableFiltersModel.Columns.Add(new ElsevierMaterialsMVC.Models.Shared.Column {
                        Id = colItem.Id, Class = "cbSelectColumn1", IsChecked = colItem.isVisible, IsDisabled = (colItem.Id == 0 ? true : false), Name = colItem.Name
                    });
                }
            }
            else
            {
                MaterialDetailsModel material = (MaterialDetailsModel)System.Web.HttpContext.Current.Session["materialInfoData"];

                TableFiltersModel.Columns.Add(new ElsevierMaterialsMVC.Models.Shared.Column {
                    Id = 0, Class = "cbSelectColumn1", IsChecked = true, IsDisabled = true, Name = "Material Name"
                });
                TableFiltersModel.Columns.Add(new ElsevierMaterialsMVC.Models.Shared.Column {
                    Id = 1, Class = "cbSelectColumn1", IsChecked = true, IsDisabled = false, Name = "Type"
                });
                TableFiltersModel.Columns.Add(new ElsevierMaterialsMVC.Models.Shared.Column {
                    Id = 2, Class = "cbSelectColumn1", IsChecked = true, IsDisabled = false, Name = "Class"
                });
                TableFiltersModel.Columns.Add(new ElsevierMaterialsMVC.Models.Shared.Column {
                    Id = 3, Class = "cbSelectColumn1", IsChecked = true, IsDisabled = false, Name = "Subclass"
                });
                TableFiltersModel.Columns.Add(new ElsevierMaterialsMVC.Models.Shared.Column {
                    Id = 4, Class = "cbSelectColumn1", IsChecked = ((!string.IsNullOrEmpty(material.SubClassName) && material.SubClassName != "-" && material.SubClassName != "")), IsDisabled = false, Name = "Group"
                });

                TableFiltersModel.Columns.Add(new ElsevierMaterialsMVC.Models.Shared.Column {
                    Id = 5, Class = "cbSelectColumn1", IsChecked = true, IsDisabled = false, Name = "Reference"
                });

                TableFiltersModel.Columns.Add(new ElsevierMaterialsMVC.Models.Shared.Column {
                    Id = 6, Class = "cbSelectColumn1", IsChecked = (!string.IsNullOrEmpty(material.Material.Manufacturer) && material.Material.Manufacturer != "-") ? true : false, IsDisabled = false, Name = "Supplier"
                });
                TableFiltersModel.Columns.Add(new ElsevierMaterialsMVC.Models.Shared.Column {
                    Id = 7, Class = "cbSelectColumn1", IsChecked = ((!string.IsNullOrEmpty(material.Material.Standard) && material.Material.Standard != "-") || (!string.IsNullOrEmpty(material.Material.Specification)) && material.Material.Specification != "-") ? true : false, IsDisabled = false, Name = "Std. Org.<span> / </span>Specification"
                });
                TableFiltersModel.Columns.Add(new ElsevierMaterialsMVC.Models.Shared.Column {
                    Id = 8, Class = "cbSelectColumn1", IsChecked = (!string.IsNullOrEmpty(material.Material.Filler) && material.Material.Filler != "-") ? true : false, IsDisabled = false, Name = "Filler"
                });

                TableFiltersModel.Columns.Add(new ElsevierMaterialsMVC.Models.Shared.Column {
                    Id = 9, Class = "cbSelectColumn1", IsChecked = (!string.IsNullOrEmpty(material.Material.UNSNo) && material.Material.UNSNo != "-") ? true : false, IsDisabled = false, Name = "UNS No."
                });
                TableFiltersModel.Columns.Add(new ElsevierMaterialsMVC.Models.Shared.Column {
                    Id = 10, Class = "cbSelectColumn1", IsChecked = (!string.IsNullOrEmpty(material.Material.CASRN) && material.Material.CASRN != "-") ? true : false, IsDisabled = false, Name = "CAS RN"
                });
            }

            return(TableFiltersModel);
        }
        public void FillElsMaterial(int materialId, int subgroupId, int sourceMaterialId, IMaterialsContextUow context, MaterialDetailsModel model, int type)
        {
            int setId = (int)context.RecordLinks.All.Where(m => m.MaterialID == materialId && m.SubgroupID == subgroupId).FirstOrDefault().SetID;

            IList <RecordLink> conditions = context.RecordLinks.All.Where(n => n.MaterialID == materialId && n.SubgroupID == subgroupId).ToList();

            IDictionary <ProductGroup.ProductGroupType, ProductGroup> listOfGroups = new Dictionary <ProductGroup.ProductGroupType, ProductGroup>();

            IList <ConditionModel> conditionWithProperties = new List <ConditionModel>();

            foreach (var conditionObj in conditions)
            {
                IList <MaterialProperty> propertiesPerCond = context.MaterialProperties.All.Where(m => m.MaterialId == materialId && m.SubgroupId == subgroupId && m.RowId == conditionObj.RowID).ToList();
                foreach (var prop in propertiesPerCond)
                {
                    ProductGroup.ProductGroupType groupId = (ProductGroup.ProductGroupType)context.Trees.Find(n => n.PN_ID == prop.PropertyId).BT_ID;

                    if (!listOfGroups.ContainsKey(groupId))
                    {
                        conditionWithProperties = new List <ConditionModel>();

                        ConditionModel condition = new ConditionElsBinder().FillElsCondition(materialId, subgroupId, context, conditionObj, prop, type);
                        conditionWithProperties.Add(condition);

                        ProductGroup productGroup = FillElsProductGroup(conditionWithProperties, groupId, context);

                        productGroup.MaterialConditions = productGroup.MaterialConditions.OrderBy(c => c.ConditionName).ToList();
                        listOfGroups.Add(groupId, productGroup);
                    }
                    else
                    {
                        ProductGroup selectedGroup = listOfGroups[groupId];

                        if (!selectedGroup.MaterialConditions.Any(v => v.ConditionId == conditionObj.RowID))
                        {
                            ConditionModel condition = new ConditionElsBinder().FillElsCondition(materialId, subgroupId, context, conditionObj, prop, type);
                            selectedGroup.MaterialConditions.Add(condition);
                        }
                        else
                        {
                            ConditionModel condition = selectedGroup.MaterialConditions.Where(v => v.ConditionId == conditionObj.RowID).FirstOrDefault();

                            string unitName = prop.OrigUnit == null ? "" : context.Units.Find(n => n.UnitId == prop.OrigUnit).UnitText;
                            ElsevierMaterials.Models.Property property = context.PropertiesWithConvertedValues.GetPropertyInfoForMaterialForSelectedMetric(context.PreferredNames.Find(o => o.PN_ID == prop.PropertyId).PN, materialId, subgroupId, conditionObj.RowID, prop.PropertyId, prop.ValueId, type, unitName);
                            condition.Properties.Add(property);
                        }
                    }

                    listOfGroups[groupId].PropertyCount++;
                }
            }


            model.Properties = new PropertiesModel();
            OrderPropertiesGroups(model, listOfGroups);
        }