Example #1
0
 /// <summary>
 /// Boiler-plate code to update the Issue object based on 
 /// the given exported row.
 /// </summary>
 /// <param name="issue"></param>
 /// <param name="exportedRow"></param>
 private static void UpdateIssue(Issue issue, DataRow exportedRow)
 {
     DateTime dt;
     // This is the coolest code ever
     issue.PRN = exportedRow.Field<int>("PRN");
     issue.RequestType = exportedRow["Request Type"].ToString();
     issue.Title = exportedRow["Title"].ToString();
     issue.AssignedTo = exportedRow["Assigned To"].ToString();
     issue.ReportedBy = exportedRow["Reported By"].ToString();
     issue.Status = exportedRow["Status"].ToString();
     issue.Priority = exportedRow.Field<int>("Priority");
     issue.Severity = exportedRow["Severity"].ToString();
     issue.DateReported = DateTime.Parse(exportedRow["Date Reported"].ToString());
     if (DateTime.TryParse(exportedRow["Fix Date"].ToString(), out dt))
         issue.DateFixed = DateTime.Parse(exportedRow["Fix Date"].ToString());
     if (DateTime.TryParse(exportedRow["Close Date"].ToString(), out dt))
         issue.DateClosed = DateTime.Parse(exportedRow["Close Date"].ToString());
     issue.AssignedToProject = exportedRow["Assigned to Project"].ToString();
     issue.ReportedInVersion = exportedRow["Reported In Version"].ToString();
     issue.CodeReviewed = exportedRow["Code Reviewed"].ToString();
     issue.Product = exportedRow["Product"].ToString();
     issue.Component = exportedRow["Component"].ToString();
 }
Example #2
0
 partial void DeleteIssue(Issue instance);
Example #3
0
 partial void UpdateIssue(Issue instance);
Example #4
0
 partial void InsertIssue(Issue instance);
Example #5
0
        /// <summary>
        /// Import the given history changes into SQL.
        /// </summary>
        /// <param name="history"></param>
        private void ImportHistory(DataTable history)
        {
            try
            {
                // Get a comma-delimited list of RPNs for log statement
                List<string> prns = new List<string>();
                foreach (DataRow row in history.Rows)
                {
                    prns.Add(row["PRN"].ToString());
                }

                logger.Debug("Importing the following " + history.Rows.Count + " changed issues: " + string.Join(",", prns.ToArray()));

                // Update and add issues
                using (ETCMDataContext etcm = new ETCMDataContext())
                {
                    Dictionary<int, Issue> newIssues = new Dictionary<int, Issue>();

                    // Loop through the changes
                    foreach (DataRow change in history.Rows)
                    {
                        int changedPRN = change.Field<int>("PRN");

                        Issue existingIssue = (from i in etcm.Issues
                                            where i.PRN == changedPRN
                                            select i).SingleOrDefault();

                        Issue issue = existingIssue;
                        if (existingIssue == null)
                        {
                            // This is a new issue, handle case of update(s) to new issue
                            if (!newIssues.TryGetValue(changedPRN, out issue))
                            {
                                issue = new Issue();
                                newIssues.Add(changedPRN, issue);
                            }
                        }

                        UpdateIssue(issue, change);
                    }
                    etcm.Issues.InsertAllOnSubmit(newIssues.Values);
                    etcm.SubmitChanges();
                }

                logger.Debug("Done importing changed issues");
            }
            catch (Exception e)
            {
                logger.Error("Error imported changes into ETCM database", e);
                throw e;
            }
        }