コード例 #1
0
ファイル: Ticket.cs プロジェクト: evgeniynet/DataLayer
 public TicketAssignees(Guid OrgID, int departmentId, int ticketId, Ticket.TicketAssignmentType assignmentType)
 {
     DataTable dtAssignees = Ticket.SelectTicketAssignees(OrgID, departmentId, ticketId, assignmentType, true, true);
     foreach (DataRow drAssignee in dtAssignees.Rows)
         List.Add(new TicketAssignee(drAssignee.IsNull("UserId") ? 0 : (int)drAssignee["UserId"], drAssignee["name"].ToString()));
 }
コード例 #2
0
ファイル: Knowledgebase.cs プロジェクト: evgeniynet/APIBeta
        public static void InputTime(ApiUser User, int TktId, int TaskTypeId, decimal Hours, int HoursOffset, string NoteText)
        {
            Config      _cfg    = new Config(User.OrganizationId, User.DepartmentId);
            CustomNames _cNames = CustomNames.GetCustomNames(User.OrganizationId, User.DepartmentId);

            if (!_cfg.TimeTracking)
            {
                throw new HttpError("Time Tracking is not enabled for this instance.");
            }

            int    _taskTypeId   = 0;
            string _taskTypeName = string.Empty;

            if (TaskTypeId == 0)
            {
                DataTable _dtTaskTypes = bigWebApps.bigWebDesk.Data.TaskType.SelectTicketAssignedTaskTypes(User.OrganizationId, User.DepartmentId, User.UserId, TktId);

                if (_dtTaskTypes.Rows.Count == 0)
                {
                    throw new HttpError("No Assigned Task Types found for this " + _cNames.Ticket.fullSingular + ".");
                }

                _taskTypeId   = (int)_dtTaskTypes.Rows[0]["ttID"];
                _taskTypeName = _dtTaskTypes.Rows[0]["TaskTypeName"].ToString();
            }
            else
            {
                _taskTypeId = TaskTypeId;
                DataRow _rowTaskType = bigWebApps.bigWebDesk.Data.TaskType.SelectTaskType(User.OrganizationId, User.DepartmentId, _taskTypeId);

                if (_rowTaskType == null)
                {
                    throw new HttpError("No Task Types found for TaskTypeId=" + _taskTypeId.ToString() + ".");
                }
                _taskTypeName = _rowTaskType["TaskTypeName"].ToString();
            }

            string _hoursFull = "";

            if (Hours >= 1)
            {
                _hoursFull = ((int)Hours).ToString();
                if ((int)Hours == 1)
                {
                    _hoursFull += " hour ";
                }
                else
                {
                    _hoursFull += " hours ";
                }
            }

            string _minutes = string.Format("{0:00}", Hours * 60 % 60).TrimStart('0');

            if (!string.IsNullOrEmpty(_minutes))
            {
                _hoursFull += _minutes;
                if (_minutes == "1")
                {
                    _hoursFull += " minute";
                }
                else
                {
                    _hoursFull += " minutes";
                }
            }

            if (!string.IsNullOrEmpty(_hoursFull))
            {
                _hoursFull = "(" + _hoursFull.Trim() + ")";
            }

            var    _tktOld          = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId);
            string sysGeneratedText = User.FullName;
            int    _timeLogId       = 0;

            if (Hours > 0)
            {
                sysGeneratedText = " logged " + Hours.ToString("0.00") + " hours " + _hoursFull + " as " + _taskTypeName + " task type.";
                decimal _hRate = Logins.SelectTechHourlyRate(User.OrganizationId, User.DepartmentId, User.UserId, _taskTypeId);
                _timeLogId = bigWebApps.bigWebDesk.Data.Tickets.InsertTime(User.OrganizationId, User.DepartmentId, TktId, User.UserId, DateTime.UtcNow, Hours, NoteText, _hRate, DateTime.UtcNow.AddHours(-(double)Hours), DateTime.UtcNow, _taskTypeId, 0, DateTime.UtcNow, User.UserId, HoursOffset, true);
            }
            InsertResponse(User.OrganizationId, User.DepartmentId, TktId, User.UserId, false, _tktOld.UserId == User.UserId, false, NoteText, sysGeneratedText, _timeLogId, string.Empty, false);
            var _tktNew = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId, true);

            foreach (TicketAssignee _ta in _tktNew.Users)
            {
                _ta.SendResponse = true;
            }
            foreach (TicketAssignee _ta in _tktNew.Technicians)
            {
                _ta.SendResponse = true;
            }
            NotificationRules.RaiseNotificationEvent(User.OrganizationId, User.DepartmentId, User.UserId, NotificationRules.TicketEvent.TicketResponse, _tktNew, _tktOld, 0, DateTime.MinValue, null);
        }
コード例 #3
0
ファイル: Ticket.cs プロジェクト: evgeniynet/DataLayer
 public TicketAssignees(int departmentId, int ticketId, Ticket.TicketAssignmentType assignmentType)
     : this(Guid.Empty, departmentId, ticketId, assignmentType)
 {
 }
コード例 #4
0
ファイル: Ticket.cs プロジェクト: evgeniynet/APIBeta
        public static void InputTime(ApiUser User, int TktId, int TaskTypeId, decimal Hours, int HoursOffset, string NoteText)
        {
            Config _cfg = new Config(User.OrganizationId, User.DepartmentId);
            CustomNames _cNames = CustomNames.GetCustomNames(User.OrganizationId, User.DepartmentId);

            if (!_cfg.TimeTracking) throw new HttpError("Time Tracking is not enabled for this instance.");

            int _taskTypeId = 0;
            string _taskTypeName = string.Empty;

            if (TaskTypeId == 0)
            {
                DataTable _dtTaskTypes = bigWebApps.bigWebDesk.Data.TaskType.SelectTicketAssignedTaskTypes(User.OrganizationId, User.DepartmentId, User.UserId, TktId);

                if (_dtTaskTypes.Rows.Count == 0)
                    throw new HttpError("No Assigned Task Types found for this " + _cNames.Ticket.fullSingular + ".");

                _taskTypeId = (int) _dtTaskTypes.Rows[0]["ttID"];
                _taskTypeName = _dtTaskTypes.Rows[0]["TaskTypeName"].ToString();
            }
            else
            {
                _taskTypeId = TaskTypeId;
                DataRow _rowTaskType = bigWebApps.bigWebDesk.Data.TaskType.SelectTaskType(User.OrganizationId, User.DepartmentId, _taskTypeId);

                if (_rowTaskType == null)
                    throw new HttpError("No Task Types found for TaskTypeId="+ _taskTypeId.ToString() + ".");
                _taskTypeName = _rowTaskType["TaskTypeName"].ToString();
            }

            string _hoursFull = "";

            if (Hours >= 1)
            {
                _hoursFull = ((int)Hours).ToString();
                if ((int)Hours == 1) _hoursFull += " hour ";
                else _hoursFull += " hours ";
            }

            string _minutes = string.Format("{0:00}", Hours * 60 % 60).TrimStart('0');

            if (!string.IsNullOrEmpty(_minutes))
            {
                _hoursFull += _minutes;
                if (_minutes == "1") _hoursFull += " minute";
                else _hoursFull += " minutes";
            }

            if (!string.IsNullOrEmpty(_hoursFull)) _hoursFull = "(" + _hoursFull.Trim() + ")";

            var _tktOld = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId);
            string sysGeneratedText = User.FullName;
            int _timeLogId = 0;

            if (Hours > 0)
            {
                sysGeneratedText = " logged " + Hours.ToString("0.00") + " hours " + _hoursFull + " as " + _taskTypeName + " task type.";
                decimal _hRate = Logins.SelectTechHourlyRate(User.OrganizationId, User.DepartmentId, User.UserId, _taskTypeId);
                _timeLogId = bigWebApps.bigWebDesk.Data.Tickets.InsertTime(User.OrganizationId, User.DepartmentId, TktId, User.UserId, DateTime.UtcNow, Hours, NoteText, _hRate, DateTime.UtcNow.AddHours(-(double)Hours), DateTime.UtcNow, _taskTypeId, 0, DateTime.UtcNow, User.UserId, HoursOffset, true);
            }
            InsertResponse(User.OrganizationId, User.DepartmentId, TktId, User.UserId, false, _tktOld.UserId == User.UserId, false, NoteText, sysGeneratedText, _timeLogId, string.Empty, false);
            var _tktNew = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId, true);
            foreach (TicketAssignee _ta in _tktNew.Users) _ta.SendResponse = true;
            foreach (TicketAssignee _ta in _tktNew.Technicians) _ta.SendResponse = true;
            NotificationRules.RaiseNotificationEvent(User.OrganizationId, User.DepartmentId, User.UserId, NotificationRules.TicketEvent.TicketResponse, _tktNew, _tktOld, 0, DateTime.MinValue, null);
        }
コード例 #5
0
ファイル: Ticket.cs プロジェクト: evgeniynet/APIBeta
        public static void OnHold(ApiUser User, int TktId, string NoteText)
        {
            Config _cfg = new Config(User.OrganizationId, User.DepartmentId);
            CustomNames _cNames = CustomNames.GetCustomNames(User.OrganizationId, User.DepartmentId);

            if (!_cfg.OnHoldStatus) throw new HttpError("On Hold " + _cNames.Ticket.fullSingular + " statuses are not enabled for this instance.");

            var _tktOld = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId);
            InsertResponse(User.OrganizationId, User.DepartmentId, TktId, User.UserId, false, false, true, NoteText, string.Empty, 0, string.Empty, false);
            NotificationRules.RaiseNotificationEvent(User.OrganizationId, User.DepartmentId, User.UserId, NotificationRules.TicketEvent.PlaceOnHoldTicket, new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId, true), _tktOld, 0, DateTime.MinValue, null);
        }
コード例 #6
0
ファイル: Ticket.cs プロジェクト: evgeniynet/DataLayer
 public static void AttachAlternateAssignee(int departmentId, int ticketId, int assigneeId, Ticket.TicketAssignmentType assignmentType)
 {
     AttachAlternateAssignee(departmentId, ticketId, assigneeId, assignmentType, true);
 }
コード例 #7
0
 public static int RaiseNotificationEvent(int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt, Ticket oldTkt, FileItem[] tktFiles)
 {
     return RaiseNotificationEvent(Guid.Empty, DeptID, UserId, tktEvent, tkt, oldTkt, tktFiles);
 }
コード例 #8
0
ファイル: Ticket.cs プロジェクト: evgeniynet/APIBeta
 public static void Response(ApiUser User, int TktId, string NoteText)
 {
     var _tktOld = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId);
     string _toReceipts = string.Empty;
     List<Models.TicketAssignee> _tktUsers = Models.TicketAssignments.TicketUsers(User.OrganizationId, User.DepartmentId, TktId);
     foreach (Models.TicketAssignee _ta in _tktUsers)
     {
         if (_ta.UserId == User.UserId) continue;
         _toReceipts += _ta.UserFullName + ", ";
     }
     List<Models.TicketAssignee> _tktTechs = Models.TicketAssignments.TicketTechnicians(User.OrganizationId, User.DepartmentId, TktId);
     foreach (Models.TicketAssignee _ta in _tktTechs)
     {
         if (_ta.UserId == User.UserId) continue;
         _toReceipts += _ta.UserFullName + ", ";
     }
     InsertResponse(User.OrganizationId, User.DepartmentId, TktId, User.UserId, false, _tktOld.UserId == User.UserId, false, NoteText, string.Empty, 0, _toReceipts, false);
     var _tktNew = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId, true);
     foreach (TicketAssignee _usrTkt in _tktNew.Users) _usrTkt.SendResponse = true;
     foreach (TicketAssignee _usrTkt in _tktNew.Technicians) _usrTkt.SendResponse = true;
     NotificationRules.RaiseNotificationEvent(User.OrganizationId, User.DepartmentId, User.UserId, NotificationRules.TicketEvent.TicketResponse, _tktNew, null, 0, DateTime.MinValue, null);
 }
コード例 #9
0
ファイル: Ticket.cs プロジェクト: evgeniynet/APIBeta
        public static void TransferToTech(ApiUser User, int TktId, int TechId, string NoteText, bool KeepTechAttached)
        {
            DataRow _row = Logins.SelectUserDetails(User.OrganizationId, User.DepartmentId, TechId);
            if (_row == null) throw new HttpError("The user account Id=" + TechId.ToString() + " is not associated with this Department.");

            string techFullName = _row["FirstName"].ToString() + " " + _row["LastName"].ToString();
            CustomNames _cNames = CustomNames.GetCustomNames(User.OrganizationId, User.DepartmentId);

            if ((int)_row["UserType_Id"] != 2 && (int)_row["UserType_Id"] != 3 && (int)_row["UserType_Id"] != 4) throw new HttpError("User " + techFullName + " is not " + _cNames.Technician.FullSingular + " or Administrator or Queue.");

            var _tktOld = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId);

            UpdateTechnician(User.OrganizationId, User.DepartmentId, TktId, TechId, KeepTechAttached);
            if (_tktOld.TicketStatus == Status.OnHold) UpdateStatus(User.OrganizationId, User.DepartmentId, TktId, Status.Open);
            string sysGeneratedText = User.FullName;
            if (TechId == User.UserId)
                sysGeneratedText += " picked up this " + _cNames.Ticket.FullSingular + " from " + _tktOld.TechnicianFirstName + " " + _tktOld.TechnicianLastName;
            else
                sysGeneratedText += " transfered this " + _cNames.Ticket.FullSingular + " to " + techFullName + ".";
            sysGeneratedText += "<br>This " + _cNames.Ticket.FullSingular + " was transferred by choosing route by " + _cNames.Technician.FullSingular + ".";
            if (_tktOld.TicketStatus == Status.OnHold) sysGeneratedText += "<br>This " + _cNames.Ticket.FullSingular + " was set back to \"Open\" staus from \"On Hold\" status.";
            InsertLogMessage(User.OrganizationId, User.DepartmentId, TktId, User.UserId, "Transfer", NoteText, sysGeneratedText);
            var _tktNew = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId, true);
            NotificationRules.RaiseNotificationEvent(User.OrganizationId, User.DepartmentId, User.UserId, NotificationRules.TicketEvent.TransferTicket, _tktNew, _tktOld, 0, DateTime.MinValue, null);
        }
コード例 #10
0
ファイル: Ticket.cs プロジェクト: evgeniynet/APIBeta
        public static void PickUp(ApiUser User, int TktId, string NoteText)
        {
            var _tktOld = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId);

            if (_tktOld.TechnicianType == Logins.UserType.Queue) //Queue PickUp
            {
                UpdateTechnician(User.OrganizationId, User.DepartmentId, TktId, User.UserId, false);
                InsertLogMessage(User.OrganizationId, User.DepartmentId, TktId, User.UserId, "Queue Pickup", NoteText, "Picked Up from " + _tktOld.TechnicianFirstName + " " + _tktOld.TechnicianLastName + " by " + User.FullName);
                var _tktNew = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId, true);
                NotificationRules.RaiseNotificationEvent(User.OrganizationId, User.DepartmentId, User.UserId, NotificationRules.TicketEvent.PickUpTicket, _tktNew, _tktOld, 0, DateTime.MinValue, null);
            }
            else
            {
                Ticket.UpdateTechnician(User.OrganizationId, User.DepartmentId, TktId, User.UserId, true);
                if (_tktOld.TicketStatus == Status.OnHold) Ticket.UpdateStatus(User.OrganizationId, User.DepartmentId, TktId, Ticket.Status.Open);
                CustomNames _cNames = CustomNames.GetCustomNames(User.OrganizationId, User.DepartmentId);
                string sysGeneratedText = User.FullName + " picked up this " + _cNames.Ticket.FullSingular + " from " + _tktOld.TechnicianFirstName + " " + _tktOld.TechnicianLastName;
                sysGeneratedText += "<br>This " + _cNames.Ticket.FullSingular + " was transferred by choosing route by " + _cNames.Technician.FullSingular + ".";
                if (_tktOld.TicketStatus == Status.OnHold) sysGeneratedText += "<br>This " + _cNames.Ticket.FullSingular + " was set back to \"Open\" staus from \"On Hold\" status.";
                InsertLogMessage(User.OrganizationId, User.DepartmentId, TktId, User.UserId, "Transfer", NoteText, sysGeneratedText);
                var _tktNew = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId, true);
                NotificationRules.RaiseNotificationEvent(User.OrganizationId, User.DepartmentId, User.UserId, NotificationRules.TicketEvent.TransferTicket, _tktNew, _tktOld, 0, DateTime.MinValue, null);
            }
        }
コード例 #11
0
ファイル: Ticket.cs プロジェクト: evgeniynet/APIBeta
        public static void ReOpen(ApiUser User, int TktId, string NoteText)
        {
            CustomNames _cNames = CustomNames.GetCustomNames(User.OrganizationId, User.DepartmentId);
            Ticket _tktOld = new Ticket(User.OrganizationId, User.DepartmentId, TktId, User.InstanceId);

            if (_tktOld.TicketStatus != Ticket.Status.Closed) throw new HttpError(_cNames.Ticket.FullSingular + " is not Closed now to ReOpen it.");
            InsertResponse(User.OrganizationId, User.DepartmentId, TktId, User.UserId, false, _tktOld.UserId == User.UserId, false, NoteText, string.Empty, 0, string.Empty, true);
            var _tktNew = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId, true);
            foreach (TicketAssignee _ta in _tktNew.Users) _ta.SendResponse = true;
            foreach (TicketAssignee _ta in _tktNew.Technicians) _ta.SendResponse = true;
            NotificationRules.RaiseNotificationEvent(User.OrganizationId, User.DepartmentId, User.UserId, NotificationRules.TicketEvent.ReOpenTicket, _tktNew, null, 0, DateTime.MinValue, null);
        }
コード例 #12
0
 public static int RaiseNotificationEvent(Guid OrgId, int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt)
 {
     return RaiseNotificationEvent(OrgId, DeptID, UserId, tktEvent, tkt, null, 0, DateTime.MinValue, null);
 }
コード例 #13
0
 public static int RaiseNotificationEvent(Guid OrgID, int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt, Ticket oldTkt, int ScheduledTicketId, DateTime RunTime, FileItem[] tktFiles)
 {
     XmlSerializer _serializer = new XmlSerializer(typeof(Ticket));
     string _objStateNew = string.Empty;
     if (tkt != null)
     {
         TextWriter _stream = new StringWriter();
         _serializer.Serialize(_stream, tkt);
         _objStateNew = _stream.ToString();
         _stream.Close();
     }
     string _objStateOld = string.Empty;
     if (oldTkt != null)
     {
         TextWriter _stream = new StringWriter();
         _serializer.Serialize(_stream, oldTkt);
         _objStateOld = _stream.ToString();
         _stream.Close();
     }
     return NotificationEventsQueue.InsertEvent(OrgID, DeptID, UserId, tktEvent, _objStateNew, _objStateOld, tktFiles, ScheduledTicketId, RunTime);
 }
コード例 #14
0
 public static int RaiseNotificationEvent(Guid OrgId, int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt, Ticket oldTkt, FileItem[] tktFiles)
 {
     return RaiseNotificationEvent(OrgId, DeptID, UserId, tktEvent, tkt, oldTkt, 0, DateTime.MinValue, tktFiles);
 }
コード例 #15
0
ファイル: Ticket.cs プロジェクト: evgeniynet/DataLayer
 public TicketAssignees(Guid OrgID, int departmentId, int ticketId, Ticket.TicketAssignmentType assignmentType, int primaryUserId)
     : this(OrgID, departmentId, ticketId, assignmentType)
 {
     if (primaryUserId > 0)
         this.SetPrimary(primaryUserId);
 }
コード例 #16
0
ファイル: Ticket.cs プロジェクト: evgeniynet/APIBeta
        public static void Close(ApiUser User, int TktId, string NoteText, bool SendNotifications, bool resolved, bool confirmed, string confirm_note)
        {
            Config _cfg = new Config(User.OrganizationId, User.DepartmentId);
            CustomNames _cNames = CustomNames.GetCustomNames(User.OrganizationId, User.DepartmentId);
            var _tktOld = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId);

            if (_cfg.ResolutionTracking)
            {
                UpdateResolution(User.OrganizationId, User.DepartmentId, TktId, 0, resolved);
                if (_cfg.ConfirmationTracking && confirmed)
                    UpdateConfirmation(User.OrganizationId, User.DepartmentId, TktId, User.UserId, true, confirm_note);
            }

            string sysGeneratedText = _cNames.Ticket.FullSingular + " was CLOSED by " + User.FullName + ".";
            CloseTicket(User.OrganizationId, User.DepartmentId, TktId, User.UserId, NoteText, sysGeneratedText, DateTime.UtcNow, string.Empty);
            if (SendNotifications)
            {
                var _tktNew = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId, true)
                                  {IsSendNotificationEmail = true};
                foreach (TicketAssignee _ta in _tktNew.Users) _ta.SendResponse = true;
                foreach (TicketAssignee _ta in _tktNew.Technicians) _ta.SendResponse = true;
                NotificationRules.RaiseNotificationEvent(User.OrganizationId, User.DepartmentId, User.UserId,
                                                         NotificationRules.TicketEvent.CloseTicket, _tktNew, _tktOld, 0,
                                                         DateTime.MinValue, null);
            }
        }
コード例 #17
0
ファイル: Ticket.cs プロジェクト: evgeniynet/DataLayer
 public TicketAssignees(int departmentId, int ticketId, Ticket.TicketAssignmentType assignmentType, int primaryUserId)
     : this(Guid.Empty, departmentId, ticketId, assignmentType, primaryUserId)
 {
 }
コード例 #18
0
ファイル: Ticket.cs プロジェクト: evgeniynet/APIBeta
        public static void Confirm(ApiUser User, int TktId, string NoteText)
        {
            Config _cfg = new Config(User.OrganizationId, User.DepartmentId);

            if (!_cfg.ConfirmationTracking) throw new HttpError("Confirmation Tracking is not enabled for this instance.");

            UpdateConfirmation(User.OrganizationId, User.DepartmentId, TktId, User.UserId, true, NoteText);
            var _tktNew = new bigWebApps.bigWebDesk.Data.Ticket(User.OrganizationId, User.DepartmentId, TktId, true);
            foreach (TicketAssignee _ta in _tktNew.Users) _ta.SendResponse = true;
            foreach (TicketAssignee _ta in _tktNew.Technicians) _ta.SendResponse = true;
            NotificationRules.RaiseNotificationEvent(User.OrganizationId, User.DepartmentId, User.UserId, NotificationRules.TicketEvent.TicketConfirmation, _tktNew, null, 0, DateTime.MinValue, null);
        }
コード例 #19
0
ファイル: Ticket.cs プロジェクト: evgeniynet/DataLayer
 public static void AttachAlternateAssignee(int departmentId, int ticketId, int assigneeId, Ticket.TicketAssignmentType assignmentType, bool reassignIfAssigned)
 {
     UpdateData("sp_InsertTicketAssignment", new SqlParameter[] { new SqlParameter("@DepartmentId", departmentId), new SqlParameter("@TicketId", ticketId), new SqlParameter("@UserId", assigneeId), new SqlParameter("@AssignmentType", (int)assignmentType), new SqlParameter("@ReassignIfAssigned", reassignIfAssigned) });
 }
コード例 #20
0
 public static int RaiseNotificationEvent(int DeptID, int UserId, TicketEvent tktEvent, Ticket tkt, Ticket oldTkt)
 {
     return RaiseNotificationEvent(Guid.Empty, DeptID, UserId, tktEvent, tkt, oldTkt, 0, DateTime.MinValue, null);
 }