private static void ConfigureNewJobAttributes(SimpleMapper mapper)
        {
            mapper.CreateMap <NewJobAttributes, IppRequestMessage>((src, dst, map) =>
            {
                var operation = dst.OperationAttributes;
                var job       = dst.JobAttributes;
                if (src.JobName != null)
                {
                    operation.Add(new IppAttribute(Tag.NameWithoutLanguage, "job-name", src.JobName));
                }
                if (src.IppAttributeFidelity != null)
                {
                    operation.Add(new IppAttribute(Tag.Boolean, "ipp-attribute-fidelity",
                                                   src.IppAttributeFidelity.Value));
                }
                if (src.JobPriority != null)
                {
                    job.Add(new IppAttribute(Tag.Integer, "job-priority", src.JobPriority.Value));
                }
                if (src.JobHoldUntil != null)
                {
                    job.Add(new IppAttribute(Tag.NameWithoutLanguage, "job-hold-until",
                                             mapper.Map <string>(src.JobHoldUntil.Value)));
                }
                if (src.MultipleDocumentHandling != null)
                {
                    job.Add(new IppAttribute(Tag.Keyword, "multiple-document-handling",
                                             mapper.Map <string>(src.MultipleDocumentHandling.Value)));
                }
                if (src.Copies != null)
                {
                    job.Add(new IppAttribute(Tag.Integer, "copies", src.Copies.Value));
                }
                if (src.Finishings != null)
                {
                    job.Add(new IppAttribute(Tag.Enum, "finishings", (int)src.Finishings.Value));
                }
                if (src.PageRanges != null)
                {
                    job.AddRange(src.PageRanges.Select(pageRange =>
                                                       new IppAttribute(Tag.RangeOfInteger, "page-ranges", pageRange)));
                }
                if (src.Sides != null)
                {
                    job.Add(new IppAttribute(Tag.Keyword, "sides", mapper.Map <string>(src.Sides.Value)));
                }
                if (src.NumberUp != null)
                {
                    job.Add(new IppAttribute(Tag.Integer, "number-up", src.NumberUp.Value));
                }
                if (src.OrientationRequested != null)
                {
                    job.Add(new IppAttribute(Tag.Enum, "orientation-srced", (int)src.OrientationRequested.Value));
                }
                if (src.Media != null)
                {
                    job.Add(new IppAttribute(Tag.Keyword, "media", src.Media));
                }
                if (src.PrinterResolution != null)
                {
                    job.Add(new IppAttribute(Tag.Resolution, "printer-resolution", src.PrinterResolution.Value));
                }
                if (src.PrintQuality != null)
                {
                    job.Add(new IppAttribute(Tag.Enum, "print-quality", (int)src.PrintQuality.Value));
                }
                if (src.PrintScaling != null)
                {
                    job.Add(new IppAttribute(Tag.Keyword, "print-scaling", mapper.Map <string>(src.PrintScaling.Value)));
                }

                dst.OperationAttributes.Populate(src.AdditionalOperationAttributes);
                dst.JobAttributes.Populate(src.AdditionalJobAttributes);
                return(dst);
            });
        }