/// <summary>
        /// Create a Certificate from a ViewModel.
        /// </summary>
        /// <param name="certificateViewModel"></param>
        /// <returns></returns>
        public static Certificate CreateCertificate(CertificateViewModel certificateViewModel)
        {
            if (certificateViewModel == null)
            {
                return(null);
            }
            Certificate certificate = new Certificate(certificateViewModel.Id)
            {
                DateIssued   = certificateViewModel.DateIssued,
                DateExpired  = certificateViewModel.DateExpired,
                LastEditBy   = certificateViewModel.LastEditBy,
                LastEditDate = certificateViewModel.LastEditDate,
                RowVersion   = certificateViewModel.RowVersion
            };

            if (certificateViewModel.Person != null)
            {
                certificate.Person   = PersonViewModel.CreatePerson(certificateViewModel.Person);
                certificate.PersonId = certificate.Person.Id;
            }

            if (certificateViewModel.CertificateType == null)
            {
                return(certificate);
            }

            certificate.CertificateType =
                CertificateTypeViewModel.CreateCertificateType(certificateViewModel.CertificateType);
            certificate.CertificateTypeId = certificate.CertificateType.Id;

            return(certificate);
        }
        /// <summary>
        /// Creates a requirement from a ViewModel.
        /// </summary>
        /// <param name="vm"></param>
        /// <returns></returns>
        public static Requirement CreateRequirement(RequirementViewModel vm)
        {
            if (vm == null)
            {
                return(null);
            }

            Requirement requirement = new Requirement(vm.Id)
            {
                LastEditDate = vm.LastEditDate,
                LastEditBy   = vm.LastEditBy,
                RowVersion   = vm.RowVersion
            };

            if (vm.CertificateType != null)
            {
                requirement.CertificateType   = CertificateTypeViewModel.CreateCertificateType(vm.CertificateType);
                requirement.CertificateTypeId = requirement.CertificateType.Id;
            }

            if (vm.Task != null)
            {
                requirement.Task   = TaskViewModel.CreateTask(vm.Task);
                requirement.TaskId = requirement.Task.Id;
            }

            return(requirement);
        }