public ElsevierMaterials.Models.Domain.Comparison.Comparison RemoveMaterial(int materialId, int sourceMaterialId, int sourceId, int subgroupId) { ElsevierMaterials.Models.Domain.Comparison.Comparison comparison = GetComparison(); comparison.MaterialNames.Remove(comparison.MaterialNames.Where(m => m.MaterialId == materialId && m.SubgroupId == subgroupId && m.SourceId == sourceId && m.SourceMaterialId == sourceMaterialId).FirstOrDefault()); foreach (var prop in comparison.Properties) { prop.Materials.Remove(prop.Materials.Where(m => m.MaterialId == materialId && m.SubgroupId == subgroupId && m.SourceId == sourceId && m.SourceMaterialId == sourceMaterialId).FirstOrDefault()); } IList <ElsevierMaterials.Models.Domain.Comparison.Property> propertiesForDeleting = new List <ElsevierMaterials.Models.Domain.Comparison.Property>(); foreach (var prop in comparison.Properties) { if (prop.Materials.Count == 0) { propertiesForDeleting.Add(prop); } } foreach (var prop in propertiesForDeleting) { comparison.Properties.Remove(prop); } return(comparison); }
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.Comparison GetComparison() { ElsevierMaterials.Models.Domain.Comparison.Comparison comparison = (ElsevierMaterials.Models.Domain.Comparison.Comparison)System.Web.HttpContext.Current.Session["ComparisonContainer"]; if (comparison != null) { return(comparison); } else { comparison = new ElsevierMaterials.Models.Domain.Comparison.Comparison(); System.Web.HttpContext.Current.Session["ComparisonContainer"] = comparison; return(comparison); } }
public bool RemoveProperty(int propertyId, int sourcePropertyId, int rowId) { ElsevierMaterials.Models.Domain.Comparison.Comparison comparison = GetComparison(); if (propertyId == 0 && sourcePropertyId == 0) { comparison.Properties.Remove(comparison.Properties.Where(m => m.PropertyInfo.RowId == rowId).FirstOrDefault()); } else { comparison.Properties.Remove(comparison.Properties.Where(m => m.PropertyInfo.TypeId == propertyId && m.PropertyInfo.SourceTypeId == sourcePropertyId).FirstOrDefault()); } return(true); }
public bool AddMaterialToMaterialNamesList(int materialId, int sourceMaterialId, int sourceId, int subgroupId, IMaterialsContextUow materialContextUow) { ElsevierMaterials.Models.Domain.Comparison.Comparison comparison = GetComparison(); if (!comparison.MaterialNames.Where(m => m.MaterialId == materialId && m.SourceMaterialId == sourceMaterialId && m.SourceId == sourceId && m.SubgroupId == subgroupId).Any()) { if (comparison.MaterialNames.Count == 5) { return(false); } ElsevierMaterials.Models.Domain.Material.MaterialBasicInfo material = _binderMaterial.GetMaterialInfo(materialId, sourceMaterialId, sourceId, subgroupId, materialContextUow); comparison.MaterialNames.Add(new ElsevierMaterials.Models.Domain.Material.MaterialBasicInfo { MaterialId = material.MaterialId, SourceId = sourceId, SourceMaterialId = sourceMaterialId, SubgroupId = subgroupId, Name = material.Name, SubgroupName = material.SubgroupName }); } return(true); }
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); }