Esempio n. 1
0
        // Emails


        //ITIL Customization - send email requester when ticket is resolved
        #region NotifyRequesterTicketResolved
        private void NotifyRequesterTicketResolved(string TaskID)
        {
            ServiceDeskDALDataContext objServiceDeskDALDataContext = new ServiceDeskDALDataContext();

            ITILServiceDesk_Task objITILServiceDesk_Tasks = (from ITILServiceDesk_Tasks in objServiceDeskDALDataContext.ITILServiceDesk_Tasks
                                                             where ITILServiceDesk_Tasks.TaskID == Convert.ToInt32(TaskID)
                                                             select ITILServiceDesk_Tasks).FirstOrDefault();

            string strDomainServerUrl = DotNetNuke.Common.Globals.AddHTTP(Request.Url.Host);  // ITIL Customization - get DomainServerUrl for use in Utility.FixURLLink
            string strPasswordLinkUrl = Utility.FixURLLink(DotNetNuke.Common.Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "EditTask", "mid=" + ModuleId.ToString(), String.Format(@"&TaskID={0}&TP={1}", TaskID, objITILServiceDesk_Tasks.TicketPassword)), strDomainServerUrl);

            string strSubject = String.Format(Localization.GetString("TicketIsResolved.Text", LocalResourceFile), TaskID);
            string strEmail   = objITILServiceDesk_Tasks.RequesterEmail;

            // If userId is not -1 then get the Email
            if (objITILServiceDesk_Tasks.RequesterUserID > -1)
            {
                strEmail = UserController.GetUserById(PortalId, objITILServiceDesk_Tasks.RequesterUserID).Email;
            }

            string strBody = Localization.GetString("HTMLTicketEmailRequester.Text", LocalResourceFile);

            strBody = Utility.ReplaceTicketToken(strBody, strPasswordLinkUrl, objITILServiceDesk_Tasks);

            DotNetNuke.Services.Mail.Mail.SendMail(PortalSettings.Email, strEmail, "", strSubject, strBody, "", "HTML", "", "", "", "");
        }
Esempio n. 2
0
        private void NotifyGroupAssignTicket(string TaskID)
        {
            // ITIL Customization - email notifies the Admins of a new ticket and also includes the ticket details
            ServiceDeskDALDataContext objServiceDeskDALDataContext = new ServiceDeskDALDataContext();
            ITILServiceDesk_Task      objITILServiceDesk_Tasks     = (from ITILServiceDesk_Tasks in objServiceDeskDALDataContext.ITILServiceDesk_Tasks
                                                                      where ITILServiceDesk_Tasks.TaskID == Convert.ToInt32(TaskID)
                                                                      select ITILServiceDesk_Tasks).FirstOrDefault();

            string strDomainServerUrl = DotNetNuke.Common.Globals.AddHTTP(Request.Url.Host);  // ITIL Customization - get DomainServerUrl for use in Utility.FixURLLink
            string strPasswordLinkUrl = Utility.FixURLLink(DotNetNuke.Common.Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "EditTask", "mid=" + ModuleId.ToString(), String.Format(@"&TaskID={0}&TP={1}", TaskID, objITILServiceDesk_Tasks.TicketPassword)), strDomainServerUrl);

            RoleController objRoleController = new RoleController();
            //string strAssignedRole = String.Format("{0}", objRoleController.GetRoleById(Convert.ToInt32(ddlAssigned.SelectedValue), PortalId).RoleName);
            string strAssignedRole = ddlAssigned.SelectedItem.Text;
            string strLinkUrl      = Utility.FixURLLink(DotNetNuke.Common.Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "EditTask", "mid=" + ModuleId.ToString(), String.Format(@"&TaskID={0}", TaskID)), PortalSettings.PortalAlias.HTTPAlias);

            string strSubject = String.Format(Localization.GetString("HelpDeskTicketAtHasBeenAssigned.Text", LocalResourceFile), TaskID, strAssignedRole);
            string strBody    = Localization.GetString("HTMLTicketEmailAssignee.Text", LocalResourceFile);

            strBody = Utility.ReplaceTicketToken(strBody, strPasswordLinkUrl, objITILServiceDesk_Tasks);
            strBody = strBody + Environment.NewLine;
            strBody = strBody + String.Format(Localization.GetString("YouMaySeeStatusHere.Text", LocalResourceFile), strLinkUrl);

            // Get all users in the AssignedRole Role
            // ArrayList colAssignedRoleUsers = objRoleController.GetUsersByRoleName(PortalId, strAssignedRole);
            IList <UserInfo> colAssignedRoleUsers = RoleController.Instance.GetUsersByRole(PortalId, strAssignedRole);

            foreach (UserInfo objUserInfo in colAssignedRoleUsers)
            {
                DotNetNuke.Services.Mail.Mail.SendMail(PortalSettings.Email, objUserInfo.Email, "", strSubject, strBody, "", "HTML", "", "", "", "");
            }

            Log.InsertLog(Convert.ToInt32(TaskID), UserId, String.Format(Localization.GetString("AssignedTicketTo.Text", LocalResourceFile), UserInfo.DisplayName, strAssignedRole));
        }
Esempio n. 3
0
        // Tags

        #region DisplayCategoryTree
        private void DisplayCategoryTree()
        {
            bool boolUserAssignedToTask = false;
            ServiceDeskDALDataContext objServiceDeskDALDataContext = new ServiceDeskDALDataContext();

            ITILServiceDesk_Task objITILServiceDesk_Tasks = (from ITILServiceDesk_Tasks in objServiceDeskDALDataContext.ITILServiceDesk_Tasks
                                                             where ITILServiceDesk_Tasks.TaskID == Convert.ToInt32(Request.QueryString["TaskID"])
                                                             select ITILServiceDesk_Tasks).FirstOrDefault();

            //Is user in the Assigned Role?
            RoleController objRoleController = new RoleController();
            RoleInfo       objRoleInfo       = objRoleController.GetRole(objITILServiceDesk_Tasks.AssignedRoleID, PortalId);

            if (objRoleInfo != null)
            {
                if (UserInfo.IsInRole(objRoleInfo.RoleName))
                {
                    boolUserAssignedToTask = true;
                }
            }

            if (boolUserAssignedToTask || UserInfo.IsInRole(GetAdminRole()) || UserInfo.IsInRole(PortalSettings.AdministratorRoleName) || UserInfo.IsSuperUser)
            {
                // Show all Tags
                TagsTreeExistingTasks.Visible     = true;
                TagsTreeExistingTasks.TagID       = Convert.ToInt32(Request.QueryString["TaskID"]);
                TagsTreeExistingTasks.DisplayType = Utility.DisplayTypeAdministrator;
                TagsTreeExistingTasks.Expand      = false;
            }
            else
            {
                // Show only Visible Tags
                TagsTreeExistingTasks.Visible     = true;
                TagsTreeExistingTasks.TagID       = Convert.ToInt32(Request.QueryString["TaskID"]);
                TagsTreeExistingTasks.DisplayType = Utility.DisplayTypeRequestor;
                TagsTreeExistingTasks.Expand      = false;
            }

            // Select Existing values
            if (objITILServiceDesk_Tasks.ITILServiceDesk_TaskCategories.Select(x => x.CategoryID).ToArray <int>().Count() > 0)
            {
                int[]  ArrStrCategories = objITILServiceDesk_Tasks.ITILServiceDesk_TaskCategories.Select(x => x.CategoryID).ToArray <int>();
                int?[] ArrIntCatagories = Array.ConvertAll <int, int?>(ArrStrCategories, new Converter <int, int?>(ConvertToNullableInt));

                TagsTreeExistingTasks.SelectedCategories = ArrIntCatagories;
            }

            // Set visibility of Tags
            bool RequestorCatagories = (TagsTreeExistingTasks.DisplayType == Utility.DisplayTypeAdministrator) ? false : true;

            int CountOfCatagories = (from ServiceDeskCategories in CategoriesTable.GetCategoriesTable(PortalId, RequestorCatagories)
                                     where ServiceDeskCategories.PortalID == PortalId
                                     where ServiceDeskCategories.Level == 1
                                     select ServiceDeskCategories).Count();

            imgTags.Visible    = (CountOfCatagories > 0);
            lbltxtTags.Visible = (CountOfCatagories > 0);
        }
Esempio n. 4
0
        private int SaveTicketForm()
        {
            ServiceDeskDALDataContext objServiceDeskDALDataContext = new ServiceDeskDALDataContext();

            ITILServiceDesk_Task objITILServiceDesk_Task = (from ITILServiceDesk_Tasks in objServiceDeskDALDataContext.ITILServiceDesk_Tasks
                                                            where ITILServiceDesk_Tasks.TaskID == Convert.ToInt32(Request.QueryString["TaskID"])
                                                            select ITILServiceDesk_Tasks).FirstOrDefault();

            // Save original Assigned Group
            int intOriginalAssignedGroup = objITILServiceDesk_Task.AssignedRoleID;

            // Save Task
            objITILServiceDesk_Task.Status         = ddlStatus.SelectedValue;
            objITILServiceDesk_Task.Description    = txtDescription.Text;
            objITILServiceDesk_Task.PortalID       = PortalId;
            objITILServiceDesk_Task.Priority       = ddlPriority.SelectedValue;
            objITILServiceDesk_Task.RequesterPhone = txtPhone.Text;
            objITILServiceDesk_Task.AssignedRoleID = Convert.ToInt32(ddlAssigned.SelectedValue);

            // Only validate Name and email if Ticket is not for a DNN user
            // lblName will be hidden if it is not a DNN user
            // not a DNN user
            objITILServiceDesk_Task.RequesterEmail = txtEmail.Text;
            objITILServiceDesk_Task.RequesterName  = txtName.Text;
            //objITILServiceDesk_Task.RequesterUserID = -1;

            // DueDate
            if (txtDueDate.Text.Trim().Length > 1)
            {
                objITILServiceDesk_Task.DueDate = Convert.ToDateTime(txtDueDate.Text.Trim());
            }
            else
            {
                objITILServiceDesk_Task.DueDate = null;
            }

            // EstimatedStart
            if (txtStart.Text.Trim().Length > 1)
            {
                objITILServiceDesk_Task.EstimatedStart = Convert.ToDateTime(txtStart.Text.Trim());
            }
            else
            {
                objITILServiceDesk_Task.EstimatedStart = null;
            }

            // EstimatedCompletion
            if (txtComplete.Text.Trim().Length > 1)
            {
                objITILServiceDesk_Task.EstimatedCompletion = Convert.ToDateTime(txtComplete.Text.Trim());
            }
            else
            {
                objITILServiceDesk_Task.EstimatedCompletion = null;
            }

            // EstimatedHours
            if (txtEstimate.Text.Trim().Length > 0)
            {
                objITILServiceDesk_Task.EstimatedHours = Convert.ToInt32(txtEstimate.Text.Trim());
            }
            else
            {
                objITILServiceDesk_Task.EstimatedHours = null;
            }

            objServiceDeskDALDataContext.SubmitChanges();

            //ITIL Customization - notify requester when ticket is resolved
            if (ddlStatus.SelectedValue == "Resolved")
            {
                if (Status != "Resolved")
                {
                    NotifyRequesterTicketResolved(objITILServiceDesk_Task.TaskID.ToString());
                    Status = ddlStatus.SelectedValue;
                }
            }


            // Notify Assigned Group
            if (Convert.ToInt32(ddlAssigned.SelectedValue) > -1)
            {
                // Only notify if Assigned group has changed
                if (intOriginalAssignedGroup != Convert.ToInt32(ddlAssigned.SelectedValue))
                {
                    //NotifyAssignedGroupOfAssignment(objITILServiceDesk_Task.TaskID.ToString());
                    NotifyGroupAssignTicket(objITILServiceDesk_Task.TaskID.ToString());
                }
            }

            // Insert Log
            Log.InsertLog(objITILServiceDesk_Task.TaskID, UserId, String.Format(Localization.GetString("UpdatedTicket.Text", LocalResourceFile), UserInfo.DisplayName));

            return(objITILServiceDesk_Task.TaskID);
        }
Esempio n. 5
0
        // Display Ticket Data

        #region DisplayTicketData
        private void DisplayTicketData()
        {
            ServiceDeskDALDataContext objServiceDeskDALDataContext = new ServiceDeskDALDataContext();

            ITILServiceDesk_Task objITILServiceDesk_Tasks = (from ITILServiceDesk_Tasks in objServiceDeskDALDataContext.ITILServiceDesk_Tasks
                                                             where ITILServiceDesk_Tasks.TaskID == Convert.ToInt32(Request.QueryString["TaskID"])
                                                             select ITILServiceDesk_Tasks).FirstOrDefault();

            // Name is editable only if user is Anonymous
            if (objITILServiceDesk_Tasks.RequesterUserID == -1)
            {
                txtEmail.Visible = true;
                txtName.Visible  = true;
                //lblEmail.Visible = false;
                //lblName.Visible = false;
                txtEmail.Text = objITILServiceDesk_Tasks.RequesterEmail;
                txtName.Text  = objITILServiceDesk_Tasks.RequesterName;

                //ITIL Customization - assigning (txtEmail.Text to RequesterEmail) and (txtName.Text to RequesterName) in case user is anonymous
                RequesterEmail = txtEmail.Text;
                RequesterName  = txtName.Text;
            }
            else
            {
                //txtEmail.Visible = false;
                //txtName.Visible = false;
                //lblEmail.Visible = true;
                //lblName.Visible = true;

                UserInfo objRequester = UserController.GetUser(PortalId, objITILServiceDesk_Tasks.RequesterUserID, false);

                if (objRequester != null)
                {
                    //lblEmail.Text = UserController.GetUser(PortalId, objITILServiceDesk_Tasks.RequesterUserID, false).Email;
                    //lblName.Text = UserController.GetUser(PortalId, objITILServiceDesk_Tasks.RequesterUserID, false).DisplayName;

                    txtEmail.Text = UserController.GetUser(PortalId, objITILServiceDesk_Tasks.RequesterUserID, false).Email;
                    txtName.Text  = UserController.GetUser(PortalId, objITILServiceDesk_Tasks.RequesterUserID, false).DisplayName;

                    //ITIL Customization - assigning (lblEmail.Text to RequesterEmail) and (lblName.Text to RequesterName) in case user is anonymous
                    RequesterEmail = txtEmail.Text;
                    RequesterName  = txtName.Text;
                }
                else
                {
                    txtName.Text = "[User Deleted]";
                }
            }

            lblTask.Text            = objITILServiceDesk_Tasks.TaskID.ToString();
            lblCreatedData.Text     = String.Format(objITILServiceDesk_Tasks.CreatedDate.ToShortDateString(), objITILServiceDesk_Tasks.CreatedDate.ToShortTimeString());
            ddlStatus.SelectedValue = objITILServiceDesk_Tasks.Status;

            //ITIL Customization - assign objITILServiceDesk_Tasks.Status to Status for the purpose of preventing multiple email notifications
            Status = objITILServiceDesk_Tasks.Status;

            ddlPriority.SelectedValue = objITILServiceDesk_Tasks.Priority;
            txtDescription.Text       = objITILServiceDesk_Tasks.Description;
            txtPhone.Text             = objITILServiceDesk_Tasks.RequesterPhone;
            txtDueDate.Text           = (objITILServiceDesk_Tasks.DueDate.HasValue) ? objITILServiceDesk_Tasks.DueDate.Value.ToShortDateString() : "";
            txtStart.Text             = (objITILServiceDesk_Tasks.EstimatedStart.HasValue) ? objITILServiceDesk_Tasks.EstimatedStart.Value.ToShortDateString() : "";
            txtComplete.Text          = (objITILServiceDesk_Tasks.EstimatedCompletion.HasValue) ? objITILServiceDesk_Tasks.EstimatedCompletion.Value.ToShortDateString() : "";
            txtEstimate.Text          = (objITILServiceDesk_Tasks.EstimatedHours.HasValue) ? objITILServiceDesk_Tasks.EstimatedHours.Value.ToString() : "";

            ListItem TmpRoleListItem = ddlAssigned.Items.FindByValue(objITILServiceDesk_Tasks.AssignedRoleID.ToString());

            if (TmpRoleListItem == null)
            {
                // Value was not found so add it
                RoleController objRoleController = new RoleController();
                RoleInfo       objRoleInfo       = objRoleController.GetRole(objITILServiceDesk_Tasks.AssignedRoleID, PortalId);

                if (objRoleInfo != null)
                {
                    ListItem RoleListItem = new ListItem();
                    RoleListItem.Text  = objRoleInfo.RoleName;
                    RoleListItem.Value = objITILServiceDesk_Tasks.AssignedRoleID.ToString();
                    ddlAssigned.Items.Add(RoleListItem);

                    ddlAssigned.SelectedValue = objITILServiceDesk_Tasks.AssignedRoleID.ToString();
                }
                else
                {
                    // Role no longer exists in Portal
                    ddlAssigned.SelectedValue = "-1";
                }
            }
            else
            {
                // The Value already exists so set it
                ddlAssigned.SelectedValue = objITILServiceDesk_Tasks.AssignedRoleID.ToString();
            }
        }
Esempio n. 6
0
        private bool CheckSecurity()
        {
            bool boolPassedSecurity = false;
            ServiceDeskDALDataContext objServiceDeskDALDataContext = new ServiceDeskDALDataContext();

            ITILServiceDesk_Task objITILServiceDesk_Tasks = (from ITILServiceDesk_Tasks in objServiceDeskDALDataContext.ITILServiceDesk_Tasks
                                                             where ITILServiceDesk_Tasks.TaskID == Convert.ToInt32(Request.QueryString["TaskID"])
                                                             select ITILServiceDesk_Tasks).FirstOrDefault();

            if (objITILServiceDesk_Tasks == null)
            {
                pnlEditTask.Visible = false;
                Response.Redirect(DotNetNuke.Common.Globals.NavigateURL());
            }

            // User not logged in
            if (UserId == -1)
            {
                // Must have the valid password
                if (Request.QueryString["TP"] != null)
                {
                    // Check the password for this Ticket
                    if (objITILServiceDesk_Tasks.TicketPassword == Convert.ToString(Request.QueryString["TP"]))
                    {
                        boolPassedSecurity = true;
                    }
                    else
                    {
                        boolPassedSecurity = false;
                    }
                }
            }

            // User is logged in
            if (UserId > -1)
            {
                // Is user an Admin?
                string strAdminRoleID = GetAdminRole();
                if (UserInfo.IsInRole(strAdminRoleID) || UserInfo.IsInRole(PortalSettings.AdministratorRoleName) || UserInfo.IsSuperUser)
                {
                    boolPassedSecurity       = true;
                    CommentsControl.ViewOnly = false;
                }

                // Is user the Requestor?
                if (UserId == objITILServiceDesk_Tasks.RequesterUserID)
                {
                    boolPassedSecurity = true;
                }

                //Is user in the Assigned Role?
                RoleController objRoleController = new RoleController();
                RoleInfo       objRoleInfo       = objRoleController.GetRole(objITILServiceDesk_Tasks.AssignedRoleID, PortalId);
                if (objRoleInfo != null)
                {
                    if (UserInfo.IsInRole(objRoleInfo.RoleName))
                    {
                        boolPassedSecurity       = true;
                        CommentsControl.ViewOnly = false;
                    }
                }

                // Does user have a valid temporary password?
                if (Request.QueryString["TP"] != null)
                {
                    // Check the password for this Ticket
                    if (objITILServiceDesk_Tasks.TicketPassword == Convert.ToString(Request.QueryString["TP"]))
                    {
                        boolPassedSecurity = true;
                    }
                    else
                    {
                        boolPassedSecurity = false;
                    }
                }
            }

            return(boolPassedSecurity);
        }
Esempio n. 7
0
        // Customization - token replacement
        #region ReplaceTicketToken
        public static string ReplaceTicketToken(string strBody, string strPasswordLinkUrl, ITILServiceDesk_Task objITILServiceDesk_Tasks)
        {
            DotNetNuke.Entities.Portals.PortalSettings objPortalSettings = DotNetNuke.Entities.Portals.PortalController.GetCurrentPortalSettings();
            //TaskID
            if (strBody.Contains("[TaskID]"))
            {
                strBody = strBody.Replace("[TaskID]", objITILServiceDesk_Tasks.TaskID.ToString());
            }
            //PasswordLinkUrl
            if (strBody.Contains("[PasswordLinkUrl]"))
            {
                strBody = strBody.Replace("[PasswordLinkUrl]", strPasswordLinkUrl);
            }
            //Description
            if (strBody.Contains("[Description]"))
            {
                strBody = strBody.Replace("[Description]", objITILServiceDesk_Tasks.Description);
            }
            //Details
            if (strBody.Contains("[Details]"))
            {
                strBody = strBody.Replace("[Details]", GetDetailsOfTicket(objITILServiceDesk_Tasks.TaskID));
            }

            //Comments
            if (strBody.Contains("[Comments]"))
            {
                strBody = strBody.Replace("[Comments]", GetCommentsOfTicket(objITILServiceDesk_Tasks.TaskID));
            }
            //Requestor
            if (strBody.Contains("[Requestor]"))
            {
                strBody = strBody.Replace("[Requestor]", objITILServiceDesk_Tasks.RequesterName);
            }
            //Priority Name
            if (strBody.Contains("[PriorityName]"))
            {
                strBody = strBody.Replace("[PriorityName]", objITILServiceDesk_Tasks.Priority);
            }
            //Email
            if (strBody.Contains("[Email]"))
            {
                strBody = strBody.Replace("[Email]", GetEmailOfRequestor(objITILServiceDesk_Tasks.RequesterUserID, objITILServiceDesk_Tasks.RequesterEmail));
            }

            //CreatedDate
            if (strBody.Contains("[CreatedDate]"))
            {
                strBody = strBody.Replace("[CreatedDate]", objITILServiceDesk_Tasks.CreatedDate.ToShortDateString());
            }
            //DueDate
            if (strBody.Contains("[DueDate]"))
            {
                if (objITILServiceDesk_Tasks.DueDate.HasValue)
                {
                    strBody = strBody.Replace("[DueDate]", objITILServiceDesk_Tasks.DueDate.Value.ToShortDateString());
                }
                else
                {
                    strBody = strBody.Replace("[DueDate]", string.Empty);
                }
            }
            //Phone
            if (strBody.Contains("[Phone]"))
            {
                strBody = strBody.Replace("[Phone]", objITILServiceDesk_Tasks.RequesterPhone);
            }
            //Assigned
            if (strBody.Contains("[Assigned]"))
            {
                strBody = strBody.Replace("[Assigned]", GetGetAssignedRoleName(objITILServiceDesk_Tasks.AssignedRoleID));
            }
            //StatusName
            if (strBody.Contains("[StatusName]"))
            {
                strBody = strBody.Replace("[StatusName]", objITILServiceDesk_Tasks.Status);
            }

            //StartDate
            if (strBody.Contains("[StartDate]"))
            {
                if (objITILServiceDesk_Tasks.EstimatedStart.HasValue)
                {
                    strBody = strBody.Replace("[StartDate]", objITILServiceDesk_Tasks.EstimatedStart.Value.ToShortDateString());
                }
                else  //blank out token
                {
                    strBody = strBody.Replace("[StartDate]", string.Empty);
                }
            }
            //EstimatedHours
            if (strBody.Contains("[EstimatedHours]"))
            {
                if (objITILServiceDesk_Tasks.EstimatedHours.HasValue)
                {
                    strBody = strBody.Replace("[EstimatedHours]", objITILServiceDesk_Tasks.EstimatedHours.Value.ToString());
                }
                else  //blank out token
                {
                    strBody = strBody.Replace("[EstimatedHours]", string.Empty);
                }
            }
            //CompleteDate
            if (strBody.Contains("[CompleteDate]"))
            {
                if (objITILServiceDesk_Tasks.EstimatedCompletion.HasValue)
                {
                    strBody = strBody.Replace("[CompleteDate]", objITILServiceDesk_Tasks.EstimatedCompletion.Value.ToShortDateString());
                }
                else  //blank out token
                {
                    strBody = strBody.Replace("[CompleteDate]", string.Empty);
                }
            }



            return(strBody);
        }