private List <KindaRepository> DBSelectByMainFeatures(int percents, SearchModel whatToSearch) { List <KindaRepository> firstSelect = new List <KindaRepository>(); SizeM _3DimensionSize = SomeHelpful.OrderSize(whatToSearch.Size1, whatToSearch.Size2, whatToSearch.Size3); decimal allowance = Allowance(_3DimensionSize.P2, _3DimensionSize.P1); decimal percentsCalculated = Percents(percents); PointM allowance1 = new PointM { LowerBound = allowance - percentsCalculated, UpperBound = allowance + percentsCalculated }; //10% допустимое отклонение allowance = Allowance(_3DimensionSize.P3, _3DimensionSize.P2); PointM allowance2 = new PointM { LowerBound = allowance - percentsCalculated, UpperBound = allowance + percentsCalculated }; //10% допустимое отклонение using (dataSearch = new SQLRepositoryDataContext(ConfigurationSettings.SQLConnection1)) { if (dataSearch != null) { var table = dataSearch.KindaRepositories.ToList(); try { firstSelect = table.Where( x => (Allowance(x.Size2, x.Size1) >= allowance1.LowerBound && Allowance(x.Size2, x.Size1) <= allowance1.UpperBound &&//поиск деталей соответствующим допустимому отклонению Allowance(x.Size3, x.Size2) >= allowance2.LowerBound && Allowance(x.Size3, x.Size2) <= allowance2.UpperBound )).ToList(); } catch (Exception fail) { MessageBox.Show(fail.Message); throw fail; } } else { System.Windows.Forms.MessageBox.Show("Не удалось установить подключение к базе даных. Проверте строку подключения и настройки сети!"); } } return(firstSelect); }
public BindableCollection <SizeM> GetSizes() { var tmp = new BindableCollection <SizeM>(); foreach (var e in _listSizes) { var tmpSizes = new SizeM { Height = e.Height, Width = e.Width, SizeText = _all.SizeTexts.GetSizeTextBySizeALang(e, new Languages { Language = Preference.Lang }).Text }; tmp.Add(tmpSizes); } return(tmp); }
private KindaRepository InitializeModel() { SizeM point3dSize = SomeHelpful.OrderSize(height, width, lenght); model = new KindaRepository(); model.Size1 = point3dSize.P1; model.Size2 = point3dSize.P2; model.Size3 = point3dSize.P3; SizeM diamOfVals = SomeHelpful.OrderSize(dimVal1, dimVal2, dimVal3); model.DimVal1 = diamOfVals.P1; model.DimVal2 = diamOfVals.P2; model.DimVal3 = diamOfVals.P3; model.Path = addModel.GetPath(); model.Model = addModel.ModelBytes(model.Path); return(model); }
/// <summary> /// Поиск по дополнительным параметрам, проводиться не на таблице из БД, а на списке обьектов выбранных по основным габаритам /// </summary> /// <param name="percents"></param> /// <param name="whatToSearch"></param> /// <param name="tableAlreadySelectedOnce"></param> /// <returns></returns> private List <KindaRepository> DBSelectBySubFeatures(int percents, SearchModel whatToSearch, List <KindaRepository> tableAlreadySelectedOnce) { List <KindaRepository> secondSelect = new List <KindaRepository>(); SizeM _3DimensionSize = SomeHelpful.OrderSize(whatToSearch.Size1, whatToSearch.Size2, whatToSearch.Size3); decimal allowance; decimal percentsCalculated = Percents(percents); SizeM _3DiamVals = SomeHelpful.OrderSize(whatToSearch.DimVal1, whatToSearch.DimVal2, whatToSearch.DimVal3); if (_3DiamVals.P3 == 0 && _3DiamVals.P2 == 0 && _3DiamVals.P1 != 0)// задан один диаметр вала { allowance = Allowance(_3DiamVals.P1, _3DimensionSize.P1); PointM allowance1 = new PointM { LowerBound = allowance - percentsCalculated, UpperBound = allowance + percentsCalculated }; secondSelect = tableAlreadySelectedOnce.Where( x => x.DimVal1 > 0 && (Allowance(x.DimVal1, x.Size1) >= allowance1.LowerBound && Allowance(x.DimVal1, x.Size1) <= allowance1.UpperBound)).ToList(); } else if (_3DiamVals.P3 == 0 && _3DiamVals.P2 != 0 && _3DiamVals.P1 != 0)// задано два диаметра вала { allowance = Allowance(_3DiamVals.P1, _3DimensionSize.P1); PointM allowance1 = new PointM { LowerBound = allowance - percentsCalculated, UpperBound = allowance + percentsCalculated }; allowance = Allowance(_3DiamVals.P2, _3DimensionSize.P2); PointM allowance2 = new PointM { LowerBound = allowance - percentsCalculated, UpperBound = allowance + percentsCalculated }; secondSelect = tableAlreadySelectedOnce.Where( x => (x.DimVal1 > 0 && x.DimVal2 > 0 && Allowance(x.DimVal1, x.Size1) >= allowance1.LowerBound && Allowance(x.DimVal1, x.Size1) <= allowance1.UpperBound && Allowance(x.DimVal2, x.Size2) >= allowance2.LowerBound && Allowance(x.DimVal2, x.Size2) <= allowance2.UpperBound )).ToList(); } else if (_3DiamVals.P3 != 0 && _3DiamVals.P2 != 0 && _3DiamVals.P1 != 0) //заданы три параметра по поиску для диаметра вала { allowance = Allowance(_3DiamVals.P1, _3DimensionSize.P1); PointM allowance1 = new PointM { LowerBound = allowance - percentsCalculated, UpperBound = allowance + percentsCalculated }; allowance = Allowance(_3DiamVals.P2, _3DimensionSize.P2); PointM allowance2 = new PointM { LowerBound = allowance - percentsCalculated, UpperBound = allowance + percentsCalculated }; allowance = Allowance(_3DiamVals.P3, _3DimensionSize.P3); PointM allowance3 = new PointM { LowerBound = allowance - percentsCalculated, UpperBound = allowance + percentsCalculated }; secondSelect = tableAlreadySelectedOnce.Where( x => (x.DimVal1 > 0 && x.DimVal2 > 0 && x.DimVal3 > 0 && Allowance(x.DimVal1, x.Size1) >= allowance1.LowerBound && Allowance(x.DimVal1, x.Size1) <= allowance1.UpperBound && Allowance(x.DimVal2, x.Size2) >= allowance2.LowerBound && Allowance(x.DimVal2, x.Size2) <= allowance2.UpperBound && Allowance(x.DimVal3, x.Size3) >= allowance3.LowerBound && Allowance(x.DimVal3, x.Size3) <= allowance3.UpperBound )).ToList(); } return(secondSelect); }