private DataServiceInterface TransformToDataServiceInterface(Data.Entity entityConfig, CodeGenerationModel genModel, EntityClass entityClass)
        {
            var data = new DataServiceInterface
            {
                Name      = $"I{entityClass.Name}DataSvc",
                Namespace = $"{genModel.BaseNamespace}.Business.DataSvc"
            };

            data.Usings.Add("System");
            data.Usings.Add("System.Threading.Tasks");
            data.Usings.Add(entityClass.Namespace);

            if (entityConfig.Operations?.Any(o => o.PagingArgs) == true)
            {
                data.Usings.Add("Beef.Entities");
            }

            return(data);
        }
        private ManagerClass TransformToManagerClass(Data.Entity entityConfig, CodeGenerationModel genModel, EntityClass entityClass, DataServiceInterface dataServiceInterface)
        {
            var data = new ManagerClass
            {
                Name               = $"{entityClass.Name}Manager",
                Namespace          = $"{genModel.BaseNamespace}.Business",
                Partial            = entityConfig.PartialManager,
                PrivateConstructor = entityConfig.PrivateManagerConstructor
            };

            data.Usings.Add("Beef");
            data.Usings.Add("Beef.Business");
            data.Usings.Add("Beef.Entities");
            data.Usings.Add("Beef.Validation");
            data.Usings.Add("System");
            data.Usings.Add("System.Threading.Tasks");
            data.Usings.Add(entityClass.Namespace);
            data.Usings.Add(dataServiceInterface.Namespace);

            if (entityConfig.Operations != null)
            {
                data.Operations = entityConfig.Operations.Select(o =>
                {
                    var op = CreateOperation <OperationModelBase>(o, entityClass);

                    if (op.IsGetColl && o.PagingArgs)
                    {
                        op.Parameters.Add(new OperationParameter {
                            Name = "pagingArgs", Type = "PagingArgs?"
                        });
                    }

                    return(op);
                }).ToList();
            }

            if (data.Operations.SelectMany(o => o.Parameters ?? new List <OperationParameter>()).Any(o => o.Validator != null))
            {
                data.Usings.Add($"{data.Namespace}.Validation");
            }

            return(data);
        }