public string GetIncidentInfo(string UID) { XmlDocument xmlIncident = new XmlDocument(); try { IncidentUserTicket ticket = IncidentUserTicket.Load(new Guid(UID)); if (ticket == null) { System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); System.Xml.XmlNode node = doc.CreateNode(XmlNodeType.Element, SoapException.DetailElementName.Name, SoapException.DetailElementName.Namespace); System.Xml.XmlNode resource = doc.CreateNode(XmlNodeType.Element, "resource", string.Empty); resource.InnerText = "strNotfound"; node.AppendChild(resource); throw new SoapException(String.Format("The ticket '{0}' not found", UID), new XmlQualifiedName(typeof(ArgumentException).FullName), System.Web.HttpContext.Current.Request.Url.AbsoluteUri, node); } Security.UserLoginByTicket(ticket); xmlIncident.LoadXml("<Incident></Incident>"); XmlNode xmlRootNode = xmlIncident.SelectSingleNode("Incident"); XmlElement NameNode = xmlIncident.CreateElement("Name"); XmlElement TypeNode = xmlIncident.CreateElement("Type"); XmlElement DescriptionNode = xmlIncident.CreateElement("Description"); //XmlElement ManagerNode = xmlIncident.CreateElement("Manager"); XmlElement ClientNode = xmlIncident.CreateElement("Client"); XmlElement CreatedNode = xmlIncident.CreateElement("Created"); XmlElement StateNode = xmlIncident.CreateElement("State"); XmlElement StateIdNode = xmlIncident.CreateElement("StateId"); XmlElement ColorNode = xmlIncident.CreateElement("StateColor"); int controllerId = -1; int IssBoxId = -1; using (IDataReader reader = Incident.GetIncident(ticket.IncidentId)) { if (reader.Read()) { if (reader["ControllerId"] != DBNull.Value) { controllerId = (int)reader["ControllerId"]; } IssBoxId = (int)reader["IncidentBoxId"]; NameNode.InnerText = (string)reader["Title"]; TypeNode.InnerText = (string)reader["TypeName"]; DescriptionNode.InnerText = (string)reader["Description"]; //ManagerNode.InnerText = reader["Title"]; ClientNode.InnerText = (string)reader["ClientName"]; CreatedNode.InnerText = ((DateTime)reader["CreationDate"]).ToString("s"); StateNode.InnerText = (string)reader["StateName"]; StateIdNode.InnerText = reader["StateId"].ToString(); ColorNode.InnerText = (Util.CommonHelper.GetStateColor((int)reader["StateId"])).ToArgb().ToString(); xmlRootNode.AppendChild(NameNode); xmlRootNode.AppendChild(TypeNode); xmlRootNode.AppendChild(DescriptionNode); xmlRootNode.AppendChild(ClientNode); xmlRootNode.AppendChild(CreatedNode); xmlRootNode.AppendChild(StateNode); xmlRootNode.AppendChild(StateIdNode); xmlRootNode.AppendChild(ColorNode); } } int stateId = 0; int userId = -1; bool isGroup = false; using (IDataReader reader = Incident.GetIncidentTrackingState(ticket.IncidentId)) { if (reader.Read()) { stateId = (int)reader["StateId"]; userId = (int)reader["ResponsibleId"]; if (reader["IsResponsibleGroup"] != DBNull.Value && (bool)reader["IsResponsibleGroup"]) { isGroup = true; } } } if (stateId == 7) { isGroup = false; userId = controllerId; } if (isGroup) { XmlElement responsibleNode = xmlIncident.CreateElement("GroupResponsible"); XmlElement responsibleIdNode = xmlIncident.CreateElement("ResponsibleId"); responsibleNode.InnerText = "1"; responsibleIdNode.InnerText = IncidentInfo.GroupResponsibleId.ToString(); xmlRootNode.AppendChild(responsibleNode); xmlRootNode.AppendChild(responsibleIdNode); } else if (userId != -1) { XmlElement responsibleNode = xmlIncident.CreateElement("Responsible"); XmlElement responsibleIdNode = xmlIncident.CreateElement("ResponsibleId"); string UserName = Mediachase.IBN.Business.User.GetUserName(userId); responsibleNode.InnerText = UserName; responsibleIdNode.InnerText = userId.ToString(); xmlRootNode.AppendChild(responsibleNode); xmlRootNode.AppendChild(responsibleIdNode); } else if (stateId != 1 && stateId != 4 && stateId != 5) { XmlElement responsibleNode = xmlIncident.CreateElement("Responsible"); XmlElement responsibleIdNode = xmlIncident.CreateElement("ResponsibleId"); responsibleNode.InnerText = NotSetResponsibleName; responsibleIdNode.InnerText = IncidentInfo.NotSetResponsibleId.ToString(); xmlRootNode.AppendChild(responsibleNode); xmlRootNode.AppendChild(responsibleIdNode); } if (IssBoxId != -1) { IncidentBox ib = IncidentBox.Load(IssBoxId); XmlElement BoxNode = xmlIncident.CreateElement("IncidentBox"); BoxNode.InnerText = ib.Name; xmlRootNode.AppendChild(BoxNode); } DataTable tbl = Incident.GetListIncidentStates(ticket.IncidentId); foreach (DataRow row in tbl.Rows) { if ((int)row["StateId"] != 1 && (int)row["StateId"] != 2) { XmlElement newStateNode = xmlIncident.CreateElement("NewState"); XmlElement idNode = xmlIncident.CreateElement("Id"); XmlElement nameNode = xmlIncident.CreateElement("Name"); idNode.InnerText = row["StateId"].ToString(); nameNode.InnerText = (string)row["StateName"]; newStateNode.AppendChild(idNode); newStateNode.AppendChild(nameNode); xmlRootNode.AppendChild(newStateNode); } } // OZ: Add Available Responsible (...) Incident.Tracking trk = Incident.GetTrackingInfo(ticket.IncidentId); // Add No User Element (Custom ID) if (trk.CanSetNoUser) { AppendNewResponsible(xmlRootNode, NotSetResponsibleName, NotSetResponsibleId); } // Add Group Element (Custom ID) if (trk.CanSetGroup) { AppendNewResponsible(xmlRootNode, GroupResponsibleName, GroupResponsibleId); } // Add Users if (trk.CanSetUser) { ArrayList alUsers = Incident.GetResponsibleList(ticket.IncidentId); foreach (int iUserId in alUsers) { string userName = Mediachase.IBN.Business.User.GetUserName(iUserId); AppendNewResponsible(xmlRootNode, userName, iUserId); } } // Custom User select ... // TODO: // } catch (Exception ex) { Trace.WriteLine(ex.Message); throw; } return(xmlIncident.InnerXml); }
private void BindValues() { ddStatus.DataSource = Incident.GetListIncidentStates(IncidentID); ddStatus.DataTextField = "StateName"; ddStatus.DataValueField = "StateId"; ddStatus.DataBind(); ddPriority.DataSource = Incident.GetListPriorities(); ddPriority.DataTextField = "PriorityName"; ddPriority.DataValueField = "PriorityId"; ddPriority.DataBind(); // Issue box foreach (IncidentBox folder in IncidentBox.List()) { ddIssueBox.Items.Add(new ListItem(folder.Name, folder.IncidentBoxId.ToString())); } int controllerId = -1; using (IDataReader reader = Incident.GetIncident(IncidentID)) { if (reader.Read()) { CommonHelper.SafeSelect(ddPriority, reader["PriorityId"].ToString()); if (reader["ControllerId"] != DBNull.Value) { controllerId = (int)reader["ControllerId"]; } if (reader["ProjectId"] != DBNull.Value) { ddProject.ObjectTypeId = (int)ObjectTypes.Project; ddProject.ObjectId = (int)reader["ProjectId"]; } if (reader["IncidentBoxId"] != DBNull.Value) { CommonHelper.SafeSelect(ddIssueBox, reader["IncidentBoxId"].ToString()); } } } if (controllerId > 0) { lblController.Text = CommonHelper.GetUserStatus(controllerId); } // Responsible DataTable dt = Incident.GetResponsibleGroupDataTable(IncidentID); dt.Columns.Add(new DataColumn("IsNew", typeof(bool))); string sUsers = ""; if (dt != null) { foreach (DataRow dr in dt.Rows) { dr["IsNew"] = false; if ((bool)dr["ResponsePending"]) { sUsers += dr["PrincipalId"].ToString() + "*1_"; } else { sUsers += dr["PrincipalId"].ToString() + "*0_"; } } } if (ViewState["ResponsiblePool"] == null) { ViewState["ResponsiblePool"] = dt.Copy(); } using (IDataReader reader = Incident.GetIncidentTrackingState(IncidentID)) { if (reader.Read()) { if ((int)reader["ResponsibleId"] != -1) { ViewState["DDStatus"] = reader["ResponsibleId"].ToString(); //User } else if (reader["IsResponsibleGroup"] != DBNull.Value && (bool)reader["IsResponsibleGroup"]) { if ((int)reader["ResponsibleGroupState"] == 1) { ViewState["DDStatus"] = "-1"; //pending } else { ViewState["DDStatus"] = "0"; //denied } } else { ViewState["DDStatus"] = "-2"; //not set } Util.CommonHelper.SafeSelect(ddStatus, reader["StateId"].ToString()); } } string strddStatus = ViewState["DDStatus"].ToString(); Incident.Tracking trk = Incident.GetTrackingInfo(IncidentID); CommandManager cm = CommandManager.GetCurrent(this.Page); if (strddStatus == "-2") { lblClient.Text = BuildIconAndText("not_set.png", "tRespNotSet"); hidResp.Value = "-2"; } else if (strddStatus == "-1") { if (!Security.CurrentUser.IsExternal) { CommandParameters cp = null; if (!String.IsNullOrEmpty(Command)) { cp = new CommandParameters("MC_HDM_GroupResponsibilityInFrame"); } else { cp = new CommandParameters("MC_HDM_GroupResponsibility"); } cp.CommandArguments = new System.Collections.Generic.Dictionary <string, string>(); cp.AddCommandArgument("sUsersKey", sUsers); cp.AddCommandArgument("NotChangeKey", (!trk.CanSetGroup) ? "1" : "0"); string cmd = cm.AddCommand("Incident", "", "IncidentView", cp); lblClient.Text = BuildLinkWithIconAndText("waiting.gif", "tRespGroup", cmd); } else { lblClient.Text = BuildIconAndText("waiting.gif", "tRespGroup"); } hidResp.Value = "-1"; } else if (strddStatus == "0") { if (!Security.CurrentUser.IsExternal) { CommandParameters cp = null; if (!String.IsNullOrEmpty(Command)) { cp = new CommandParameters("MC_HDM_GroupResponsibilityInFrame"); } else { cp = new CommandParameters("MC_HDM_GroupResponsibility"); } cp.CommandArguments = new System.Collections.Generic.Dictionary <string, string>(); cp.AddCommandArgument("sUsersKey", sUsers); cp.AddCommandArgument("NotChangeKey", (!trk.CanSetGroup) ? "1" : "0"); string cmd = cm.AddCommand("Incident", "", "IncidentView", cp); lblClient.Text = BuildLinkWithIconAndText("red_denied.gif", "tRespGroup", cmd); } else { lblClient.Text = BuildIconAndText("red_denied.gif", "tRespGroup"); } hidResp.Value = "-1"; } else { lblClient.Text = Util.CommonHelper.GetUserStatusUL(int.Parse(strddStatus, CultureInfo.InvariantCulture)); hidResp.Value = strddStatus; } lblChange.Text = String.Format(CultureInfo.InvariantCulture, "<img alt='' class='btndown2' border='0' src='{0}'/>", Page.ResolveUrl("~/Layouts/Images/downbtn.gif")); if (trk.CanSetNoUser || trk.CanSetGroup || trk.CanSetUser) { tdChange.Attributes.Add("onclick", "javascript:ShowHideList(event, '" + tdChange.ClientID + "')"); } tdChange.Style.Add("cursor", "pointer"); hidDecline.Value = "0"; }
protected void btnRefresh_Click(object sender, EventArgs e) { string arg = Request["__EVENTARGUMENT"]; string[] values = arg.Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries); DataTable dt = null; ArrayList alUsers = new ArrayList(); if (ViewState["ResponsiblePool"] != null) { dt = ((DataTable)ViewState["ResponsiblePool"]).Copy(); } try { for (int i = 0; i < values.Length; i++) { string sUser = values[i].Substring(0, values[i].IndexOf("*")); string temp = values[i].Substring(values[i].IndexOf("*") + 1); string sStatus = temp.Substring(0, temp.IndexOf("*")); string sIsNew = temp.Substring(temp.IndexOf("*") + 1); alUsers.Add(int.Parse(sUser, CultureInfo.InvariantCulture)); DataRow[] dr_mas = dt.Select("PrincipalId=" + sUser); if (dr_mas.Length > 0) { dr_mas[0]["ResponsePending"] = (sStatus == "1"); if (sIsNew == "1") { dr_mas[0]["IsNew"] = true; } } else { DataRow newRow = dt.NewRow(); newRow["PrincipalId"] = int.Parse(sUser, CultureInfo.InvariantCulture); newRow["IsGroup"] = false; newRow["ResponsePending"] = (sStatus == "1"); newRow["IsNew"] = true; dt.Rows.Add(newRow); } } } catch { } ArrayList alDeleted = new ArrayList(); foreach (DataRow dr in dt.Rows) { if (!alUsers.Contains((int)dr["PrincipalId"])) { alDeleted.Add((int)dr["PrincipalId"]); } } foreach (int iDel in alDeleted) { DataRow[] dr_mas = dt.Select("PrincipalId = " + iDel); if (dr_mas.Length > 0) { dt.Rows.Remove(dr_mas[0]); } } if (IsAllDenied()) { ViewState["DDStatus"] = "0"; } else { ViewState["DDStatus"] = "-1"; } ViewState["ResponsiblePool"] = dt.Copy(); Incident.Tracking trk = Incident.GetTrackingInfo(IncidentID); CommandManager cm = CommandManager.GetCurrent(this.Page); if (ViewState["DDStatus"].ToString() == "0") { if (!Security.CurrentUser.IsExternal) { CommandParameters cp = null; if (!String.IsNullOrEmpty(Command)) { cp = new CommandParameters("MC_HDM_GroupResponsibilityInFrame"); } else { cp = new CommandParameters("MC_HDM_GroupResponsibility"); } cp.CommandArguments = new System.Collections.Generic.Dictionary <string, string>(); cp.AddCommandArgument("sUsersKey", arg); cp.AddCommandArgument("NotChangeKey", (!trk.CanSetGroup) ? "1" : "0"); string cmd = cm.AddCommand("Incident", "", "IncidentView", cp); lblClient.Text = BuildLinkWithIconAndText("red_denied.gif", "tRespGroup", cmd); } else { lblClient.Text = BuildIconAndText("red_denied.gif", "tRespGroup"); } } else { if (!Security.CurrentUser.IsExternal) { CommandParameters cp = null; if (!String.IsNullOrEmpty(Command)) { cp = new CommandParameters("MC_HDM_GroupResponsibilityInFrame"); } else { cp = new CommandParameters("MC_HDM_GroupResponsibility"); } cp.CommandArguments = new System.Collections.Generic.Dictionary <string, string>(); cp.AddCommandArgument("sUsersKey", arg); cp.AddCommandArgument("NotChangeKey", (!trk.CanSetGroup) ? "1" : "0"); string cmd = cm.AddCommand("Incident", "", "IncidentView", cp); lblClient.Text = BuildLinkWithIconAndText("waiting.gif", "tRespGroup", cmd); } else { lblClient.Text = BuildIconAndText("waiting.gif", "tRespGroup"); } } }
private void BindList() { DataTable dt = null; if (ViewState["ResponsiblePool"] != null) { dt = ((DataTable)ViewState["ResponsiblePool"]).Copy(); } string sUsers = ""; if (dt != null) { foreach (DataRow dr in dt.Rows) { if ((bool)dr["ResponsePending"]) { sUsers += dr["PrincipalId"].ToString() + "*1_"; } else { sUsers += dr["PrincipalId"].ToString() + "*0_"; } } } CommandManager cm = CommandManager.GetCurrent(this.Page); Incident.Tracking trk = Incident.GetTrackingInfo(IncidentID); // lblAccept.Visible = trk.ShowAccept || trk.ShowAcceptDecline; // lblDecline.Visible = trk.ShowAcceptDecline || trk.ShowDecline; if (trk.ShowAcceptDecline) { lblAccept.Text = String.Format("<input type='checkbox' onclick=\"javascript:SelectMe('{0}','{1}','0')\" id='cbAccept' /><label for='cbAccept'> {2}</label> ", HttpUtility.HtmlAttributeEncode(Util.CommonHelper.GetUserStatusUL(Security.CurrentUser.UserID)), Security.CurrentUser.UserID, LocRM.GetString("tAccept")); lblAcceptText.InnerHtml = String.Format("<fieldset style='height:50px;padding:7px;border:1px solid #D0D0BF;' id='fsAccept' class='rest-gray'>{0}</fieldset>", LocRM.GetString("tAcceptText")); lblDecline.Text = String.Format("<input type='checkbox' onclick=\"javascript:SelectMe('','','1');\" id='cbDecline' /><label for='cbDecline'> {0}</label>", LocRM.GetString("tDecline")); lblDeclineText.InnerHtml = String.Format("<fieldset style='height:50px;padding:7px;border:1px solid #D0D0BF;' id='fsDecline' class='rest-gray'>{0}</fieldset>", LocRM.GetString("tDeclineText")); } else if (trk.ShowAccept) { lblAccept.Text = String.Format("<input type='checkbox' onclick=\"javascript:SelectMe('{0}','{1}','0')\" id='cbAccept' /><label for='cbAccept'> {2}</label> ", HttpUtility.HtmlAttributeEncode(Util.CommonHelper.GetUserStatusUL(Security.CurrentUser.UserID)), Security.CurrentUser.UserID, LocRM.GetString("tAcceptYourself")); lblAcceptText.InnerHtml = String.Format("<fieldset style='height:40px;padding:7px;border:1px solid #D0D0BF;' id='fsAccept' class='rest-gray'>{0}</fieldset>", LocRM.GetString("tAcceptYourselfText")); } else if (trk.ShowDecline) { lblDecline.Text = String.Format("<input type='checkbox' onclick=\"javascript:SelectMe('','','1');\" id='cbDecline' /><label for='cbDecline'> {0}</label>", LocRM.GetString("tDeclineYourself")); lblDeclineText.InnerHtml = String.Format("<fieldset style='height:40px;padding:7px;border:1px solid #D0D0BF;' id='fsDecline' class='rest-gray'>{0}</fieldset>", LocRM.GetString("tDeclineYourselfText")); } tableDD.Rows.Clear(); HtmlTableRow tr; HtmlTableCell tc; if (trk.CanSetNoUser) { tr = new HtmlTableRow(); tc = CreateDDCell("SelectThis(this, -2)"); tc.InnerHtml = BuildIconAndText("not_set.png", "tRespNotSet"); tr.Cells.Add(tc); tableDD.Rows.Add(tr); } if (trk.CanSetGroup) { tr = new HtmlTableRow(); tc = CreateDDCell("SelectThis(this, -1)"); if (ViewState["DDStatus"].ToString() == "0" || IsAllDenied()) { if (!Security.CurrentUser.IsExternal) { CommandParameters cp = null; if (!String.IsNullOrEmpty(Command)) { cp = new CommandParameters("MC_HDM_GroupResponsibilityInFrame"); } else { cp = new CommandParameters("MC_HDM_GroupResponsibility"); } cp.CommandArguments = new System.Collections.Generic.Dictionary <string, string>(); cp.AddCommandArgument("sUsersKey", sUsers); cp.AddCommandArgument("NotChangeKey", "0"); string cmd = cm.AddCommand("Incident", "", "IncidentView", cp); tc.InnerHtml = BuildLinkWithIconAndText("red_denied.gif", "tRespGroup", cmd); } else { tc.InnerHtml = BuildIconAndText("red_denied.gif", "tRespGroup"); } } else { if (!Security.CurrentUser.IsExternal) { CommandParameters cp = null; if (!String.IsNullOrEmpty(Command)) { cp = new CommandParameters("MC_HDM_GroupResponsibilityInFrame"); } else { cp = new CommandParameters("MC_HDM_GroupResponsibility"); } cp.CommandArguments = new System.Collections.Generic.Dictionary <string, string>(); cp.AddCommandArgument("sUsersKey", sUsers); cp.AddCommandArgument("NotChangeKey", "0"); string cmd = cm.AddCommand("Incident", "", "IncidentView", cp); tc.InnerHtml = BuildLinkWithIconAndText("waiting.gif", "tRespGroup", cmd); } else { tc.InnerHtml = BuildIconAndText("waiting.gif", "tRespGroup"); } } tr.Cells.Add(tc); tableDD.Rows.Add(tr); } if (trk.CanSetUser) { ArrayList alUsers = Incident.GetResponsibleList(IncidentID); foreach (int iUserId in alUsers) { tr = new HtmlTableRow(); tc = CreateDDCell("SelectThis(this, " + iUserId + ")"); tc.InnerHtml = Util.CommonHelper.GetUserStatusUL(iUserId); tr.Cells.Add(tc); tableDD.Rows.Add(tr); } CommandParameters cp = null; if (!String.IsNullOrEmpty(Command)) // popup mode { cp = new CommandParameters("MC_HDM_SelectResourceInFrame"); } else { cp = new CommandParameters("MC_HDM_SelectResource"); } string cmd = cm.AddCommand("Incident", "", "IncidentView", cp); cmd = "closeMenu();" + cmd; tr = new HtmlTableRow(); tc = CreateDDCell(cmd); tc.InnerHtml = String.Format("<b>{0}</b>", LocRM.GetString("tRespMore")); tr.Cells.Add(tc); tableDD.Rows.Add(tr); } }