Beispiel #1
0
        public ElsevierMaterials.Models.Domain.Comparison.Property FillPropertyData(int materialId, int sourceMaterialId, int sourceId, int subgroupId, IMaterialsContextUow context, PropertyFilter propertyClient, ElsevierMaterials.Models.Condition condition)
        {
            ElsevierMaterials.Models.Domain.Comparison.Comparison comparison = GetComparison();

            PropertyBasicInfo propertyInfo = _propertyBinder.FillPropertyBasicData(context, propertyClient, null);

            ElsevierMaterials.Models.Domain.Comparison.Property property = new ElsevierMaterials.Models.Domain.Comparison.Property();
            property.PropertyInfo      = propertyInfo;
            property.PropertyInfo.Name = _propertyBinder.FillPropertyName(sourceMaterialId, sourceId, subgroupId, context, propertyClient, condition);
            property.PropertyInfo.Unit = _propertyBinder.FillPropertyUnit(sourceMaterialId, sourceId, subgroupId, context, propertyClient, condition);

            return(property);
        }
Beispiel #2
0
        public ElsevierMaterials.Models.Domain.Comparison.Material AddMaterial(int materialId, int sourceMaterialId, int sourceId, int subgroupId, IMaterialsContextUow context, PropertyFilter propertyClient, ElsevierMaterials.Models.Domain.Comparison.Property property, ref ElsevierMaterials.Models.Domain.Comparison.Material materialForProperty, Condition condition)
        {
            new ComparisonMaterialBinder().FillMaterialBasicData(materialId, context, sourceMaterialId, propertyClient.ConditionId, sourceId, subgroupId, ref materialForProperty);
            ElsevierMaterials.Models.Property prop = condition.Properties.Where(m => m.SourcePropertyId == propertyClient.SourceTypeId && m.ValueId == propertyClient.RowId).FirstOrDefault();
            if (sourceId == 2)
            {
                materialForProperty.Value = _binderPropertyTMMetals.GetPropertyValue(propertyClient, condition);
            }
            else if (sourceId == 3)
            {
                materialForProperty.Value = _binderPropertyTMPLUS.GetPropertyValue(propertyClient, condition);
            }

            //TODO: material with e value
            //if (materialForProperty.Value.Contains("E"))
            //{
            //    materialForProperty.Value = double.Parse(materialForProperty.Value).ToString();
            //}

            materialForProperty.Condition   = condition.ConditionName + (!string.IsNullOrEmpty(prop.OrigValueText) ? " " + prop.OrigValueText : "");
            materialForProperty.ConditionId = condition.ConditionId;
            return(materialForProperty);
        }
        public string GenerateChart(int propertyId, int sourcePropertyId, ref System.Web.UI.DataVisualization.Charting.Chart chart)
        {
            ElsevierMaterials.Models.Domain.Comparison.Comparison comparison = GetComparison();

            ElsevierMaterials.Models.Domain.Comparison.Property         property             = comparison.Properties.Where(m => m.PropertyInfo.TypeId == propertyId && m.PropertyInfo.SourceTypeId == sourcePropertyId).Select(x => x).FirstOrDefault();
            IList <ElsevierMaterials.Models.Domain.Comparison.Material> materialsForProeprty = property.Materials;

            foreach (var y in materialsForProeprty)
            {
                if (y.Value.Contains("&GreaterEqual;"))
                {
                    y.Value = y.Value.Replace("&GreaterEqual;", "");
                }


                if (y.Value.Contains("&le;"))
                {
                    y.Value = y.Value.Replace("&le;", "");
                }

                if (y.Value.Contains("-") && !y.Value.Contains("E"))
                {
                    if (y.Value.Split('-')[0] != "")
                    {
                        y.Value = y.Value.Split('-')[0];
                    }
                }

                if (y.Value.Contains(">") || y.Value.Contains(">=") || y.Value.Contains("<") || y.Value.Contains("<="))
                {
                    y.Value = y.Value.Replace(">", "").Replace(">=", "").Replace("<", "").Replace("<=", "").Replace(" ", "").Trim();
                }
                if (y.Value.Contains("E"))
                {
                    double d = double.Parse(y.Value, System.Globalization.NumberStyles.Float);
                    y.Value = d.ToString();
                }
            }

            IList <string> yAxesValues = materialsForProeprty.Select(x => x.Value).ToList();
            IList <string> xAxesValues = property.Materials.Select(x => x.Name).ToList();

            chart.BorderSkin.SkinStyle = BorderSkinStyle.None;
            chart.BackColor            = Color.White;
            chart.BackSecondaryColor   = Color.White;
            chart.BackGradientStyle    = GradientStyle.TopBottom;

            chart.Width  = 850;
            chart.Height = 500;

            ChartArea area = new ChartArea("Main");

            area.BorderColor                  = Color.FromArgb(64, 64, 64, 64);
            area.BorderDashStyle              = ChartDashStyle.Solid;
            area.BackColor                    = Color.White;
            area.BackSecondaryColor           = Color.White;
            area.ShadowColor                  = Color.Transparent;
            area.BackGradientStyle            = GradientStyle.TopBottom;
            area.Area3DStyle.Rotation         = 25;
            area.Area3DStyle.Perspective      = 9;
            area.Area3DStyle.LightStyle       = LightStyle.Realistic;
            area.Area3DStyle.Inclination      = 40;
            area.Area3DStyle.IsRightAngleAxes = false;
            area.Area3DStyle.WallWidth        = 3;
            area.Area3DStyle.IsClustered      = false;
            area.Area3DStyle.Enable3D         = false;

            Font axesTitleFont = new Font("Arial", (float)13, FontStyle.Regular);

            area.AxisY.TitleFont = axesTitleFont;

            if (property.PropertyInfo.Unit != "" && property.PropertyInfo.Unit != null)
            {
                area.AxisY.Title = property.PropertyInfo.Name + " (" + property.PropertyInfo.Unit.Replace("<sup>", "^").Replace("</sup>", "").Replace("<sub>", "").Replace("</sub>", "").Replace("&deg;", "°") + ")";
            }
            else
            {
                area.AxisY.Title = property.PropertyInfo.Name;
            }

            chart.ChartAreas.Add(area);
            chart.Series.Add("pie");
            chart.Series["pie"].Points.DataBindXY(xAxesValues, yAxesValues);
            chart.Series["pie"].ChartType = SeriesChartType.Column;
            chart.DataBind();
            string imageName = Guid.NewGuid().ToString() + ".png";

            return(imageName);
        }
Beispiel #4
0
        public ElsevierMaterials.Models.Domain.Comparison.Material FillMaterialData(int materialId, int sourceMaterialId, int sourceId, int subgroupId, IMaterialsContextUow context, PropertyFilter propertyClient, ElsevierMaterials.Models.Domain.Comparison.Property property, ElsevierMaterials.Models.Domain.Comparison.Material propertyMaterial)
        {
            if (propertyMaterial == null)
            {
                propertyMaterial = new ElsevierMaterials.Models.Domain.Comparison.Material();
            }

            Condition condition = null;

            switch (sourceId)
            {
            case 1:
                _binderEls.AddMaterial(materialId, sourceMaterialId, sourceId, subgroupId, context, propertyClient, property, ref propertyMaterial);
                break;

            case 2:
                //TODO: ConditionId umsero rowId.. ??
                condition = _binderConditionTMMetals.FillCondition(subgroupId, sourceMaterialId, sourceId, propertyClient.GroupId, propertyClient.ConditionId, context);
                _binderTM.AddMaterial(materialId, sourceMaterialId, sourceId, subgroupId, context, propertyClient, property, ref propertyMaterial, condition);
                break;

            case 3:
                //TODO: ConditionId umsero rowId.. ?? grilon TS Fr  ima problem jer ne vrati properties u okviru conditions.
                condition = _binderConditionTMPlus.FillConditionData(subgroupId, sourceMaterialId, sourceId, propertyClient.GroupId, propertyClient.ConditionId, context);
                _binderTM.AddMaterial(materialId, sourceMaterialId, sourceId, subgroupId, context, propertyClient, property, ref propertyMaterial, condition);
                break;

            default:
                break;
            }

            propertyMaterial.Value = _binderProperty.FillPropertyValue(materialId, sourceMaterialId, sourceId, subgroupId, context, propertyClient, condition);

            return(propertyMaterial);
        }
Beispiel #5
0
        public void ChangePropertyData(int materialId, int sourceMaterialId, int sourceId, int subgroupId, IMaterialsContextUow context, PropertyFilter propertyClient, ref ElsevierMaterials.Models.Domain.Comparison.Property propertyComparison)
        {
            ElsevierMaterials.Models.Domain.Comparison.Material materialInComparison = propertyComparison.Materials.Where(m => m.MaterialId == materialId && m.SubgroupId == subgroupId && m.SourceId == sourceId && m.SourceMaterialId == sourceMaterialId).FirstOrDefault();

            if (materialInComparison != null)
            {
                ElsevierMaterials.Models.Domain.Comparison.Material material = FillMaterialData(materialId, sourceMaterialId, sourceId, subgroupId, context, propertyClient, propertyComparison, materialInComparison);
            }
            else
            {
                ElsevierMaterials.Models.Domain.Comparison.Material material = FillMaterialData(materialId, sourceMaterialId, sourceId, subgroupId, context, propertyClient, propertyComparison, materialInComparison);

                propertyComparison.Materials.Add(material);
            }
        }
Beispiel #6
0
        public ElsevierMaterials.Models.Domain.Comparison.Material AddMaterial(int materialId, int sourceMaterialId, int sourceId, int subgroupId, IMaterialsContextUow context, PropertyFilter propertyClient, ElsevierMaterials.Models.Domain.Comparison.Property property, ref ElsevierMaterials.Models.Domain.Comparison.Material materialForProperty)
        {
            if (materialForProperty == null)
            {
                materialForProperty = new ElsevierMaterials.Models.Domain.Comparison.Material();
            }

            Condition condition = FillConditionData(materialId, subgroupId, context, propertyClient, ref materialForProperty);

            new ComparisonMaterialBinder().FillMaterialBasicData(materialId, context, sourceMaterialId, propertyClient.ConditionId, sourceId, subgroupId, ref materialForProperty);

            return(materialForProperty);
        }