public static string BuildDtoTemplate(string dtoName, List <PropertyComponent> propertyComponents)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendLine("export class " + dtoName + " {");
            foreach (PropertyComponent propertyComponent in propertyComponents.Where(x => !x.IsNamespace))
            {
                stringBuilder.Append("    " + PropertyHelpers.FirstCharToLowerCase(propertyComponent.Name) + ": ");

                if (propertyComponent.IsArray)
                {
                    string outputType = "Dto";

                    if (propertyComponent.PropertyType == PropertyType.FullOutput)
                    {
                        stringBuilder.Insert(0,
                                             "import { " + propertyComponent.ArrayType + "Dto" +
                                             " } from '../../../services/" +
                                             PropertyHelpers.FirstCharToLowerCase(propertyComponent.ArrayType) + "/dtos/" +
                                             propertyComponent.ArrayType + "Dto'" + Environment.NewLine);
                    }
                    else if (propertyComponent.PropertyType == PropertyType.PartOutput)
                    {
                        stringBuilder.Insert(0,
                                             "import { " + propertyComponent.ArrayType + "Dto" +
                                             " } from '../../../services/" +
                                             PropertyHelpers.FirstCharToLowerCase(propertyComponent.ArrayType) + "/dtos/" +
                                             propertyComponent.ArrayType + "Dto'" + Environment.NewLine);
                    }


                    stringBuilder.AppendLine("Array<" + propertyComponent.ArrayType + outputType + ">;");
                }
                else
                {
                    switch (propertyComponent.PropertyType)
                    {
                    case PropertyType.String:
                        stringBuilder.AppendLine("string;");
                        break;

                    case PropertyType.Number:
                        stringBuilder.AppendLine("number;");
                        break;

                    case PropertyType.Date:
                        stringBuilder.AppendLine("Date;");
                        break;

                    case PropertyType.FullOutput:
                        stringBuilder.AppendLine(propertyComponent.Name + "Dto;");
                        stringBuilder.Insert(0,
                                             "import { " + propertyComponent.Name + "Dto" +
                                             " } from '../../../services/" +
                                             PropertyHelpers.FirstCharToLowerCase(propertyComponent.Name) + "/dtos/" +
                                             propertyComponent.Name + "Dto'" + Environment.NewLine);
                        break;

                    case PropertyType.PartOutput:
                        stringBuilder.AppendLine(propertyComponent.Name + "Dto;");
                        stringBuilder.Insert(0,
                                             "import { " + propertyComponent.Name + "Dto" +
                                             " } from '../../../services/" +
                                             PropertyHelpers.FirstCharToLowerCase(propertyComponent.Name) + "/dtos/" +
                                             propertyComponent.Name + "Dto';" + Environment.NewLine);
                        break;

                    case PropertyType.Any:
                        stringBuilder.AppendLine("any;");
                        break;
                    }
                }
            }

            stringBuilder.Append("}");
            return(stringBuilder.ToString());
        }