private void repositoryItemButtonEditCloseTicket_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
 {
     try
     {
         NICSQLTools.Data.Linq.vMSrv_Ticket_ByUser ticket = (NICSQLTools.Data.Linq.vMSrv_Ticket_ByUser)gridViewMain.GetRow(gridViewMain.FocusedRowHandle);
         if (ticket.CurrentDepartmentId != (short)Classes.Managers.UserManager.defaultInstance.User.MSrvDepartmentId)
         {
             MsgDlg.Show("Controled by another department", MsgDlg.MessageType.Info);
             return;
         }
         MSrv_TicketCloseDlg dlg = new MSrv_TicketCloseDlg(_elementRule, ticket);
         if (dlg.ShowDialog() == DialogResult.OK)
             ReloadGrid();
     }
     catch (Exception ex)
     {
         MsgDlg.Show(String.Format("Saving Failed ...{0}{1}", Environment.NewLine, ex.Message), MsgDlg.MessageType.Error, ex);
         Classes.Core.LogException(Logger, ex.InnerException, Classes.Core.ExceptionLevelEnum.General, Classes.Managers.UserManager.defaultInstance.User.UserId);
     }
 }
 private void btnSave_Click(object sender, EventArgs e)
 {
     if (!dxValidationProviderMain.Validate() || clbcReason.CheckedItemsCount == 0)
      {
         if (clbcReason.CheckedItemsCount == 0)
             MsgDlg.ShowAlert("Please select ticket reason", MsgDlg.MessageType.Warn, this);
         return;
     }
     try
     {
         int ticketVisitId = Convert.ToInt32(_adp.NewId());
         int ticketId = Convert.ToInt32(lueTicket.EditValue);
         int technicianId = Convert.ToInt32(lueTechnicianId.EditValue);
         string comment = string.Empty;
         if (tbOpenComment.EditValue != null)
             comment = tbOpenComment.EditValue.ToString();
         DateTime serverDatetime = Classes.Managers.DataManager.defaultInstance.ServerDateTime;
         // Insert Visit
         int effected = _adp.Insert(ticketVisitId, ticketId, technicianId, deStartDate.DateTime, deEndDate.DateTime, comment
             , Classes.Managers.UserManager.defaultInstance.User.UserId, serverDatetime, (int?)lueDamage.EditValue);
         if (effected <= 0)
         {
             MsgDlg.Show("No Data Saved", MsgDlg.MessageType.Error);
             return;
         }
         // Insert Reasons
         string reasonMsg = string.Empty;
         foreach (object item in clbcReason.CheckedItems)
         {
             NICSQLTools.Data.dsMSrc.MSrv_TypeRow ticketType = (NICSQLTools.Data.dsMSrc.MSrv_TypeRow)((DataRowView)item).Row;
             _adpTicketVisitType.Insert(ticketVisitId, ticketType.MSrvTypeId, Classes.Managers.UserManager.defaultInstance.User.UserId, serverDatetime);
             reasonMsg += ticketType.MSrvType + ", ";
         }
         reasonMsg = reasonMsg.Substring(0, reasonMsg.Length - 2);
         //Add Action
         Classes.MSrv.CreateAction(Classes.MSrvType.ActionType.Visit_Added, ticketId, "Visit Added with reasons (" + reasonMsg + ") At " + deEndDate.DateTime);
         // Insert Parts
         foreach (var item in dsMSrc.MSrv_TicketVisitPart)
         {
             item.TicketVisitId = ticketVisitId;
             item.EndEdit();}
         mSrv_TicketVisitPartTableAdapter.Update(dsMSrc.MSrv_TicketVisitPart);
         MsgDlg.ShowAlert("Data Saved ..", MsgDlg.MessageType.Success, this);
         ResetDlg();
         if (RequestRefresh != null)
             RequestRefresh();
         if (MsgDlg.Show("Do you want to close ticket ?", MsgDlg.MessageType.Question) == DialogResult.Yes)
         {
             NICSQLTools.Data.Linq.vMSrv_Ticket_ByUser ticket = (from q in _dsLinq.vMSrv_Ticket_ByUsers where q.TicketId == ticketId select q).ToArray()[0];
             MSrv_TicketCloseDlg dlg = new MSrv_TicketCloseDlg(null, ticket);
             dlg.ShowDialog();
             Close();
         }
         if (_closeAfterSave)Close();
     }
     catch (Exception ex)
     {
         MsgDlg.Show(ex.Message, MsgDlg.MessageType.Error, ex);
         Classes.Core.LogException(Logger, ex, Classes.Core.ExceptionLevelEnum.General, Classes.Managers.UserManager.defaultInstance.User.UserId);
     }
 }