예제 #1
0
 // Функция фильтрации списка компонентов для заявки на склад
 public List <ComponentInitialProperties> GetFilteredComponents(List <ComponentInitialProperties> nonFilteredComponents)
 {
     try
     {
         var filteredComponents = new List <ComponentInitialProperties>();
         // Получил отфильтрованные компоненты, но не посчитал их количество
         var nonFilteredPartNumbers = new List <string>();
         foreach (ComponentInitialProperties componentInitialProperty in nonFilteredComponents)
         {
             nonFilteredPartNumbers.Add(componentInitialProperty.PartNumber);
         }
         var partNumbersArray = nonFilteredPartNumbers.Distinct().ToArray();
         // Считаю количество компонентов и формирую список
         for (int counter = 0; counter < partNumbersArray.Length; counter++)
         {
             var componentCount           = 0; // Количество компонентов
             var componentInitialProperty = new ComponentInitialProperties();
             //Прохожу по всему списку неотфильтрованному и считаю количество компонентов
             for (int component = 0; component < nonFilteredComponents.Count; component++)
             {
                 // Если совпали названия, смотрим количество и добавляем
                 if (partNumbersArray[counter] == nonFilteredComponents[component].PartNumber)
                 {
                     componentCount += nonFilteredComponents[component].Count;
                 }
             }
             componentInitialProperty.PartNumber = partNumbersArray[counter];
             componentInitialProperty.Count      = componentCount;
             filteredComponents.Add(componentInitialProperty);
         }
         return(filteredComponents);
     }
     catch
     {
         var getFilteredComponentsErr = new Exception("Ошибка в функции GetFilteredComponents");
         throw getFilteredComponentsErr;
     }
 }
예제 #2
0
 // Функция получения списка компонентов для заявки на склад
 public List <ComponentInitialProperties> GetNonFilteredComponents(string projID)
 {
     try
     {
         // Так как ID записан строкой в списке, то конвертируем
         var curProjectID          = Convert.ToInt32(projID);
         var nonFilteredComponents = new List <ComponentInitialProperties>();
         using (DataBaseContext dataBaseConnection = new DataBaseContext())
         {
             // Получил изделия по проекту
             var pArticles = dataBaseConnection.PArticles.Where(
                 o => o.ProjectID == curProjectID).ToList();
             // Перебираю проекты и заполняю компоненты
             foreach (PArticle pArticle in pArticles)
             {
                 // Получил список всех компонентов в изделии
                 var components = dataBaseConnection.Components.Where(
                     o => o.PArticleID == pArticle.PArticleID).ToList();
                 // Записываю базовую информацию по компонентам
                 foreach (Component component in components)
                 {
                     var componentInitialProperty = new ComponentInitialProperties();
                     componentInitialProperty.PartNumber = component.PartNumber;
                     componentInitialProperty.Count      = component.Count;
                     nonFilteredComponents.Add(componentInitialProperty);
                 }
             }
         }
         return(nonFilteredComponents);
     }
     catch
     {
         var getNonFilteredComponentsErr = new Exception("Ошибка в функции GetNonFilteredComponents");
         throw getNonFilteredComponentsErr;
     }
 }