Epicor_Integration.Bill_Master.SafeParts C# (CSharp) Method

SafeParts() public method

Finds current safe parts within the current bill of materials and keeps a separate list of them to add after the bom has been updated (Sheets/Coils/E-Coat)
public SafeParts ( List BillParts, List BillOps, List BillUOM, List &BillOpts, List &Bill_Ops, List &Bill_UOM ) : List
BillParts List Current Epicor Bill of Materials
BillOps List
BillUOM List
BillOpts List
Bill_Ops List
Bill_UOM List
return List
        public List<BillItem> SafeParts(List<BillItem> BillParts,List <string> BillOps, List<string> BillUOM, out List<string> BillOpts, out List<string> Bill_Ops, out List<string>Bill_UOM)
        {
            //out List<string> Bill_Qty, , List<string> BillQty

            List<BillItem> RetVal = new List<BillItem>();

            //List<string> RetVal_Qty = new List<string>();

            List<string> RetVal_Ops = new List<string>();

            List<string> RetVal_UOM = new List<string>();

            BillOpts = new List<string>();

            List<RawMaterial> ListtoSave = new List<RawMaterial>();

            ListtoSave.AddRange(DataList.GetCoils());

            ListtoSave.AddRange(DataList.GetEcoat());

            ListtoSave.AddRange(DataList.GetSheets());

            for (int i = 0; i < BillParts.Count; i++)
            {
                string view = (EngWBDS.Tables["ECOMtl"].Rows[i]["ViewAsAsm"].ToString() == "True" ? "1" : "0");

                string pull = (EngWBDS.Tables["ECOMtl"].Rows[i]["PullAsAsm"].ToString() == "True" ? "1" : "0");

                for (int j = 0; j < ListtoSave.Count; j++)
                {
                    if (BillParts[i].PartNumber == ListtoSave[j].part_number)
                    {
                        BillItem Item = new BillItem();

                        Item.PartNumber = BillParts[i].PartNumber;

                        Item.Qty = BillParts[i].Qty;

                        RetVal.Add(Item);

                        //RetVal_Qty .Add(BillParts[i].Qty);

                        BillOpts.Add(view + pull);

                        RetVal_Ops.Add(BillOps[i]);

                        RetVal_UOM.Add(EngWBDS.Tables["ECOMtl"].Rows[i]["UOMCode"].ToString());
                    }
                }
            }

            Bill_Ops = RetVal_Ops;

            //Bill_Qty = RetVal_Qty;

            Bill_UOM = RetVal_UOM;

            return RetVal;
        }