Example #1
0
        public static void Methods(string ConnectionString, string ContextBasePath, string ContextFilePath, string NamespaceOfContextFile, string SPName)
        {
            SPInformation storedProcedure = new SPInformation(ConnectionString);

            var newFunction = string.Empty;

            newFunction += Environment.NewLine + "\t\t" + "public virtual ";

            #region Return Type

            int spResult = CreateFunctionResultModel(ContextBasePath, storedProcedure, NamespaceOfContextFile, SPName);
            if (spResult == 0)
            {
                newFunction += "void";
            }
            else if (spResult == 1)
            {
                newFunction += "int?";
            }
            else if (spResult == 2)
            {
                if (!string.IsNullOrWhiteSpace(NamespaceOfContextFile))
                {
                    var tempRead = File.ReadAllText(ContextFilePath);
                    var temp     = "using " + NamespaceOfContextFile + ".Models;";
                    if (tempRead.IndexOf(temp) == -1)
                    {
                        temp += NLTab() + tempRead;
                        File.WriteAllText(ContextFilePath, temp);
                    }
                }

                newFunction += "List<" + SPName + "_Result>";
            }
            #endregion

            newFunction += " " + SPName + "(";

            var paramList = storedProcedure.GetSPParameterList(SPName);

            #region Binding Method's Paramter

            bool IsFirstParamCreated = false;
            foreach (var param in paramList)
            {
                var sysDataType = DataTypeHelper.GetSysTypeFromSqlType(param.Type, param.IsNullable);

                if (IsFirstParamCreated)
                {
                    newFunction += ", ";
                }
                newFunction += sysDataType + " " + param.Parameter_name;

                IsFirstParamCreated = true;
            }
            newFunction += ")";
            newFunction += Environment.NewLine + "\t\t" + "{";

            #endregion

            #region Bind Parameter

            foreach (var param in paramList)
            {
                newFunction += NLTab(3) + "var " + param.Parameter_name + "Parameter = ";

                var sysDataType = DataTypeHelper.GetSysTypeFromSqlType(param.Type, param.IsNullable);
                if (param.IsNullable && sysDataType != "string")
                {
                    newFunction += param.Parameter_name + ".HasValue ?";
                }
                else
                {
                    newFunction += param.Parameter_name + " != null ?";
                }
                newFunction +=
                    NLTab(4) + "new SqlParameter(\"" + param.Parameter_name.ToString() + "\", " + param.Parameter_name + ") :" +
                    NLTab(4) + "new SqlParameter(\"" + param.Parameter_name.ToString() + "\", typeof(" + sysDataType + "));";

                newFunction += Environment.NewLine;
            }
            #endregion

            #region Bind Function Calling

            if (spResult == 0)
            {
                newFunction += NLTab(3) + "executeFunction.ExecuteNonQuery(\"" + SPName.ToString() + "\"";
            }
            else if (spResult == 1)
            {
                newFunction += NLTab(3) + "return executeFunction.ExecuteScalar(\"" + SPName.ToString() + "\"";
            }
            else if (spResult == 2)
            {
                newFunction += NLTab(3) + "return executeFunction.ExecuteReader<" + SPName + "_Result" + ">(\"" + SPName.ToString() + "\"";
            }

            foreach (var param in paramList)
            {
                newFunction += ", " + param.Parameter_name + "Parameter";
            }
            newFunction += ");";

            #endregion

            newFunction += Environment.NewLine + "\t\t" + "}";
            newFunction  = newFunction + Environment.NewLine + "\t\t" + "//####WriteHere####";

            var allText = File.ReadAllText(ContextFilePath);
            allText = allText.Replace("//####WriteHere####", newFunction);

            File.WriteAllText(ContextFilePath, allText);
        }