private static string[] GetListWords(List<Words> words, string[] searchWords, SupplierType type) { bool finded = false; var wp = new List<string>(); int i; for (i = 0; i < searchWords.Length; i++) { finded = false; //берем слово и ищем его в списке слов, если находим забираем все синонимы for (int j = 0; j < words.Count; j++) { if (words[j]._words.Contains(searchWords[i])) { //забираем все синонимы for (int k = 0; k < words[j]._synonim.Count; k++) { wp.Add(words[j]._synonim[k]); finded = true; } } } if (!finded) wp.Add(searchWords[i]); } //добавить/удалить все слова для конкретного поставщика //для каждого слова из поисковой строки for (i = 0; i < searchWords.Length; i++) { for (int j = 0; j < type.ListWords._words.Count; j++) { //по всем словам поставщика if (type.ListWords._words[j]._words.Contains(searchWords[i])) { //в списке слов поставщика, найдено слово из поисковой строки for (int k = 0; k < type.ListWords._words[j]._synonim.Count; k++) { //для всех синонимов для этого слова из поставщика //если синоним с - убираем его из списка, иначе добавляем //добавляем все слова синонимы, если оно с минусом то убираем из общего списка. var value = type.ListWords._words[j]._synonim[k]; if (isAdd(value) && !wp.Contains(value)) wp.Add(Normalize(value)); if (isRemove(value)) wp.Remove(Normalize(value)); } } } } return wp.ToArray(); }
public Supplier() { InitializeComponent(); localFields = new Fields(); Supp = new SupplierType(); listWords.ContextMenuStrip = listWordsMenu; listSynonim.ContextMenuStrip = listSynonimMenu; }
public List<ResultRowCell> SearchByFile(string[] listOfWords, SupplierType supplierType, string priceFileName) { Application xlApp = new Excel.ApplicationClass(); xlApp.ReferenceStyle = XlReferenceStyle.xlA1; Workbook xlWorkBook = xlApp.Workbooks.Open(priceFileName, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); var xlWorkSheet = (Worksheet)xlWorkBook.Worksheets.get_Item(supplierType.SheetNumber); int lastUsedRow = xlWorkSheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell, Type.Missing).Row; //начало поиска var searchResult = new List<ResultRowCell>(); for (int currentRow = supplierType.ListCell[0].Row; currentRow <= lastUsedRow; currentRow++) { var resultRowCell = new ResultRowCell(); resultRowCell.Clear(); for (int iCell = 0; iCell < supplierType.ListCell.Count; iCell++) { //для всех ячеек получаем их значения int currentColumn = supplierType.ListCell[iCell].Col; //проверка ячейки на существование. var value = ((Range) xlWorkSheet.Cells[currentRow, currentColumn]).Value; string result = ""; if (value != null) result = value.ToString(); else result = ""; resultRowCell.VSupplierName = supplierType.Name; resultRowCell.Add(new ResultCell(currentRow, currentColumn, result, supplierType.ListCell[iCell].Name)); } //ищем по всем словам, по всем ячейкам int qty = 0; if ((qty = ParseRow(resultRowCell, listOfWords)) > 0) { //MessageBox.Show(@"Current row: " + currentRow.ToString()); resultRowCell.qty = qty; searchResult.Add(resultRowCell); } } //конец поиска xlWorkBook.Close(false, null, null); xlApp.Quit(); ReleaseObject(xlWorkSheet); ReleaseObject(xlWorkBook); ReleaseObject(xlApp); return searchResult; }
private static SupplierType GetSupplierByName(List<SupplierType> listSupplier, string nameSupplier) { var value = new SupplierType(); foreach (SupplierType st in listSupplier) { if (st.Name.Contains(nameSupplier)) { value = st; break; } } return value; }