// use ordinals to speed up access to DataReader
 // links:
 //  docLink: http://sql2x.org/documentationLink/327451c3-64a8-4de8-b359-76742d634497
 // parameters:
 //  reader: IDataReader from SQLClient
 public void Populate(IDataReader reader, DefaultIssueWithFilterDataOrdinals ordinals)
 {
     if (!reader.IsDBNull(ordinals.DefaultIssueTypeRcd))
     {
         DefaultIssueTypeRcd = reader.GetString(ordinals.DefaultIssueTypeRcd);
     }
     if (!reader.IsDBNull(ordinals.DefaultIssueTypeName))
     {
         DefaultIssueTypeName = reader.GetString(ordinals.DefaultIssueTypeName);
     }
     if (!reader.IsDBNull(ordinals.DefaultIssueStatusRcd))
     {
         DefaultIssueStatusRcd = reader.GetString(ordinals.DefaultIssueStatusRcd);
     }
     if (!reader.IsDBNull(ordinals.DefaultIssueStatusName))
     {
         DefaultIssueStatusName = reader.GetString(ordinals.DefaultIssueStatusName);
     }
     if (!reader.IsDBNull(ordinals.DefaultErrorId))
     {
         DefaultErrorId = reader.GetGuid(ordinals.DefaultErrorId);
     }
     if (!reader.IsDBNull(ordinals.MethodName))
     {
         MethodName = reader.GetString(ordinals.MethodName);
     }
     if (!reader.IsDBNull(ordinals.IssueName))
     {
         IssueName = reader.GetString(ordinals.IssueName);
     }
     if (!reader.IsDBNull(ordinals.IssueDescription))
     {
         IssueDescription = reader.GetString(ordinals.IssueDescription);
     }
     if (!reader.IsDBNull(ordinals.StepsToReproduce))
     {
         StepsToReproduce = reader.GetString(ordinals.StepsToReproduce);
     }
     if (!reader.IsDBNull(ordinals.Link))
     {
         Link = reader.GetString(ordinals.Link);
     }
     if (!reader.IsDBNull(ordinals.DateTime))
     {
         DateTime = reader.GetDateTime(ordinals.DateTime);
     }
     if (!reader.IsDBNull(ordinals.DefaultIssueId))
     {
         DefaultIssueId = reader.GetGuid(ordinals.DefaultIssueId);
     }
 }
Exemple #2
0
        /// <summary>Get Default Issue</summary>
        /// <cardinality>Many</cardinality>
        public List <DefaultIssueWithFilterData> DefaultIssueWithFilter(
            System.String defaultIssueTypeRcd
            , System.String defaultIssueStatusRcd
            )
        {
            var    ret = new List <DefaultIssueWithFilterData>();
            string sql = @"
                select
                     di.default_issue_type_rcd
                    ,ditr.default_issue_type_name
                    ,di.default_issue_status_rcd
                    ,disr.default_issue_status_name
                    ,di.default_error_id
                    ,de.method_name as method_name
                    ,di.issue_name
                    ,di.issue_description
                    ,di.steps_to_reproduce
                    ,di.link
                    ,di.date_time
                    ,di.default_issue_id
                from default_issue as di
                inner join default_issue_type_ref as ditr on ditr.default_issue_type_rcd = di.default_issue_type_rcd
                inner join default_issue_status_ref as disr on disr.default_issue_status_rcd = di.default_issue_status_rcd
                left join default_error as de on de.default_error_id = di.default_error_id
                where 1=1
";

            Logging log = Logging.PerformanceTimeStart("DefaultIssueWithFilter");

            try {
                using (var conn = new SqlConnection(ConfigurationManager.AppSettings["Conn"])) {
                    conn.Open();
                    conn.BeginTransaction(IsolationLevel.ReadUncommitted).Commit();

                    using (var command = new SqlCommand(sql, conn)) {
                        if (defaultIssueTypeRcd != null)
                        {
                            command.Parameters.Add("@default_issue_type_rcd", SqlDbType.NVarChar).Value = defaultIssueTypeRcd;
                            sql += "               and di.default_issue_type_rcd = @default_issue_type_rcd\r\n";
                        }

                        if (defaultIssueStatusRcd != null)
                        {
                            command.Parameters.Add("@default_issue_status_rcd", SqlDbType.NVarChar).Value = defaultIssueStatusRcd;
                            sql += "               and di.default_issue_status_rcd = @default_issue_status_rcd\r\n";
                        }

                        sql += @"               order by     
	                                            di.date_time desc"    ;

                        command.CommandText = sql;
                        log.PerformanceTimePrepare(command);

                        IDataReader reader = command.ExecuteReader(CommandBehavior.SingleResult);
                        log.PerformanceTimeCheck();

                        var ordinals = new DefaultIssueWithFilterDataOrdinals(reader);
                        while (reader.Read())
                        {
                            var data = new DefaultIssueWithFilterData();
                            data.Populate(reader, ordinals);
                            ret.Add(data);
                        }

                        reader.Close();
                    }
                }
            } catch (Exception ex) {
                log.Error(ex);
            }
            return(ret);
        }