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); }
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("≥")) { y.Value = y.Value.Replace("≥", ""); } if (y.Value.Contains("≤")) { y.Value = y.Value.Replace("≤", ""); } 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("°", "°") + ")"; } 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); }
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); }
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); } }
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); }