Пример #1
0
        private string ReplacedLine(Context context, SiteSettings ss, DataRow dataRow)
        {
            var line = Line;

            switch (ss.ReferenceType)
            {
            case "Issues":
                var issueModel = new IssueModel(
                    context: context, ss: ss, dataRow: dataRow);
                ss.IncludedColumns(Line).ForEach(column =>
                {
                    switch (column.ColumnName)
                    {
                    case "Title":
                        line = line.Replace("[Title]", dataRow.String("ItemTitle"));
                        break;

                    case "SiteId":
                        line = line.Replace(
                            "[SiteId]",
                            issueModel.SiteId.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "UpdatedTime":
                        line = line.Replace(
                            "[UpdatedTime]",
                            issueModel.UpdatedTime.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "IssueId":
                        line = line.Replace(
                            "[IssueId]",
                            issueModel.IssueId.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Ver":
                        line = line.Replace(
                            "[Ver]",
                            issueModel.Ver.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Body":
                        line = line.Replace(
                            "[Body]",
                            issueModel.Body.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "StartTime":
                        line = line.Replace(
                            "[StartTime]",
                            issueModel.StartTime.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "CompletionTime":
                        line = line.Replace(
                            "[CompletionTime]",
                            issueModel.CompletionTime.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "WorkValue":
                        line = line.Replace(
                            "[WorkValue]",
                            issueModel.WorkValue.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "ProgressRate":
                        line = line.Replace(
                            "[ProgressRate]",
                            issueModel.ProgressRate.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Status":
                        line = line.Replace(
                            "[Status]",
                            issueModel.Status.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Manager":
                        line = line.Replace(
                            "[Manager]",
                            issueModel.Manager.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Owner":
                        line = line.Replace(
                            "[Owner]",
                            issueModel.Owner.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Locked":
                        line = line.Replace(
                            "[Locked]",
                            issueModel.Locked.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Comments":
                        line = line.Replace(
                            "[Comments]",
                            issueModel.Comments.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Creator":
                        line = line.Replace(
                            "[Creator]",
                            issueModel.Creator.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Updator":
                        line = line.Replace(
                            "[Updator]",
                            issueModel.Updator.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "CreatedTime":
                        line = line.Replace(
                            "[CreatedTime]",
                            issueModel.CreatedTime.ToExport(
                                context: context,
                                column: column));
                        break;

                    default:
                        switch (Def.ExtendedColumnTypes.Get(column.Name))
                        {
                        case "Class":
                            line = line.Replace(
                                $"[{column.Name}]",
                                issueModel.Class(column: column).ToExport(
                                    context: context,
                                    column: column));
                            break;

                        case "Num":
                            line = line.Replace(
                                $"[{column.Name}]",
                                issueModel.Num(column: column).ToExport(
                                    context: context,
                                    column: column));
                            break;

                        case "Date":
                            line = line.Replace(
                                $"[{column.Name}]",
                                issueModel.Date(column: column).ToExport(
                                    context: context,
                                    column: column));
                            break;

                        case "Description":
                            line = line.Replace(
                                $"[{column.Name}]",
                                issueModel.Description(column: column).ToExport(
                                    context: context,
                                    column: column));
                            break;

                        case "Check":
                            line = line.Replace(
                                $"[{column.Name}]",
                                issueModel.Check(column: column).ToExport(
                                    context: context,
                                    column: column));
                            break;
                        }
                        break;
                    }
                });
                break;

            case "Results":
                var resultModel = new ResultModel(
                    context: context, ss: ss, dataRow: dataRow);
                ss.IncludedColumns(Line).ForEach(column =>
                {
                    switch (column.ColumnName)
                    {
                    case "Title":
                        line = line.Replace("[Title]", dataRow.String("ItemTitle"));
                        break;

                    case "SiteId":
                        line = line.Replace(
                            "[SiteId]",
                            resultModel.SiteId.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "UpdatedTime":
                        line = line.Replace(
                            "[UpdatedTime]",
                            resultModel.UpdatedTime.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "ResultId":
                        line = line.Replace(
                            "[ResultId]",
                            resultModel.ResultId.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Ver":
                        line = line.Replace(
                            "[Ver]",
                            resultModel.Ver.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Body":
                        line = line.Replace(
                            "[Body]",
                            resultModel.Body.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Status":
                        line = line.Replace(
                            "[Status]",
                            resultModel.Status.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Manager":
                        line = line.Replace(
                            "[Manager]",
                            resultModel.Manager.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Owner":
                        line = line.Replace(
                            "[Owner]",
                            resultModel.Owner.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Locked":
                        line = line.Replace(
                            "[Locked]",
                            resultModel.Locked.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Comments":
                        line = line.Replace(
                            "[Comments]",
                            resultModel.Comments.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Creator":
                        line = line.Replace(
                            "[Creator]",
                            resultModel.Creator.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "Updator":
                        line = line.Replace(
                            "[Updator]",
                            resultModel.Updator.ToExport(
                                context: context,
                                column: column));
                        break;

                    case "CreatedTime":
                        line = line.Replace(
                            "[CreatedTime]",
                            resultModel.CreatedTime.ToExport(
                                context: context,
                                column: column));
                        break;

                    default:
                        switch (Def.ExtendedColumnTypes.Get(column.Name))
                        {
                        case "Class":
                            line = line.Replace(
                                $"[{column.Name}]",
                                resultModel.Class(column: column).ToExport(
                                    context: context,
                                    column: column));
                            break;

                        case "Num":
                            line = line.Replace(
                                $"[{column.Name}]",
                                resultModel.Num(column: column).ToExport(
                                    context: context,
                                    column: column));
                            break;

                        case "Date":
                            line = line.Replace(
                                $"[{column.Name}]",
                                resultModel.Date(column: column).ToExport(
                                    context: context,
                                    column: column));
                            break;

                        case "Description":
                            line = line.Replace(
                                $"[{column.Name}]",
                                resultModel.Description(column: column).ToExport(
                                    context: context,
                                    column: column));
                            break;

                        case "Check":
                            line = line.Replace(
                                $"[{column.Name}]",
                                resultModel.Check(column: column).ToExport(
                                    context: context,
                                    column: column));
                            break;
                        }
                        break;
                    }
                });
                break;
            }
            return(line);
        }