/// <summary>
        /// Dump an error into the db.
        /// </summary>
        /// <param name="e">An <see cref="Exception"/> object.</param>
        public static void ProcessError(Exception e)
        {
            int uid_ = 0;

            using (ENGINEERINGDataSetTableAdapters.QueriesTableAdapter q_ =
                       new ENGINEERINGDataSetTableAdapters.QueriesTableAdapter()) {
                uid_ = Convert.ToInt32(q_.UserQuery(System.Environment.UserName));
                string[] stack    = e.StackTrace.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
                string   offender = stack[stack.Length - 1].Trim();
                int      len      = offender.Length > 255 ? 255 : offender.Length;
                string   msg_     = string.Format(@"Error `{0}' occurred {1}.", e.Message, offender);
                int      aff      = q_.InsertError(
                    DateTime.Now,
                    uid_,
                    e.HResult,
                    e.Message,
                    offender.Substring(0, len),
                    false,
                    @"CONVERT PROGRAMS");
                if (aff > 0)
                {
                    msg_ += "\n" + @"This error has been reported.";
                    System.Windows.Forms.MessageBox.Show(msg_, @"Redbrick Error",
                                                         System.Windows.Forms.MessageBoxButtons.OK,
                                                         System.Windows.Forms.MessageBoxIcon.Error);
                }
                else
                {
                    msg_ += "\n" + @"This error failed to be reported.";
                    System.Windows.Forms.MessageBox.Show(msg_, @"Redbrick Error",
                                                         System.Windows.Forms.MessageBoxButtons.OK,
                                                         System.Windows.Forms.MessageBoxIcon.Error);
                }
            }
        }
Пример #2
0
        private void MachinePriority_FormClosing(object sender, FormClosingEventArgs e)
        {
            ENGINEERINGDataSetTableAdapters.QueriesTableAdapter qta = new ENGINEERINGDataSetTableAdapters.QueriesTableAdapter();
            int user = (int)qta.GetCurrentAuthor(Environment.UserName);

            if (qta.IncrementOdometer(11, user) < 1)
            {
                qta.CreateOdometerEntry(1, 11, user);
            }
            Properties.Settings.Default.FormSize     = Size;
            Properties.Settings.Default.FormLocation = Location;
            Properties.Settings.Default.Save();
        }