protected override List<Violation> GetViolations(
            VrpResult vrpResult)
        {
            List<Violation> list = base.GetViolations(vrpResult);
            list.AddRange(_prevViolations);

            return list;
        }
        protected override List<Violation> GetViolations(VrpResult vrpResult)
        {
            List<Violation> violations = base.GetViolations(vrpResult);

            if (_violations != null)
                violations.AddRange(_violations);

            return violations;
        }
        protected override IList<RouteResult> ConvertResult(
            VrpResult vrpResult,
            SubmitVrpJobRequest request)
        {
            // convert current route results
            List<RouteResult> routeResults = new List<RouteResult>(
                base.ConvertResult(vrpResult, request));

            // add route results from previous solve for those routes that
            // were not used in the last solve
            List<RouteResult> prevRouteResults = new List<RouteResult>();
            foreach (RouteResult rr in _prevRouteResults)
            {
                if (!_ContainsRoute(routeResults, rr.Route))
                    prevRouteResults.Add(rr);
            }

            routeResults.AddRange(prevRouteResults);

            return routeResults;
        }