/// <summary> /// Metoda smaže materiál určený uživatelem. /// </summary> /// <param name="materialMarked"></param> public void DestroyMaterial(Material materialMarked) { // Materiál vybraný ke smazání Material selectMaterial = null; bool materialExist = false; foreach (Material material in MaterialCollection) { //Sníží množství materiálu o 1, když je ho dostatek na skladě. if ((materialMarked == material) && (material.MaterialQuantity > 1)) { material.MaterialQuantity--; DeletedMaterialCollection.Add(new Material(material.MaterialNames, material.MaterialPrice, 1));////// materialMarked.MaterialChange("MaterialQuantity"); materialExist = true; } // Pokud jde o poslední kus materiálu, je označen pro smazání z kolekce celý jeho typ. else if ((materialMarked.MaterialNames.ToString() == material.MaterialNames.ToString()) && (material.MaterialQuantity == 1)) { selectMaterial = material; DeletedMaterialCollection.Add(new Material(material.MaterialNames, material.MaterialPrice, 1));////// } } // Odstranění materiálu z kolekce. if ((selectMaterial != null) && (materialExist == false)) { MaterialCollection.Remove(selectMaterial); } // Uložení změn Save(); }
/// <summary> /// Metoda, při splnění zakázky, odstraní materiál, který jí odpovídá. /// </summary> /// <param name="selectedContract">Vybraná zakázka</param> public void ContractMaterial(Contract selectedContract) { // Materiál ke smazání Material deletetMaterial = null; bool materialExist = false; foreach (Material material in MaterialCollection) { // Pokud je na skladě materiál, který je potřebný pro splnění zakázky, jeho množství se sníží. if ((selectedContract.KindMaterials.ToString() == material.MaterialNames.ToString()) && (material.MaterialQuantity >= selectedContract.Pieces)) { material.MaterialQuantity -= selectedContract.Pieces; DeletedMaterialCollection.Add(new Material(material.MaterialNames, material.MaterialPrice, selectedContract.Pieces)); materialExist = true; } // Pokud materiál potřebný ke splnění zakázky není v dostatečném množství je vyvolána výjimka. else if ((selectedContract.KindMaterials.ToString() == material.MaterialNames.ToString()) && (material.MaterialQuantity < selectedContract.Pieces)) { throw new ArgumentException("Lack of material"); } // Pokud je množství materiálu nulové, tak je označen pro pozdější smazání. else if (material.MaterialQuantity == 0) { deletetMaterial = material; } material.MaterialChange("MaterialQuantity"); } // Podmínka je splněna, pokud typ potřebného materiálu neexistuje. if (!materialExist) { throw new ArgumentException("Material doesn't exist"); } // Smazání materiálu s nulovím množstvím MaterialCollection.Remove(deletetMaterial); // Uložení změn Save(); }