private static void CountExportFormTotals(List <Ingredient> ingredients, CigaretteExportForm form)
 {
     form.Ingredients = ingredients.OrderBy(x =>
     {
         IPRIngredient y = x as IPRIngredient;
         if (y == null)
         {
             return(" ");
         }
         else
         {
             return(y.DocumentNoumber);
         }
     }).ToArray();
     form.IPTMaterialQuantityTotal     = 0;
     form.RegularMaterialQuantityTotal = 0;
     form.IPTDutyVatTotals             = new TotalAmountOfMoney();
     foreach (Ingredient _item in ingredients)
     {
         if (_item is IPRIngredient)
         {
             IPRIngredient _iprItem = (IPRIngredient)_item;
             form.IPTMaterialQuantityTotal += _iprItem.TobaccoQuantity;
             form.IPTDutyVatTotals.Add(new AmountOfMoney(_iprItem.TobaccoValue, _iprItem.Duty, _iprItem.VAT, _iprItem.Currency));
         }
         else
         {
             RegularIngredient _rglrItem = (RegularIngredient)_item;
             form.RegularMaterialQuantityTotal += _rglrItem.TobaccoQuantity;
         }
     }
     form.IPTMaterialQuantityTotal = form.IPTMaterialQuantityTotal.RountMass();
     form.IPTDutyVatTotals.AssignTotals();
     form.RegularMaterialQuantityTotal = form.RegularMaterialQuantityTotal.RountMass();
 }
        private static void ExportMaterial(Entities entities, Material material, List <Ingredient> formsList, bool closingBatch, InvoiceContent invoiceContent, int sadConsignmentNumber, NamedTraceLogger.TraceAction trace)
        {
            trace("Entering FinishedGoodsFormFactory.ExportMaterial", 171, TraceSeverity.Verbose);
            string _at = "Beginning";

            try
            {
                if (material.ProductType.Value == IPR.WebsiteModel.Linq.ProductType.IPRTobacco)
                {
                    List <Disposal> _dspsls = new List <Disposal>();
                    material.Export(entities, closingBatch, invoiceContent, _dspsls, sadConsignmentNumber, trace);
                    foreach (Disposal _dx in _dspsls)
                    {
                        formsList.Add(GetIPRIngredient(_dx));
                    }
                }
                else if (material.ProductType.Value == IPR.WebsiteModel.Linq.ProductType.Tobacco)
                {
                    _at = "RegularIngredient";
                    RegularIngredient _ri = new RegularIngredient(material.Batch, material.SKU, Convert.ToDouble(material.CalculatedQuantity(invoiceContent)));
                    formsList.Add(_ri);
                }
            }
            catch (ApplicationError _ae)
            {
                throw _ae;
            }
            catch (Exception _ex)
            {
                string _ms = "Cannot proceed with export of Material: {0} because of error: {1}.";
                _ms = String.Format(_ms, material.Material2BatchIndex.Title, _ex.Message);
                trace("ApplicationError at FinishedGoodsFormFactory.ExportMaterial: " + _ms + "StackTrace: " + _ex.StackTrace, 141, TraceSeverity.Verbose);
                throw new ApplicationError("Material.Export", _at, _ms, _ex);
            }
        }