Example #1
0
        public override CodeFile Build(InformationSchema data)
        {
            CodeFile file = new CodeFile()
            {
                Path = base.GetFileLocation(),
                Type = CodeFileType.Repository,
                Name = Template.Element("FileName").Value .Replace("$SYS_TARGET$", data.Target)
            };

            if (data.IncludeSmartFile)
            {
                file.Content = "using NextGen.NG7.Common.Interfaces.SmartFiles.DataAccess;" + Environment.NewLine +
                                Template.Element("Main").Value
                                           .Replace("$SYS_REPOSITORYBASE$", "RepositoryBase, ISmartFileRepository")
                                           .Replace("$SYS_METHODS_TEMPLATE$", Template.Element("SmartFileMethods").Value
                                                                                        .Replace("$SYS_VAR_TARGET$", GetVariableName(data.Target)))
                                           .Replace("$SYS_TARGET$", data.Target)
                                           .Replace("$SYS_PLURAL_TARGET$", Utils.Util.Pluralize(data.Target));

            }
            else
            {
                file.Content = Template.Element("Main").Value
                                           .Replace("$SYS_REPOSITORYBASE$", "RepositoryBase")
                                           .Replace("$SYS_METHODS_TEMPLATE$", Template.Element("CRUDMethods").Value
                                                                                        .Replace("$SYS_VAR_TARGET$", GetVariableName(data.Target)))
                                           .Replace("$SYS_TARGET$", data.Target)
                                           .Replace("$SYS_PLURAL_TARGET$", Utils.Util.Pluralize(data.Target));
            }
            base.Files = new List<CodeFile>() { file };
            return file;
        }
        public override CodeFile Build(InformationSchema data)
        {
            CodeFile file = new CodeFile();
            string membersTemplate = Template.Element("MemberTemplate").Value;
            StringBuilder privateMember = new StringBuilder();
            StringBuilder memberBuilder = new StringBuilder();
            StringBuilder initializerBuilder = new StringBuilder();

            data.MetaData.ForEach(m =>
            {
                initializerBuilder.Append(String.Format("\t\t{0} = _{1},{2}", m.Name, GetVariableName(m.Name), Environment.NewLine));
                privateMember.Append(String.Format("\t\t{0} _{1};{2}", GetDataType(m), GetVariableName(m.Name), Environment.NewLine));
                memberBuilder.Append(membersTemplate.Replace("$MEMBER_NAME$", m.Name)
                                                    .Replace("$MEMBER_DATATYPE$", GetDataType(m))
                                                    .Replace("$MEMBER_VAR_NAME$", GetVariableName(m.Name)));
            });

            file.Content = Template.Element("Main").Value
                                .Replace("$SYS_MEMBER_INIT$", initializerBuilder.ToString().Trim().TrimEnd(','))
                                .Replace("$SYS_MEMBER_TEMPLATE$", privateMember.Append(memberBuilder).ToString())
                                .Replace("$SYS_TARGET$", data.Target);

            file.Name = Template.Element("FileName").Value.Replace("$SYS_TARGET$", data.Target);
            file.Path = base.GetFileLocation();
            file.Type = CodeFileType.UnitTestBuilder;
            base.Files = new List<CodeFile>() { file };
            return file;
        }
Example #3
0
        public override CodeFile Build(InformationSchema data)
        {
            CodeFile file = new CodeFile();
            StringBuilder members = new StringBuilder();
            string memberTemplate = Template.Element("Members").Value;
            Dictionary<string, string> mTemplate = new Dictionary<string, string>();

            data.MetaData.ForEach(m =>
            {
                mTemplate["$SYS_DATAMEMBER$"] = m.IsDataMember ? "[DataMember]" : string.Empty;
                mTemplate["$SYS_NEWGUID$"] = m.Guid.ToUpper();
                mTemplate["$SYS_DATATYPE$"] = GetDataType(m);
                mTemplate["$SYS_MEMBERNAME$"] = m.Name;
                mTemplate["$SYS_ATTRNAME$"] = m.Name;
                mTemplate["$SYS_ATTRDESCRIPTION$"] = string.IsNullOrEmpty(m.Description) ? m.Name.ToStringDescription() : m.Description;
                mTemplate["$SYS_ATTR1$"] = !data.IsViewTarget && m.IsRequired ? ", Required = true" : string.Empty;
                mTemplate["$SYS_ATTR2$"] = m.IsPK ? ", PrimaryOrCompositeKey = true" : string.Empty;
                members.Append(memberTemplate.ReplaceContent(mTemplate));
            });
            Dictionary<string, string> mainTemplate = new Dictionary<string, string>();
            mainTemplate["$SYS_NEWGUID$"] = data.TargetGuid;
            mainTemplate["$SYS_MEMBERS_TEMPLATE$"] = members.ToString();
            mainTemplate["$SYS_TARGET$"] = data.Target;
            mainTemplate["$SYS_TABLEDATANAME$"] = data.TableDataName;
            mainTemplate["$SYS_TABLEDATADESCRIPTION$"] = data.TableDataDescription;

            file.Content = Template.Element("Main").Value.ReplaceContent(mainTemplate);
            file.Name = Template.Element("FileName").Value.Replace("$SYS_TARGET$", data.Target);
            file.Path = base.GetFileLocation();
            file.Type = CodeFileType.ServiceObject;

            base.Files = new List<CodeFile>() { file };
            return file;
        }
Example #4
0
        public override CodeFile Build(InformationSchema data)
        {
            CodeFile file = new CodeFile();
            StringBuilder content = new StringBuilder();

            content.Append(Template.Element("Using").Value);
            if (data.IncludeSmartFile)
                content.Append("using NextGen.NG7.Common.BusinessLogic.SmartFiles;");
            content.Append(Environment.NewLine + "namespace " + Template.Element("Namespace").Value + Environment.NewLine);
            content.Append(String.Format("{{{0}public interface I{1}Manager : IBusinessLogicManager {0}{{{0}", Environment.NewLine, data.Target));

            content.Append("//ATTENTION: CHECK THE ROUTES AND FUNCTION NAME/PARAMETERS" + Environment.NewLine);
            Dictionary<string, string> mTemplate = new Dictionary<string, string>();
            mTemplate["$SYS_TARGET$"] = data.Target;

            new RouteMetaData().GenerateRoutes(data.Target, data.IncludeSmartFile, data.TargetProduct,data.TargetModule).ForEach(r =>
            {
                //content.Append(Environment.NewLine);
                content.Append(r.Summary);
                //content.Append(Environment.NewLine);
            });

            content.Append("}" + Environment.NewLine + "}");
            file.Content = content.ToString();
            file.Name = Template.Element("FileName").Value.Replace("$SYS_TARGET$", data.Target);
            file.Path = base.GetFileLocation();
            file.Type = CodeFileType.IManager;
            base.Files = new List<CodeFile>() { file };
            return file;
        }
        public override CodeFile Build(InformationSchema data)
        {
            CodeFile file = new CodeFile();
            StringBuilder validationMembers = new StringBuilder();

            string stringFieldValidateTemplate = Template.Element("StringFieldValidate").Value.TrimStart();
            string guidFieldValidateTemplate = Template.Element("GuidFieldValidate").Value.TrimStart();
            string guidNullableFieldTemplate = Template.Element("GuidNullableField").Value.TrimStart();
            data.MetaData.ForEach(m =>
            {
                if (m.IsRequired && !m.Name.Equals(data.Target + "Id"))
                {
                    if (m.DataType == typeof(string))
                    {
                        validationMembers.Append(stringFieldValidateTemplate.Replace("$SYS_MEMBERNAME$", m.Name));
                    }
                    else if (m.DataType == typeof(Guid))
                    {
                        validationMembers.Append(guidFieldValidateTemplate.Replace("$SYS_MEMBERNAME$", m.Name));
                    }
                }

            });

            data.MetaData.ForEach(m =>
            {
                if (!m.IsRequired && m.DataType == typeof(Guid))
                {
                    validationMembers.Append(guidNullableFieldTemplate.Replace("$SYS_MEMBERNAME$", m.Name));
                }
            });
            string templateValue = string.Empty;
            if (data.IncludeSmartFile)
            {
                var getSmartFileById = string.Empty;
                if (data.TargetProduct.ToLower().Equals("core"))
                    templateValue = Template.Element("SmartFileOperations").Value.Replace("$SYS_GETSMARTFILEIDTEMPLATE$", Template.Element("GetSmartFileId_Core").Value);
                else
                    templateValue = Template.Element("SmartFileOperations").Value.Replace("$SYS_GETSMARTFILEIDTEMPLATE$", Template.Element("GetSmartFileId_NonCore").Value);
                
                templateValue = Template.Element("Main").Value.Replace("$SYS_METHODS_TEMPLATE$", templateValue);
            }
            else
            {
                templateValue = Template.Element("Main").Value.Replace("$SYS_METHODS_TEMPLATE$", Template.Element("CRUDOperations").Value);
            }

            file.Content = templateValue.Replace("$SYS_VALIDATION_MEMBERS$", validationMembers.ToString())
                                 .Replace("$SYS_VAR_TARGET$", GetVariableName(data.Target))
                                 .Replace("$SYS_TARGET$", data.Target)
                                 .Replace("$SYS_PLURAL_TARGET$", Utils.Util.Pluralize(data.Target));

            file.Name = Template.Element("FileName").Value.Replace("$SYS_TARGET$", data.Target);
            file.Path = base.GetFileLocation();
            file.Type = CodeFileType.Manager;
            base.Files = new List<CodeFile>() { file };
            return file;
        }
Example #6
0
 public CodeDOMEngine Register(DOMEngineArgs regArgs)
 {
     registerArgs = regArgs;
     schema = new InformationSchema(registerArgs.Target);
     schema.TargetProduct = registerArgs.ProductName;
     schema.TargetModule = registerArgs.Module;
     schema.IncludeSmartFile = registerArgs.IncludeSmartFile;
     builders = new List<ICodeBuilder>();
     registerArgs.FileTypes.ForEach(type =>
     {
         switch (type)
         {
             case CodeFileType.ServiceObject:
                 builders.Add(new ServiceObject(registerArgs.ProductName, type));
                 break;
             case CodeFileType.RepositoryObject:
                 builders.Add(new RepositoryObject(registerArgs.ProductName, type));
                 break;
             case CodeFileType.Repository:
                 builders.Add(new Repository(registerArgs.ProductName, type));
                 break;
             case CodeFileType.IManager:
                 builders.Add(new APIManager(registerArgs.ProductName, CodeFileType.IManager));
                 break;
             case CodeFileType.Manager:
                 builders.Add(new BusinessManager(registerArgs.ProductName, CodeFileType.Manager));
                 break;
             case CodeFileType.UnitTest:
                 builders.Add(new UnitTest(registerArgs.ProductName, CodeFileType.UnitTest));
                 break;
             case CodeFileType.UnitTestBuilder:
                 builders.Add(new UnitTestBuilder(registerArgs.ProductName, CodeFileType.UnitTestBuilder));
                 break;
             default:
                 break;
         }
     });
     return this;
 }
        public override CodeFile Build(InformationSchema data)
        {
            CodeFile file = new CodeFile();
            string memberTemplate = Template.Element("Members").Value;
            Func<List<MetaData>, bool, string> fnGetMemberString = (metadata, isColumAttrAdd) =>
            {
                StringBuilder members = new StringBuilder();
                metadata.ForEach(m =>
                {
                    if (!(m.Name.ToLower().Equals("amendfilterorganizationid") || m.Name.ToLower().Equals("amendstatus")))
                    {
                        if (isColumAttrAdd && !m.Name.Equals(data.Target + "Id") && m.Name.StartsWith(data.Target))
                        {
                            members.Append("[Column(\"" + m.Name + "\")] " + Environment.NewLine);
                            var cName = m.Name.Replace(data.Target, "");
                            members.Append(memberTemplate.Replace("$SYS_DATATYPE$", GetDataType(m)).Replace("$SYS_MEMBERNAME$", cName));
                        }
                        else
                            members.Append(memberTemplate.Replace("$SYS_DATATYPE$", GetDataType(m)).Replace("$SYS_MEMBERNAME$", m.Name));

                    }
                });
                return members.ToString();
            };

            Dictionary<string, string> mTemplate = new Dictionary<string, string>();

            Func<InformationSchema, CodeFile> fnCreateFile = (infoX) =>
            {
                CodeFile fileX = new CodeFile();

                mTemplate["$SYS_TARGET$"] = infoX.Target;
                mTemplate["$SYS_MEMBERS_TEMPLATE$"] = fnGetMemberString(infoX.MetaData, false);
                mTemplate["$SYS_MAINTARGET$"] = infoX.Target;
                
                fileX.Content = Template.Element("Main").Value.ReplaceContent(mTemplate);
                fileX.Name = Template.Element("FileName").Value.Replace("$SYS_TARGET$", infoX.Target);
                fileX.Path = base.GetFileLocation();
                fileX.Type = CodeFileType.RepositoryObject;
                return fileX;
            };

            Func<InformationSchema, CodeFile> fnCreateViewFile = (infoX) =>
            {
                CodeFile fileX = new CodeFile();
                mTemplate["$SYS_TARGET$"] = infoX.Target;
                mTemplate["$SYS_MAINTARGET$"] = infoX.TargetName;
                mTemplate["$SYS_MEMBERS_TEMPLATE$"] = fnGetMemberString(infoX.MetaData, true);
                mTemplate["$SYS_BASEVIEW$"] = data.IncludeSmartFile ? ": SmartItemViewBase" : string.Empty;
                
                fileX.Content = Template.Element("MainView").Value.ReplaceContent(mTemplate);
                fileX.Name = Template.Element("FileName").Value.Replace("$SYS_TARGET$", infoX.Target + "View");
                fileX.Path = base.GetFileLocation();
                fileX.Type = CodeFileType.RepositoryObject;
                return fileX;
            };

            if (data.IsViewTarget)
            {
                base.Files = new List<CodeFile>() { fnCreateViewFile(data) };
            }
            else
            {
                base.Files = new List<CodeFile>() { fnCreateFile(data) };
                if (data.IncludeSmartFile)
                {
                    var info = new InformationSchema(data.Target + "Library");
                    base.Files.Add(fnCreateFile(info));
                    info = new InformationSchema(data.Target + "LibraryAmendFilter");
                    base.Files.Add(fnCreateFile(info));
                    info = new InformationSchema("ngvwGetAll" + data.Target + "Library");
                    base.Files.Add(fnCreateViewFile(info));
                }
                else
                {
                    var info = new InformationSchema("ngvwGet" + data.Target);
                    base.Files.Add(fnCreateViewFile(info));
                }
            }

            return file;
        }
Example #8
0
        private void Process()
        {
            List<AnalyzeData> lst = new List<AnalyzeData>();

            string text = (acNameBox.SelectedValue ?? string.Empty) as string;

            if (!string.IsNullOrEmpty(text))
            {

                //get all columns & display them on screen.
                InformationSchema schema = new InformationSchema(text, true);

                //TODO: Display already existing routes for verifications
                GetDependants(text);
                dgDBSchema.ItemsSource = schema.MetaData.Select(m => new MetaData { Name = m.Name, DataType = m.DataType, ParentRefTable = m.ParentRefTable, IsRequired = !m.IsRequired, IsPK = m.IsPK, Remarks = m.Remarks, Key = m.Key }).ToList();
                if (!text.Contains("ngvw"))
                {
                    txtProcessingInfo.Visibility = Visibility.Visible;
                    ProcessingInfoLbl.Visibility = Visibility.Visible;
                    //GetAnalyzingInfoText(schema.MetaData);
                    GetKeyInfo(text);
                }
                else
                {
                    txtProcessingInfo.Visibility = Visibility.Hidden;
                    ProcessingInfoLbl.Visibility = Visibility.Hidden;
                    //var dTable = SQLHelper.ExecuteDataTable("SELECT m.definition FROM sys.views v INNER JOIN sys.sql_modules m ON m.object_id = v.object_id WHERE name = '" + acNameBox.Text + "'");
                    //if (dTable.Rows.Count > 0)
                    //{
                    //    var temp = dTable.Rows[0][0].ToString();
                    //    int index = temp.IndexOf("from");
                    //    if (index < 0)
                    //        index = temp.IndexOf("FROM");
                    //    var xtext = temp.Substring(index + 4, temp.Length - (index + 4));

                    //    FlowDocument aFlowDoc = new FlowDocument();
                    //    aFlowDoc.PagePadding = new Thickness(01);
                    //    aFlowDoc.Foreground = new SolidColorBrush(Colors.LightBlue);
                    //    aFlowDoc.FontFamily = new FontFamily("Consolas");
                    //    aFlowDoc.FontSize = 12;
                    //    aFlowDoc.LineHeight = 2;
                    //    var para = new Paragraph();
                    //    para.Inlines.Add(new Run(xtext));
                    //    aFlowDoc.Blocks.Add(para);
                    //    txtProcessingInfo.Document = aFlowDoc;
                    //    TextRange tr = new TextRange(txtProcessingInfo.Document.ContentEnd, txtProcessingInfo.Document.ContentEnd);
                    //    tr.Text = "JOIN";
                    //    tr.ApplyPropertyValue(TextElement.BackgroundProperty, new SolidColorBrush(Colors.Red));
                    //}
                }
            }
        }
        public List<ClassMetaData> ProcessAssembly(List<Type> types)
        {
            List<ClassMetaData> output = new List<ClassMetaData>();

            foreach (Type type in types)
            {
                var propertyMetaData = new List<PropertyMetaData>();
                if (!type.IsSealed && type.IsClass)
                {
                    var dataContractAttr = Attribute.GetCustomAttribute(type, typeof(DataContractAttribute));
                    string tableDataDescription = string.Empty;
                    string tableDataName = string.Empty;
                    string GuidValue = string.Empty;
                    if (dataContractAttr != null)
                    {
                        var properties = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
                        var classDBMetadata = new InformationSchema(type.Name, includeDescription: true);
                        var tableDataAttr = Attribute.GetCustomAttribute(type, typeof(TableDataAttribute));

                        if (tableDataAttr != null)
                        {
                            var attrTemp = (((TableDataAttribute)tableDataAttr));

                            tableDataDescription = attrTemp.Description;
                            tableDataName = attrTemp.Name;
                        }

                        var guidAttr = Attribute.GetCustomAttribute(type, typeof(System.Runtime.InteropServices.GuidAttribute));
                        if (guidAttr != null)
                        {
                            GuidValue = (((System.Runtime.InteropServices.GuidAttribute)guidAttr)).Value;
                        }

                        if (classDBMetadata == null)
                        {
                            classDBMetadata = new InformationSchema(tableDataName, includeDescription: true);
                        }

                        foreach (var p in properties)
                        {
                            bool isDataMemberAttr = false;
                            try
                            {
                                MetaData m = null;
                                if (classDBMetadata != null && classDBMetadata.MetaData != null)
                                {
                                    m = classDBMetadata.MetaData.Find(c => c.Name.ToLower().Equals(p.Name.ToLower()));
                                    if (m == null)
                                        m = new MetaData();
                                }

                                var datamemberAttr = Attribute.GetCustomAttribute(p, typeof(DataMemberAttribute));
                                if (datamemberAttr != null)
                                {
                                    isDataMemberAttr = true;
                                }

                                var attr = Attribute.GetCustomAttribute(p, typeof(ColumnDataAttribute));
                                if (attr != null)
                                {
                                    ColumnDataAttribute cat = ((ColumnDataAttribute)attr);
                                    propertyMetaData.Add(new PropertyMetaData()
                                    {
                                        ClassName = type.Name,
                                        Name = p.Name,
                                        Type = p.PropertyType.GetDisplayName(),
                                        Guid = cat.ModelTupleId,
                                        IsDataMember = isDataMemberAttr,
                                        Description = string.IsNullOrEmpty(cat.Description) ? m.Remarks : cat.Description,
                                        PrimaryOrCompositeKey = cat.PrimaryOrCompositeKey || m.IsPK,
                                        Required = cat.Required || m.IsRequired
                                    });
                                }
                                else
                                {
                                    propertyMetaData.Add(new PropertyMetaData()
                                    {
                                        ClassName = type.Name,
                                        Name = p.Name,
                                        IsDataMember = isDataMemberAttr,
                                        Guid = string.Empty,
                                        Type = p.PropertyType.GetDisplayName(),
                                        Description = m.Remarks,
                                        PrimaryOrCompositeKey = m.IsPK,
                                        Required = m.IsRequired
                                    });
                                }

                            }
                            catch (Exception)
                            {
                                propertyMetaData.Add(new PropertyMetaData()
                                {
                                    IsDataMember = isDataMemberAttr,
                                    ClassName = type.Name,
                                    Type = p.PropertyType.GetDisplayName(),
                                    Name = p.Name,
                                    Guid = string.Empty
                                });
                            }
                        }
                    }

                    output.Add(new ClassMetaData
                    {
                        Name = type.Name,
                        Guid = GuidValue,
                        TableDataDescription = tableDataDescription,
                        TableDataName = tableDataName,
                        PropertyMetaData = propertyMetaData
                    });
                }
            }

            return output;
        }
        public List<CodeFile> ApplyFixToCodeAnalysisDocument(string filePath, List<Type> types, string productName = "Core")
        {
            DataSet ds = new DataSet();
            ds.ReadFromExcel(filePath);
            List<ClassMetaData> classMeta = new List<ClassMetaData>();
            List<ClassMetaData> aseemblyData = new List<ClassMetaData>();
            List<PropertyMetaData> propMeta = new List<PropertyMetaData>();

            if (types != null && types.Any())
                aseemblyData = ProcessAssembly(types);

            if (ds.Tables[0].Rows.Count > 0 && ds.Tables[1].Rows.Count > 0)
            {
                foreach (DataRow rs in ds.Tables[0].Rows)
                {
                    if (!string.IsNullOrEmpty(rs["Name"].ToString()))
                        classMeta.Add(new ClassMetaData()
                        {
                            Name = rs["Name"].ToString(),
                            Guid = rs["Guid"].ToString(),
                            TableDataDescription = rs["TableDataDescription"].ToString(),
                            TableDataName = rs["TableDataName"].ToString()
                        });
                }

                foreach (DataRow rs in ds.Tables[1].Rows)
                {
                    if (!string.IsNullOrEmpty(rs["ClassName"].ToString()))
                        propMeta.Add(new PropertyMetaData()
                        {
                            Name = rs["Name"].ToString(),
                            Guid = rs["Guid"].ToString(),
                            Description = rs["Description"].ToString(),
                            ClassName = rs["ClassName"].ToString(),
                            Type = rs["Type"].ToString(),
                            IsDataMember = rs["IsDataMember"].ToString().Equals("1") ? true : false,
                            PrimaryOrCompositeKey = rs["PrimaryOrCompositeKey"].ToString().Equals("1") ? true : false,
                            Required = rs["Required"].ToString().Equals("1") ? true : false
                        });
                }
            }
            var files = new List<CodeFile>();
            var svcObj = new ServiceObject(productName, CodeFileType.ServiceObject);

            classMeta.ForEach(c =>
            {
                c.PropertyMetaData = propMeta.FindAll(p => p.ClassName == c.Name);
                var aC = aseemblyData.Find(ax => ax.Name == c.Name);
                List<PropertyMetaData> exceptMeta = null;
                if (aC != null)
                {
                    exceptMeta = (from c1 in aC.PropertyMetaData
                                  join c2 in c.PropertyMetaData on c1.Name equals c2.Name into gt
                                  from sub in gt.DefaultIfEmpty()
                                  where sub == null
                                  select c1).ToList();
                    if (exceptMeta.Count > 0)
                    {
                        c.PropertyMetaData.AddRange(exceptMeta);
                    }
                }
                var schema = new InformationSchema();
                schema.Target = schema.TargetName = c.Name;
                schema.TableDataDescription = c.TableDataDescription;
                schema.TableDataName = c.TableDataName;
                schema.TargetGuid = c.Guid;
                schema.MetaData = c.PropertyMetaData.Select(p => p.GetMetaData()).ToList();
                files.Add(svcObj.Build(schema));
            });
            string path = @"C:\temp\";
            files.ForEach(f =>
            {
                //if (f.Type == CodeFileType.RepositoryObject || f.Type == CodeFileType.ServiceObject || f.Type == CodeFileType.IManager)
                f.Content = f.Content.Replace("$PRODUCTNAME$", productName).FormatWhiteSpaces();
                //else
                //    f.Content = f.Content.Replace("$PRODUCTNAME$", productName);

                Utils.Util.Write2File(path, f.Content, f.Name);
            });
            Process.Start(new ProcessStartInfo(path));
            return files;
        }
Example #11
0
        public string CreateMochaDocument(RouteConfig _RouteConfig, string target)
        {
            StringBuilder content = new StringBuilder();

            content.Append(String.Format("var testWrapper = require('../../node_modules/TestWrapper/TestWrapper');{0}var should = require('../../node_modules/should');{0}var assert = require('../../node_modules/assert');{0}var objectComparison = require('../../node_modules/objectcompare');{0}", Environment.NewLine));
            content.Append(String.Format("{1}var new{0}Id=null;{1}", target, Environment.NewLine));
            content.Append(String.Format("var organizationId = '99E62AD8-D585-48CE-9D97-A315BEA2760C';   //Baxter physician group {0}", Environment.NewLine));
            content.Append(String.Format("var new{0}={{ {1}", target, Environment.NewLine));
            var data = new InformationSchema(target);
            data.MetaData.ForEach(m =>
            {
                if (!m.Name.Equals(target + "Id"))
                    content.Append(String.Format("'{0}':'{1}',{2}", m.Name, GetDefaultDataValue(m), Environment.NewLine));
            });
            content.Append(String.Format("}};{0}", Environment.NewLine));

            string eFunctionName = String.Format("evaluateCreate{0}Response", target);
            content.Append(string.Format(
            @"//Custom response evaluator for {0} POST test
            function evaluateCreate{0}Response(actual, expected, testCompletionCallback) {{
                var keysToIgnore = ['{0}Id', 'SessionKey', 'Success'];

                var transportMessage = JSON.parse(actual);
                var expectedMessage = JSON.parse(expected);

                var actual{0} = testWrapper.ElementsToIgnore(JSON.stringify(transportMessage.response), keysToIgnore);
                var expected{0} = testWrapper.ElementsToIgnore(JSON.stringify(expectedMessage), keysToIgnore);
                try {{
                    if (transportMessage.response != undefined && transportMessage.response[0] != undefined &&
                        transportMessage.response[0].{0}Id != undefined) {{
                        new{0}Id = transportMessage.response[0].{0}Id;
                    }}
                    testCompletionCallback();
                }}
                catch (e) {{
                }}
            }}", target));

            //var typesOrder = new List<String> { "POST", "PUT", "GET", "DELETE" };
            //typesOrder.ForEach(type =>
            //{.Where(m => m.Type.ToUpper() == type)
            _RouteConfig.MetaData.OrderBy(m => m.OrdinalPosition).ToList().ForEach(r =>
            {
                if (r.MochaScript == null)
                {
                    var rx = _RouteConfig.MetaData.Where(mx => mx.Type == r.Type).FirstOrDefault();

                    r.MochaScript = rx.MochaScript ?? string.Empty;
                }
                content.Append(r.MochaScript.Replace("$SYS_DESCR$", r.Description)
                                            .Replace("$SYS_URI$", r.Uri)
                                            .Replace("$SYS_NAME$", r.Name)
                                            .Replace("$SYS_TARGET$", target)
                                            .Replace("$SYS_NEW_OBJECT$", "new" + target)
                                            .Replace("$SYS_EVAL_FUNC_NAME$", eFunctionName)
                                            .Replace("$SYS_EXEC_URI$", formatURI(r.Uri)));
                content.Append(Environment.NewLine);
            });
            //});

            return content.ToString().FormatWhiteSpaces();
        }
Example #12
0
        public override CodeFile Build(InformationSchema data)
        {
            CodeFile file = new CodeFile();
            StringBuilder insertMembers = new StringBuilder();
            StringBuilder updateMembers = new StringBuilder();
            StringBuilder svcObjMembers = new StringBuilder();
            string insertMemberTemplate = data.IncludeSmartFile ? Template.Element("InsertSmartFileMember").Value : Template.Element("InsertMember").Value;
            string updateMemberTemplate = Template.Element("UpdateMember").Value;

            data.MetaData.ForEach(m =>
            {
                if (!m.Name.Equals(data.Target + "Id"))
                {
                    svcObjMembers.Append(String.Format("\t\t.With{0}({2}){1}", m.Name, Environment.NewLine, GetDefaultDataValue(m)));

                    if (m.IsRequired)
                    {
                        if (m.DataType == typeof(string))
                        {
                            insertMembers.Append(insertMemberTemplate
                                                        .Replace("$SYS_MEMBERNAME$", m.Name)
                                                        .Replace("$SYS_NULLVALUE$", "string.Empty")
                                                        .Replace("$SYS_NULLVALUE_MSG$", "Empty"));

                            updateMembers.Append(updateMemberTemplate
                                                        .Replace("$SYS_MEMBERNAME$", m.Name)
                                                        .Replace("$SYS_NULLVALUE$", "string.Empty")
                                                        .Replace("$SYS_NULLVALUE_MSG$", "Empty"));
                        }
                        else if (m.DataType == typeof(Guid))
                        {
                            insertMembers.Append(insertMemberTemplate
                                                       .Replace("$SYS_MEMBERNAME$", m.Name)
                                                       .Replace("$SYS_NULLVALUE$", "Guid.Empty")
                                                       .Replace("$SYS_NULLVALUE_MSG$", "Guid.Empty"));

                            updateMembers.Append(updateMemberTemplate
                                                        .Replace("$SYS_MEMBERNAME$", m.Name)
                                                        .Replace("$SYS_NULLVALUE$", "Guid.Empty")
                                                        .Replace("$SYS_NULLVALUE_MSG$", "Guid.Empty"));
                        }
                    }
                }
            });
            string templateValue = Template.Element(data.IncludeSmartFile ? "SmartFileTest" : "CRUDTest").Value;

            if (data.TargetProduct.ToLower().Equals("core"))
            {
                templateValue = templateValue
                             .Replace("SetupMocks(InsertedParentOrganization.OrganizationId, $SYS_TARGET$Library);", "")
                             .Replace("SetupMocks(InsertedParentOrganization.OrganizationId, Mapper.Map<CoreRepositoryObject.Library>($SYS_TARGET$Library));", "")                             
                             .Replace("SetupMocks(InsertedOrganization.OrganizationId, Mapper.Map<CoreRepositoryObject.Library>($SYS_TARGET$Library));", "")
                             .Replace("SetupMocks(InsertedOrganization.OrganizationId, $SYS_TARGET$Library);", "")
                             .Replace("SetupMocks(newOrganization.OrganizationId, $SYS_VAR_TARGET$Library);", "")
                             .Replace("SetupMocks(inheritorOrganization.OrganizationId, $SYS_TARGET$Library);", "")
                             .Replace("$SYS_MOCKSTEMPLATE$", "");
            }
            else
            {
                templateValue = templateValue.Replace("$SYS_MOCKSTEMPLATE$", Template.Element("MockTemplate").Value);
            }
            file.Content = templateValue
                                .Replace("$SYS_INSERT_OPS_VALIDATIONS$", insertMembers.ToString())
                                .Replace("$SYS_UPDATE_OPS_VALIDATIONS$", updateMembers.ToString())
                                .Replace("$SYS_SVCOBJ_MEMBERS$", svcObjMembers.ToString())
                                .Replace("$SYS_VAR_TARGET$", GetVariableName(data.Target))
                                .Replace("$SYS_VAR_PLURAL_TARGET$", Util.Pluralize(GetVariableName(data.Target)))
                                .Replace("$SYS_TARGET$", data.Target)
                                .Replace("$SYS_PLURAL_TARGET$", Util.Pluralize(data.Target));

            file.Name = Template.Element("FileName").Value.Replace("$SYS_TARGET$", data.Target);
            file.Path = base.GetFileLocation();
            file.Type = CodeFileType.UnitTest;
            base.Files = new List<CodeFile>() { file };
            return file;
        }
Example #13
0
 public abstract CodeFile Build(InformationSchema data);