public ReprocessSession CollectReprocessSession(Character character, Container container, IEnumerable <long> targetEids) { var ec = ErrorCodes.NoError; var materialMultiplier = GetMaterialMultiplier(character); #if (DEBUG) Logger.Info("material multiplier for reprocess: " + materialMultiplier); #endif var reprocessSession = _reprocessSessionFactory(); foreach (var targetEid in targetEids) { var targetItem = container.GetItem(targetEid, true); if (targetItem == null) { continue; } if ((ec = ProductionHelper.CheckReprocessCondition(targetItem, character)) != ErrorCodes.NoError) { continue; } reprocessSession.AddMember(targetItem, materialMultiplier, character); } if (targetEids.Count() == 1) { ec.ThrowIfNotEqual(ErrorCodes.NoError, ec); } return(reprocessSession); }