public static IItemIssuanceCommand ToCreateOrMergePatchItemIssuance <TCreateItemIssuance, TMergePatchItemIssuance>(this IItemIssuanceState state)
            where TCreateItemIssuance : ICreateItemIssuance, new()
            where TMergePatchItemIssuance : IMergePatchItemIssuance, new()
        {
            bool bUnsaved = ((IItemIssuanceState)state).IsUnsaved;

            if (bUnsaved)
            {
                return(state.ToCreateItemIssuance <TCreateItemIssuance>());
            }
            else
            {
                return(state.ToMergePatchItemIssuance <TMergePatchItemIssuance>());
            }
        }