public static IItemIssuanceMvoCommand ToCreateOrMergePatchItemIssuanceMvo <TCreateItemIssuanceMvo, TMergePatchItemIssuanceMvo>(this IItemIssuanceMvoState state) where TCreateItemIssuanceMvo : ICreateItemIssuanceMvo, new() where TMergePatchItemIssuanceMvo : IMergePatchItemIssuanceMvo, new() { bool bUnsaved = ((IItemIssuanceMvoState)state).IsUnsaved; if (bUnsaved) { return(state.ToCreateItemIssuanceMvo <TCreateItemIssuanceMvo>()); } else { return(state.ToMergePatchItemIssuanceMvo <TMergePatchItemIssuanceMvo>()); } }