/// <summary>
        /// Gets the file locked user id.
        /// </summary>
        /// <param name="fileUrl">The file URL.</param>
        /// <returns></returns>
        public static UserLight GetFileLockedUserId(string fileUrl)
        {
            UserLight retVal = null;

            try
            {
                WebDavTicket          ticket   = WebDavUrlBuilder.GetWebDavTicket(fileUrl);
                WebDavAbstractFactory factory  = new WebDavAbstractFactory();
                WebDavPropertyStorage provider =
                    factory.Create <WebDavElementStorageProvider>(ticket.AbsolutePath.StorageType) as WebDavPropertyStorage;
                if (provider != null)
                {
                    WebDavElementInfo elInfo = provider.GetElementInfo(ticket.ToString());
                    foreach (ActiveLockElement activeLock in provider.GetActiveLocks(elInfo))
                    {
                        UserLight user = UserLight.Load(activeLock.Owner);
                        if (user != null)
                        {
                            retVal = user;
                            break;
                        }
                    }
                }
            }
            catch (System.Exception)
            {
            }

            return(retVal);
        }
示例#2
0
        private void BindFiles()
        {
            FileInfo[] files = fs.GetFiles(RootFolderId);
            if (files.Length <= 0)
            {
                trFiles.Visible = false;
                return;
            }

            trFiles.Visible = true;
            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("FileId", typeof(int)));
            dt.Columns.Add(new DataColumn("FileLink", typeof(string)));

            DataRow dr;

            foreach (FileInfo fi in files)
            {
                dr           = dt.NewRow();
                dr["FileId"] = fi.Id;

                string sIconLink = ResolveUrl("~/Common/ContentIcon.aspx?IconID=" + fi.FileBinaryContentTypeId);
                string sIcon     = String.Format("<img src='{0}' width='16' height='16' border=0 align=absmiddle>", sIconLink);

                string sLink = "";
                if (fi.FileBinaryContentType.ToLower().IndexOf("url") >= 0)
                {
                    sLink = Util.CommonHelper.GetLinkText(fs, fi);
                }
                if (sLink == "")
                {
                    sLink = WebDavUrlBuilder.GetFileStorageWebDavUrl(fi, true);
                }

                dr["FileLink"] = String.Format("<a href=\"{0}\" title='{1}'{2}>{3} {4}</a>",
                                               sLink,
                                               fi.Name,
                                               Common.OpenInNewWindow(fi.FileBinaryContentType) ? " target='_blank'" : "",
                                               sIcon,
                                               Util.CommonHelper.GetShortFileName(fi.Name, 40)
                                               );
                dt.Rows.Add(dr);
            }

            rptFiles.DataSource = dt;
            rptFiles.DataBind();


            foreach (RepeaterItem item in rptFiles.Items)
            {
                ImageButton ib = (ImageButton)item.FindControl("ibDelete");
                if (ib != null)
                {
                    ib.Attributes.Add("onclick", "return confirm('" + LocRM3.GetString("MesDeleteD") + "');");
                    ib.ToolTip = LocRM3.GetString("DeleteDocument");
                }
            }
        }
示例#3
0
        private void BindDGFiles(string Keyword)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add(new DataColumn("Id", typeof(int)));
            dt.Columns.Add(new DataColumn("Title", typeof(string)));
            dt.Columns.Add(new DataColumn("_Href", typeof(string)));
            dt.Columns.Add(new DataColumn("_New", typeof(int)));
            dt.Columns.Add(new DataColumn("Location", typeof(string)));
            DataRow dr;

            FileInfo[] _fi = Mediachase.IBN.Business.ControlSystem.FileStorage.SearchFiles(Security.CurrentUser.UserID, -1, -1, Keyword, -1, DateTime.MinValue, DateTime.MinValue, -1, -1);
            foreach (FileInfo fi in _fi)
            {
                dr          = dt.NewRow();
                dr["Id"]    = fi.Id;
                dr["Title"] = Util.CommonHelper.GetShortFileName(fi.Name, 40);
                string sLink = "";
                if (fi.FileBinaryContentType.ToLower().IndexOf("url") >= 0)
                {
                    sLink = GetLinkText(fi);
                }
                if (sLink == "")
                {
                    //sLink = Util.CommonHelper.GetAbsolutePath(Mediachase.IBN.Business.ControlSystem.WebDavFileUserTicket.GetDownloadPath(fi.Id, fi.Name));
                    sLink = WebDavUrlBuilder.GetFileStorageWebDavUrl(fi, true);
                }
                dr["_Href"] = sLink;
                dr["_New"]  = Common.OpenInNewWindow(fi.FileBinaryContentType) ? 1 : 0;


                string           containerKey = fi.ContainerKey;
                BaseIbnContainer bic          = BaseIbnContainer.Create("FileLibrary", containerKey);
                Mediachase.IBN.Business.ControlSystem.FileStorage fs = (Mediachase.IBN.Business.ControlSystem.FileStorage)bic.LoadControl("FileStorage");
                string parentName = "";
                string parentLink = "";
                Util.CommonHelper.GetParentContainer(containerKey, fi.ParentDirectory, out parentName, out parentLink);
                dr["Location"] = parentName;

                dt.Rows.Add(dr);
            }

            dgFiles.DataSource = dt.DefaultView;
            dgFiles.DataBind();

            int RowCount = dgFiles.Items.Count;

            if (RowCount == 0)
            {
                Sep6.Visible = false;
                Pan6.Visible = false;
            }
            else
            {
                Sep6.Title = String.Format("{0} ({1})", LocRM.GetString("Files"), RowCount);
            }
        }
示例#4
0
        public string GetUrl(string absolutePath)
        {
            string retVal = absolutePath;

            try
            {
                WebDavTicket ticket = WebDavTicket.Parse(absolutePath);
                retVal = WebDavUrlBuilder.GetWebDavUrl(ticket.AbsolutePath, true);
            }
            catch (Exception)
            {
            }

            return(retVal);
        }
示例#5
0
        /// <summary>
        /// Gets the absolute path.
        /// </summary>
        /// <param name="url">The URL.</param>
        /// <returns></returns>
        public string GetAbsolutePath(string url)
        {
            string retVal = url;

            try
            {
                WebDavTicket ticket = WebDavUrlBuilder.GetWebDavTicket(url);
                if (ticket != null)
                {
                    retVal = ticket.ToString();
                }
            }
            catch (System.Exception)
            {
                //throw new Exception("webdav ticket incorrect format");
            }

            return(retVal);
        }
示例#6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            ResourceManager LocRM = new ResourceManager("Mediachase.UI.Web.App_GlobalResources.FileLibrary.Resources.strFileLibrary", Assembly.GetExecutingAssembly());

            secHeader.Title = LocRM.GetString("tDownloadLinkTitle");
            int lifeTime = 0;

            try
            {
                lifeTime = Convert.ToInt32(PortalConfig.WebDavSessionLifeTime);
            }
            catch (Exception)
            {
            }

            string sTime = String.Format("{0:D2}:{1:D2}", lifeTime / 60, lifeTime % 60);
            string sLink = WebDavUrlBuilder.GetWebDavUrl(_id);

            lblDownloadLink.Text = String.Format(LocRM.GetString("tDownLoadLink"), "javascript:FileDownload();", sTime);

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("var global_DownloadFlag = true;");
            sb.AppendLine("function FileDownload()");
            sb.AppendLine("{");
            sb.AppendLine("global_DownloadFlag = false;");
            sb.AppendFormat("window.location.href='{0}'", sLink);
            sb.AppendLine("}");
            sb.AppendLine("function AutoFileDownload()");
            sb.AppendLine("{");
            sb.AppendLine("if(!global_DownloadFlag) return;");
            sb.AppendFormat("window.location.href='{0}'", sLink);
            sb.AppendLine("}");
            sb.AppendLine("setTimeout('AutoFileDownload()', 3000);");
            ClientScript.RegisterStartupScript(this.Page, this.Page.GetType(), Guid.NewGuid().ToString("N"),
                                               sb.ToString(), true);
        }
        private void BindCustomFields()
        {
            int        ObjectId      = GetObjectId();
            string     MetaClassName = GetMetaClassName();
            MetaObject obj           = MetaDataWrapper.LoadMetaObject(ObjectId, MetaClassName);

            if (obj != null)
            {
                int cur_weight = 0;
                for (int irow = 0; irow < _mflist.Count; irow++)
                {
                    tblCustomFields.Rows.Add(new HtmlTableRow());
                }
                foreach (MetaField field in obj.MetaClass.UserMetaFields)
                {
                    if (ContainsMetaField(field.Name))
                    {
                        cur_weight = _mflist.IndexOf(field.Name);
                        HtmlTableRow  row       = new HtmlTableRow();
                        HtmlTableCell cellTitle = new HtmlTableCell();
                        HtmlTableCell cellValue = new HtmlTableCell();

                        cellTitle.NoWrap    = true;
                        cellTitle.VAlign    = "Top";
                        cellTitle.InnerHtml = String.Format("<span class=ibn-label>{0}:</span>", field.FriendlyName);
                        cellValue.Width     = "90%";
                        object fieldValue = obj[field.Name];

                        if (fieldValue != null)
                        {
                            switch (field.DataType)
                            {
                            case MetaDataType.File:
                                Mediachase.MetaDataPlus.MetaFile mf = (Mediachase.MetaDataPlus.MetaFile)fieldValue;
                                int    ContentTypeId = DSFile.GetContentTypeByFileName(mf.Name);
                                string sInnerHTML    = "<img src='../Common/ContentIcon.aspx?IconID=" +
                                                       +ContentTypeId +
                                                       "' border='0' align='middle' width='16px' height='16px' />&nbsp;" + mf.Name;

                                string metaFileUrl = WebDavUrlBuilder.GetMetaDataPlusWebDavUrl(ObjectId, MetaClassName, field.Name, true);
                                string sNameLocked = Util.CommonHelper.GetLockerText(metaFileUrl);

                                cellValue.InnerHtml = String.Format("<a href='{0}'>{1}</a> {2}", metaFileUrl, sInnerHTML, sNameLocked);

                                //cellValue.InnerHtml = "<a href='../Modules/DownloadMetaFile.aspx?Id="+ObjectId.ToString()+
                                //    "&Class="+MetaClassName+"&Field="+field.Name+"'>"+sInnerHTML+"</a>";
                                break;

                            case MetaDataType.ImageFile:
                                cellValue.InnerHtml = "<img align='middle' border='0' src='../Modules/GetMetaImageFile.aspx?Id=" + ObjectId.ToString() +
                                                      "&Class=" + MetaClassName + "&Field=" + field.Name + "' />";
                                break;

                            case MetaDataType.Binary:
                            case MetaDataType.VarBinary:
                                cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", "[BinaryData]");
                                break;

                            case MetaDataType.Bit:
                            case MetaDataType.Boolean:
                                if ((bool)fieldValue)
                                {
                                    cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", LocRM.GetString("BooleanYes"));
                                }
                                else
                                {
                                    cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", LocRM.GetString("BooleanNo"));
                                }
                                break;

                            case MetaDataType.Date:
                                cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", ((DateTime)fieldValue).ToShortDateString());
                                break;

                            case MetaDataType.Email:
                                cellValue.InnerHtml = String.Format("<a href='mailto:{0}'>{0}</a>", fieldValue.ToString());
                                break;

                            case MetaDataType.Image:
                                cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", "[Image]");
                                break;

                            case MetaDataType.LongHtmlString:
                                cellValue.InnerHtml = String.Format("<span class=ibn-description>{0}</span>", fieldValue.ToString());
                                break;

                            case MetaDataType.DateTime:
                            case MetaDataType.SmallDateTime:
                            case MetaDataType.Timestamp:
                                cellValue.InnerHtml = String.Format("<span class=ibn-value>{0} {1}</span>", ((DateTime)fieldValue).ToShortDateString(), ((DateTime)fieldValue).ToShortTimeString());
                                break;

                            case MetaDataType.Url:
                                cellValue.InnerHtml = String.Format("<a href='{0}' target='_blank'>{0}</a>", Server.UrlDecode(fieldValue.ToString()));
                                break;

                            case MetaDataType.Money:
                                cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", ((decimal)fieldValue).ToString("f"));
                                break;

                            case MetaDataType.Float:
                                cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", fieldValue.ToString());
                                break;

                            case MetaDataType.EnumSingleValue:
                            case MetaDataType.DictionarySingleValue:
                                MetaDictionaryItem item = (MetaDictionaryItem)fieldValue;
                                cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", item.Value);
                                break;

                            case MetaDataType.EnumMultivalue:
                            case MetaDataType.DictionaryMultivalue:
                                MetaDictionaryItem[] items = (MetaDictionaryItem[])fieldValue;
                                string sItems = String.Empty;
                                foreach (MetaDictionaryItem mdItem in items)
                                {
                                    if (sItems != "")
                                    {
                                        sItems += "<br>";
                                    }
                                    sItems += mdItem.Value;
                                }
                                sItems = String.Format(CultureInfo.InvariantCulture,
                                                       "<span class=ibn-value>{0}</span>",
                                                       sItems);
                                cellValue.InnerHtml = sItems;
                                break;

                            default:
                                try
                                {
                                    cellValue.InnerHtml = String.Format("<span class=ibn-value>{0}</span>", fieldValue.ToString());
                                }
                                catch
                                {
                                    cellValue.InnerHtml = "";
                                }
                                break;
                            }
                        }

                        cellTitle.Attributes.Add("class", "text");
                        cellValue.Attributes.Add("class", "text");
                        row.Cells.Add(cellTitle);
                        row.Cells.Add(cellValue);

                        //tblCustomFields.Rows.Add(row);
                        tblCustomFields.Rows.Insert(cur_weight, row);
                        tblCustomFields.Rows.RemoveAt(cur_weight + 1);
                    }
                }
            }
        }
示例#8
0
        private void BindDataGrid()
        {
            DataTable dt = new DataTable();
            DataRow   dr;

            #region DataTable
            dt.Columns.Add(new DataColumn("Id", typeof(int)));
            dt.Columns.Add(new DataColumn("Index", typeof(string)));
            dt.Columns.Add(new DataColumn("EMailMessageId", typeof(int)));
            dt.Columns.Add(new DataColumn("Sender", typeof(string)));
            dt.Columns.Add(new DataColumn("Message", typeof(string)));
            dt.Columns.Add(new DataColumn("SystemMessage", typeof(string)));
            dt.Columns.Add(new DataColumn("Created", typeof(string)));
            dt.Columns.Add(new DataColumn("CreationDate", typeof(DateTime)));
            dt.Columns.Add(new DataColumn("Attachments", typeof(string)));
            dt.Columns.Add(new DataColumn("NodeType", typeof(string)));
            dt.Columns.Add(new DataColumn("CanMakeResolution", typeof(bool)));
            dt.Columns.Add(new DataColumn("CanMakeWorkaround", typeof(bool)));
            dt.Columns.Add(new DataColumn("CanUnMakeResolution", typeof(bool)));
            dt.Columns.Add(new DataColumn("CanUnMakeWorkaround", typeof(bool)));
            dt.Columns.Add(new DataColumn("CanReSend", typeof(bool)));
            dt.Columns.Add(new DataColumn("CanReSendOut", typeof(bool)));
            dt.Columns.Add(new DataColumn("CanReply", typeof(bool)));
            #endregion

            IncidentBox incidentBox = IncidentBox.Load(Incident.GetIncidentBox(IncidentId));
            EMailRouterIncidentBoxBlock settings = IncidentBoxDocument.Load(incidentBox.IncidentBoxId).EMailRouterBlock;
            bool allowEMailRouting = settings.AllowEMailRouting;
            bool CanUpdate         = Incident.CanUpdate(IncidentId);

            int _index = 0;
            foreach (ForumThreadNodeInfo node in Incident.GetForumThreadNodes(IncidentId))
            {
                #region Define Node Type
                string typeName = "internal";
                ForumThreadNodeSettingCollection coll = new ForumThreadNodeSettingCollection(node.Id);
                if (coll[ForumThreadNodeSetting.Question] != null)
                {
                    if (coll[ForumThreadNodeSetting.Incoming] != null)
                    {
                        typeName = "Mail_incoming_quest";
                    }
                    else if (coll[ForumThreadNodeSetting.Outgoing] != null)
                    {
                        typeName = "Mail_outgoing_quest";
                    }
                    else
                    {
                        typeName = "internal_quest";
                    }
                }
                else if (coll[ForumThreadNodeSetting.Resolution] != null)
                {
                    if (coll[ForumThreadNodeSetting.Incoming] != null)
                    {
                        typeName = "Mail_incoming_resol";
                    }
                    else if (coll[ForumThreadNodeSetting.Outgoing] != null)
                    {
                        typeName = "Mail_outgoing_resol";
                    }
                    else
                    {
                        typeName = "internal_resol";
                    }
                }
                else if (coll[ForumThreadNodeSetting.Workaround] != null)
                {
                    if (coll[ForumThreadNodeSetting.Incoming] != null)
                    {
                        typeName = "Mail_incoming_wa";
                    }
                    else if (coll[ForumThreadNodeSetting.Outgoing] != null)
                    {
                        typeName = "Mail_outgoing_wa";
                    }
                    else
                    {
                        typeName = "internal_wa";
                    }
                }
                else if (coll[ForumThreadNodeSetting.Incoming] != null)
                {
                    typeName = "Mail_incoming";
                }
                else if (coll[ForumThreadNodeSetting.Outgoing] != null)
                {
                    typeName = "Mail_outgoing";
                }
                #endregion

                dr = dt.NewRow();

                dr["Id"]                  = node.Id;
                dr["EMailMessageId"]      = node.EMailMessageId;
                dr["CanMakeResolution"]   = false;
                dr["CanMakeWorkaround"]   = false;
                dr["CanUnMakeResolution"] = false;
                dr["CanUnMakeWorkaround"] = false;
                dr["CanReply"]            = false;
                dr["CanReSend"]           = false;
                dr["CanReSendOut"]        = false;
                switch (typeName)
                {
                case "internal_resol":
                case "Mail_incoming_resol":
                case "Mail_outgoing_resol":
                    dr["CanUnMakeResolution"] = true;
                    break;

                case "internal_wa":
                case "Mail_incoming_wa":
                case "Mail_outgoing_wa":
                    dr["CanMakeResolution"]   = true;
                    dr["CanUnMakeWorkaround"] = true;
                    break;

                case "internal":
                case "Mail_incoming":
                case "Mail_outgoing":
                    dr["CanMakeResolution"] = true;
                    dr["CanMakeWorkaround"] = true;
                    break;

                default:
                    break;
                }
                if (coll[ForumThreadNodeSetting.Outgoing] != null && !Mediachase.IBN.Business.Security.CurrentUser.IsExternal)
                {
                    dr["CanReSendOut"] = true;
                }
                if (coll[ForumThreadNodeSetting.Incoming] != null && !Mediachase.IBN.Business.Security.CurrentUser.IsExternal)
                {
                    dr["CanReply"]  = true;
                    dr["CanReSend"] = allowEMailRouting;
                }

                if (node.EMailMessageId <= 0)
                {
                    dr["Sender"] = Mediachase.UI.Web.Util.CommonHelper.GetUserStatus(node.CreatorId);
                }

                dr["Created"]      = node.Created.ToShortDateString() + " " + node.Created.ToShortTimeString();
                dr["CreationDate"] = node.Created;

                string sNodeType = typeName;
                try
                {
                    sNodeType = LocRM.GetString(String.Format("NodeType_{0}", typeName));
                }
                catch
                {
                }
                dr["NodeType"] = String.Format("<img src='{2}/{0}.gif' width=24 height=16 align=absmiddle alt='{1}'>",
                                               typeName, sNodeType, ResolveClientUrl("~/layouts/images/icons"));
                dr["SystemMessage"] = String.Empty;

                string sMessage = "";
                if (coll[IncidentForum.IssueEvent.Declining.ToString()] != null)
                {
                    sMessage = String.Format("<font color='red'><b>{0}</b></font>",
                                             LocRM.GetString("tUserDeclined"));
                }
                if (coll[IncidentForum.IssueEvent.State.ToString()] != null)
                {
                    int stateId = int.Parse(coll[IncidentForum.IssueEvent.State.ToString()].ToString());
                    if (sMessage == "")
                    {
                        sMessage = String.Format("{2}: <font color='{0}'><b>{1}</b></font>",
                                                 Mediachase.UI.Web.Util.CommonHelper.GetStateColorString(stateId),
                                                 GetStatusName(stateId),
                                                 LocRM.GetString("Status"));
                    }
                    else
                    {
                        sMessage += String.Format("{2}: <font color='{0}'><b>{1}</b></font>",
                                                  Mediachase.UI.Web.Util.CommonHelper.GetStateColorString(stateId),
                                                  GetStatusName(stateId),
                                                  LocRM.GetString("Status"));
                    }
                }
                if (coll[IncidentForum.IssueEvent.Responsibility.ToString()] != null)
                {
                    int    iResp = int.Parse(coll[IncidentForum.IssueEvent.Responsibility.ToString()].ToString());
                    string sResp = "";
                    if (iResp == -2)
                    {
                        sResp = String.Format("<img align='absmiddle' border='0' src='{0}' />&nbsp;<font color='#808080'><b>{1}</b></font>",
                                              ResolveClientUrl("~/layouts/images/not_set.png"),
                                              LocRM.GetString("tRespNotSet"));
                    }
                    else if (iResp == -1)
                    {
                        sResp = String.Format("<img align='absmiddle' border='0' src='{0}' />&nbsp;<font color='green'><b>{1}</b></font>",
                                              ResolveClientUrl("~/layouts/images/waiting.gif"),
                                              LocRM.GetString("tRespGroup"));
                    }
                    else
                    {
                        sResp = Mediachase.UI.Web.Util.CommonHelper.GetUserStatus(iResp);
                    }
                    if (sMessage == "")
                    {
                        sMessage = LocRM.GetString("tResponsible") + ": " + sResp;
                    }
                    else
                    {
                        sMessage += "<br />" + LocRM.GetString("tResponsible") + ": " + sResp;
                    }
                }
                if (WasFarwarded == 1 && node.EMailMessageId == ForwardedEMail)
                {
                    sMessage = "<font color='green'><b>" + LocRM.GetString("tWasResended") + "</b></font><br/>" + sMessage;
                }
                if (WasFarwarded == -1 && node.EMailMessageId == ForwardedEMail)
                {
                    sMessage = "<font color='red'><b>" + LocRM.GetString("tWasNotResended") + "</b></font><br/>" + sMessage;
                }

                dr["SystemMessage"] = (sMessage.Length == 0) ? String.Empty : sMessage;

                string sAttach = "";


                #region EmailMessage - Attachments
                if (node.EMailMessageId > 0)
                {
                    EMailMessageInfo mi = null;
                    try
                    {
                        mi = EMailMessageInfo.Load(node.EMailMessageId);
                        int iUserId = User.GetUserByEmail(mi.SenderEmail);

                        if (EMailClient.IsAlertSenderEmail(mi.SenderEmail))
                        {
                            iUserId = node.CreatorId;
                        }

                        if (iUserId > 0)
                        {
                            dr["Sender"] = Mediachase.UI.Web.Util.CommonHelper.GetUserStatus(iUserId);
                        }
                        else
                        {
                            Client client = Mediachase.IBN.Business.Common.GetClient(mi.SenderEmail);
                            if (client != null)
                            {
                                if (client.IsContact)
                                {
                                    dr["Sender"] = Mediachase.UI.Web.Util.CommonHelper.GetContactLink(this.Page, client.Id, client.Name);
                                }
                                else
                                {
                                    dr["Sender"] = Mediachase.UI.Web.Util.CommonHelper.GetOrganizationLink(this.Page, client.Id, client.Name);
                                }
                            }
                            else if (mi.SenderName != "")
                            {
                                dr["Sender"] = Mediachase.UI.Web.Util.CommonHelper.GetEmailLink(mi.SenderEmail, mi.SenderName);
                            }
                            else
                            {
                                dr["Sender"] = Mediachase.UI.Web.Util.CommonHelper.GetEmailLink(mi.SenderEmail, mi.SenderEmail);
                            }
                        }

                        string sBody = String.Empty;
                        if (mi.HtmlBody != null)
                        {
                            sBody = mi.HtmlBody;
                        }

                        dr["Message"] = sBody;

                        // Attachments
                        for (int i = 0; i < mi.Attachments.Length; i++)
                        {
                            AttachmentInfo ai    = mi.Attachments[i];
                            int            id    = DSFile.GetContentTypeByFileName(ai.FileName);
                            string         sIcon = "";
                            if (id > 0)
                            {
                                sIcon = String.Format("<img align='absmiddle' border='0' src='{0}' />", ResolveClientUrl("~/Common/ContentIcon.aspx?IconID=" + id));
                            }
                            //sAttach += String.Format("<nobr><a href='{0}'{2}>{1}</a></nobr> &nbsp;&nbsp;",
                            //  ResolveClientUrl("~/Incidents/EmailAttachDownload.aspx") + "?EMailId=" + node.EMailMessageId.ToString() + "&AttachmentIndex=" + i.ToString(),
                            //  sIcon + "&nbsp;" + ai.FileName,
                            //  Mediachase.IBN.Business.Common.OpenInNewWindow(ai.ContentType) ? " target='_blank'" : "");
                            sAttach += String.Format("<nobr><a href='{0}'{2}>{1}</a></nobr> &nbsp;&nbsp;", WebDavUrlBuilder.GetEmailAtachWebDavUrl(node.EMailMessageId, i, true),
                                                     sIcon + "&nbsp;" + ai.FileName, Mediachase.IBN.Business.Common.OpenInNewWindow(ai.ContentType) ? " target='_blank'" : "");
                        }
                    }
                    catch
                    {
                        dr["Sender"]  = Mediachase.UI.Web.Util.CommonHelper.GetUserStatus(-1);
                        dr["Message"] = String.Format("<font color='red'><b>{0}</b>&nbsp;(#{1})</font>", LocRM.GetString("tNotFound"), node.EMailMessageId);
                    }
                }
                else
                {
                    string sBody = Mediachase.UI.Web.Util.CommonHelper.parsetext_br(node.Text, false);
                    dr["Message"] = sBody;

                    // Files
                    if (node.ContentType == ForumStorage.NodeContentType.TextWithFiles)
                    {
                        FileInfo[] files = Incident.GetForumNodeFiles(node.Id);
                        if (files.Length > 0)
                        {
                            foreach (FileInfo fl in files)
                            {
                                if (sAttach != "")
                                {
                                    sAttach += "&nbsp;&nbsp;&nbsp;";
                                }

                                string sTarget     = Mediachase.IBN.Business.Common.OpenInNewWindow(fl.FileBinaryContentType) ? " target='_blank'" : "";
                                string sLink       = Mediachase.UI.Web.Util.CommonHelper.GetAbsoluteDownloadFilePath(fl.Id, fl.Name, "FileLibrary", "ForumNodeId_" + node.Id);
                                string sNameLocked = Mediachase.UI.Web.Util.CommonHelper.GetLockerText(sLink);

                                sAttach += String.Format("<nobr><a href=\"{1}\"{3}><img src='{4}?IconID={2}' width='16' height='16' border=0 align=absmiddle> {0}</a> {5}</nobr>",
                                                         fl.Name,
                                                         sLink,
                                                         fl.FileBinaryContentTypeId,
                                                         sTarget,
                                                         ResolveClientUrl("~/Common/ContentIcon.aspx"),
                                                         sNameLocked
                                                         );
                            }
                        }
                    }
                }

                dr["Attachments"] = sAttach;
                #endregion

                if (sMessage.Length > 0 && dr["Message"].ToString() == "" && sAttach.Length == 0)
                {
                    dr["NodeType"] = String.Format("<img src='{0}' width='16' height='16' align=absmiddle alt='{1}'>",
                                                   ResolveClientUrl("~/layouts/images/icons/info_message.gif"),
                                                   LocRM.GetString("NodeType_InfoMessage"));
                    dr["CanMakeResolution"]   = false;
                    dr["CanMakeWorkaround"]   = false;
                    dr["CanUnMakeResolution"] = false;
                    dr["CanUnMakeWorkaround"] = false;
                }

                if (dr["Message"].ToString().Trim() == "")
                {
                    dr["Message"] = "&nbsp;";
                }
                dr["Index"] = "<table cellspacing='0' border='0' width='100%'><tr><td class='text' align='center' style='BACKGROUND-POSITION: center center; BACKGROUND-IMAGE: url(../../../layouts/images/atrisk1.gif); BACKGROUND-REPEAT: no-repeat;padding:4px;'><b>" + (++_index).ToString() + "</b></td></tr></table>";
                dt.Rows.Add(dr);
            }

            DataView dv = dt.DefaultView;
            dv.Sort = "CreationDate";

            dgForum.DataSource = dv;

            if (dv.Count == 0)
            {
                dgForum.Visible          = false;
                dgForum.CurrentPageIndex = 0;
                divNoMess.Visible        = true;

                divNoMess.InnerHtml = "<font color='red'>" + LocRM.GetString("NoMessages") + "</font>";
            }
            else
            {
                dgForum.Visible   = true;
                divNoMess.Visible = false;

                int ppi = dv.Count / dgForum.PageSize;
                if (dv.Count % dgForum.PageSize == 0)
                {
                    ppi = ppi - 1;
                }

                if (ViewState["IncidentForum_Page"] != null)
                {
                    int iPageIndex = int.Parse(ViewState["IncidentForum_Page"].ToString());

                    if (iPageIndex <= ppi)
                    {
                        dgForum.CurrentPageIndex = iPageIndex;
                    }
                    else
                    {
                        dgForum.CurrentPageIndex = ppi;
                    }

                    ViewState["IncidentForum_Page"] = dgForum.CurrentPageIndex.ToString();
                }
                else
                {
                    dgForum.CurrentPageIndex = ppi;
                }
            }
            dgForum.DataBind();

            foreach (DataGridItem dgi in dgForum.Items)
            {
                ImageButton ib = (ImageButton)dgi.FindControl("ibDelete");
                if (ib != null)
                {
                    ib.ToolTip = LocRM.GetString("Delete");
                    ib.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("WarningForumNode") + "')");
                    ib.Visible = CanUpdate;
                }
                ImageButton ib1 = (ImageButton)dgi.FindControl("ibResolution");
                if (ib1 != null)
                {
                    ib1.ToolTip = LocRM.GetString("tMarkAsResolution");
                    ib1.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("tMarkAsResolutionWarning") + "')");
                }
                ImageButton ib2 = (ImageButton)dgi.FindControl("ibWA");
                if (ib2 != null)
                {
                    ib2.ToolTip = LocRM.GetString("tMarkAsWA");
                    ib2.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("tMarkAsWAWarning") + "')");
                }
                ImageButton ib3 = (ImageButton)dgi.FindControl("ibUnResolution");
                if (ib3 != null)
                {
                    ib3.ToolTip = LocRM.GetString("tUnMarkAsResolution");
                    ib3.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("tUnMarkAsResolutionWarning") + "')");
                }
                ImageButton ib4 = (ImageButton)dgi.FindControl("ibUnWA");
                if (ib4 != null)
                {
                    ib4.ToolTip = LocRM.GetString("tUnMarkAsWA");
                    ib4.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("tUnMarkAsWAWarning") + "')");
                }
                ImageButton ib5 = (ImageButton)dgi.FindControl("ibReSend");
                if (ib5 != null)
                {
                    ib5.ToolTip = LocRM.GetString("tReSend");
                    ib5.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("tReSendWarning") + "')");
                }
                ImageButton ib6 = (ImageButton)dgi.FindControl("ibReSendOut");
                if (ib6 != null)
                {
                    ib6.ToolTip = LocRM.GetString("tReSend");
                    ib6.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("tReSendOutWarning") + "')");
                }
                ImageButton ib7 = (ImageButton)dgi.FindControl("ibReply");
                if (ib7 != null)
                {
                    ib7.ToolTip = LocRM.GetString("tReply");
                    if (!allowEMailRouting || (pc["IncForum_ReplyOutlook"] == "0" && pc["IncForum_ReplyEML"] == "0"))
                    {
                        string scommand = String.Format("{{ShowResizableWizard('{0}?IncidentId={1}&NodeId={2}&send=1&back={3}', 800, 600);return false;}}",
                                                        ResolveClientUrl("~/Incidents/AddEMailMessage.aspx"),
                                                        IncidentId,
                                                        ib7.CommandArgument,
                                                        HttpUtility.UrlEncode(this.Page.Request.RawUrl));
                        ib7.Attributes.Add("onclick", scommand);
                    }
                }
            }
        }
示例#9
0
        public void ProcessRequest(HttpContext context)
        {
            //try
            //{
            //проверяем есть ли в ticket-е идентификатор сессии
            WebDavTicket ticket = WebDavUrlBuilder.GetWebDavTicket(context.Request.Url.ToString());

            if (ticket == null)
            {
                throw new HttpException((int)HttpStatusCode.BadRequest, "Incorrect URI.");
            }

            if (!WebDavAuthHelper.WebDavAuthentificate(context, ticket))
            {
                //Используем стандартный механизм аутентификации
                System.Web.Security.FormsAuthentication.RedirectToLoginPage();
                return;
            }
            //throw new HttpException((int)HttpStatusCode.Unauthorized, "Unauthorized");
            WebDavAbstractFactory        factory         = new WebDavAbstractFactory();
            WebDavElementStorageProvider storageProvider =
                factory.Create <WebDavElementStorageProvider>(ticket.AbsolutePath.StorageType);

            if (storageProvider == null)
            {
                throw new HttpException((int)HttpStatusCode.BadRequest, "Incorrect URI.");
            }


            //Запускаем механизм обработки web dav запроса
            WebDavTicketRequest  request  = new WebDavTicketRequest(context.Request, ePluginToken.webdav);
            WebDavTicketResponse response = new WebDavTicketResponse(context.Response);

            WebDavApplication.DefaultProvider = storageProvider;

            try
            {
                bool enableTrace = Convert.ToBoolean(ConfigurationManager.AppSettings[ConstEnableTrace]);
                if (enableTrace)
                {
                    WebDavTracer.TraceBinaryBody = false;
                    WebDavTracer.EnableTrace     = true;
                }
            }
            catch (FormatException)
            {
            }


            if (request.HttpMethod == WebDavHttpMethod.GET)
            {
                //для get запросов выключаем буферизацию для работы с большими файлами
                context.Response.BufferOutput = false;
                //Некоторые браузеры кешируют результаты GET запроса при редактировании на сервере.
                //Установка expires равную текущей дате позволят указать браузеру что кеширование не требуется
                HttpCachePolicy cache = HttpContext.Current.Response.Cache;
                cache.SetExpires(DateTime.Now);

                //Если для запрошенного файла стоит флаг ForceDownload и не включен фдаг WebDav
                //то вернуть как attachment для выбора пользователем приложения для работы с документом
                if (!string.IsNullOrEmpty(ticket.AbsolutePath.FileName))
                {
                    string fileExtension = Path.GetExtension(ticket.AbsolutePath.FileName);
                    if (!ContentTypeResolver.IsWebDAVSupportedExtension(fileExtension) &&
                        ContentTypeResolver.IsAllowForceDownload(fileExtension))
                    {
                        context.Response.AddHeader("Content-Disposition", "attachment;" + "filename=" + ticket.AbsolutePath.FileName);
                    }
                }
            }

            WebDavApplication.ProcessRequest(request, response);

            //}
            //catch (HttpException ex)
            //{
            //    // Http Exception
            //    context.Response.Clear();

            //    context.Response.ContentEncoding = System.Text.Encoding.UTF8;
            //    context.Response.StatusCode = ex.GetHttpCode();
            //    context.Response.StatusDescription = ex.Message;
            //}
            //catch (Exception ex)
            //{
            //    // Global Exception
            //    context.Response.Clear();

            //    context.Response.ContentEncoding = System.Text.Encoding.UTF8;
            //    context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
            //    context.Response.StatusDescription = ex.Message;

            //    byte[] errorBuffer = System.Text.Encoding.UTF8.GetBytes(ex.ToString());
            //    context.Response.OutputStream.Write(errorBuffer, 0, errorBuffer.Length);
            //}

            //context.Response.Flush();
        }
示例#10
0
        private void BindDataGrid()
        {
            DataTable dtTop = new DataTable();
            DataRow   dr;

            dtTop.Columns.Add(new DataColumn("Id", typeof(int)));
            dtTop.Columns.Add(new DataColumn("Index", typeof(string)));
            dtTop.Columns.Add(new DataColumn("EMailMessageId", typeof(int)));
            dtTop.Columns.Add(new DataColumn("Weight", typeof(int)));
            dtTop.Columns.Add(new DataColumn("Sender", typeof(string)));
            dtTop.Columns.Add(new DataColumn("Message", typeof(string)));
            dtTop.Columns.Add(new DataColumn("SystemMessage", typeof(string)));
            dtTop.Columns.Add(new DataColumn("Created", typeof(string)));
            dtTop.Columns.Add(new DataColumn("CreationDate", typeof(DateTime)));
            dtTop.Columns.Add(new DataColumn("Attachments", typeof(string)));
            dtTop.Columns.Add(new DataColumn("NodeType", typeof(string)));
            dtTop.Columns.Add(new DataColumn("CanMakeResolution", typeof(bool)));
            dtTop.Columns.Add(new DataColumn("CanMakeWorkaround", typeof(bool)));
            dtTop.Columns.Add(new DataColumn("CanUnMakeResolution", typeof(bool)));
            dtTop.Columns.Add(new DataColumn("CanUnMakeWorkaround", typeof(bool)));
            dtTop.Columns.Add(new DataColumn("CanReSend", typeof(bool)));
            dtTop.Columns.Add(new DataColumn("CanReSendOut", typeof(bool)));
            dtTop.Columns.Add(new DataColumn("CanReply", typeof(bool)));

            DataTable dt = dtTop.Clone();

            IncidentBox incidentBox = IncidentBox.Load(Incident.GetIncidentBox(IncidentId));
            EMailRouterIncidentBoxBlock settings = IncidentBoxDocument.Load(incidentBox.IncidentBoxId).EMailRouterBlock;
            bool allowEMailRouting = settings.AllowEMailRouting;
            bool CanUpdate         = Incident.CanUpdate(IncidentId);

            int _index = 0;

            foreach (ForumThreadNodeInfo node in Incident.GetForumThreadNodes(IncidentId))
            {
                bool   fl_IsTop = false;
                int    iWeight  = 3;
                string typeName = "internal";
                ForumThreadNodeSettingCollection coll = new ForumThreadNodeSettingCollection(node.Id);
                if (coll[ForumThreadNodeSetting.Question] != null)
                {
                    if (pc["IncForum_Quests458"] == "1")
                    {
                        fl_IsTop = true;
                        iWeight  = 0;
                    }
                    if (coll[ForumThreadNodeSetting.Incoming] != null)
                    {
                        typeName = "Mail_incoming_quest";
                    }
                    else if (coll[ForumThreadNodeSetting.Outgoing] != null)
                    {
                        typeName = "Mail_outgoing_quest";
                    }
                    else
                    {
                        typeName = "internal_quest";
                    }
                }
                else if (coll[ForumThreadNodeSetting.Resolution] != null)
                {
                    if (pc["IncForum_Resol458"] == "1")
                    {
                        fl_IsTop = true;
                        iWeight  = 1;
                    }
                    if (coll[ForumThreadNodeSetting.Incoming] != null)
                    {
                        typeName = "Mail_incoming_resol";
                    }
                    else if (coll[ForumThreadNodeSetting.Outgoing] != null)
                    {
                        typeName = "Mail_outgoing_resol";
                    }
                    else
                    {
                        typeName = "internal_resol";
                    }
                }
                else if (coll[ForumThreadNodeSetting.Workaround] != null)
                {
                    if (pc["IncForum_Work458"] == "1")
                    {
                        fl_IsTop = true;
                        iWeight  = 2;
                    }
                    if (coll[ForumThreadNodeSetting.Incoming] != null)
                    {
                        typeName = "Mail_incoming_wa";
                    }
                    else if (coll[ForumThreadNodeSetting.Outgoing] != null)
                    {
                        typeName = "Mail_outgoing_wa";
                    }
                    else
                    {
                        typeName = "internal_wa";
                    }
                }
                else if (coll[ForumThreadNodeSetting.Incoming] != null)
                {
                    typeName = "Mail_incoming";
                }
                else if (coll[ForumThreadNodeSetting.Outgoing] != null)
                {
                    typeName = "Mail_outgoing";
                }

                if (fl_IsTop)
                {
                    dr = dtTop.NewRow();
                }
                else
                {
                    dr = dt.NewRow();
                }
                dr["Weight"] = iWeight;

                dr["Id"]                  = node.Id;
                dr["EMailMessageId"]      = node.EMailMessageId;
                dr["CanMakeResolution"]   = false;
                dr["CanMakeWorkaround"]   = false;
                dr["CanUnMakeResolution"] = false;
                dr["CanUnMakeWorkaround"] = false;
                dr["CanReply"]            = false;
                dr["CanReSend"]           = false;
                dr["CanReSendOut"]        = false;
                switch (typeName)
                {
                case "internal_resol":
                case "Mail_incoming_resol":
                case "Mail_outgoing_resol":
                    dr["CanUnMakeResolution"] = true;
                    break;

                case "internal_wa":
                case "Mail_incoming_wa":
                case "Mail_outgoing_wa":
                    dr["CanMakeResolution"]   = true;
                    dr["CanUnMakeWorkaround"] = true;
                    break;

                case "internal":
                case "Mail_incoming":
                case "Mail_outgoing":
                    dr["CanMakeResolution"] = true;
                    dr["CanMakeWorkaround"] = true;
                    break;

                default:
                    break;
                }
                if (coll[ForumThreadNodeSetting.Outgoing] != null && !Security.CurrentUser.IsExternal)
                {
                    dr["CanReSendOut"] = true;
                    ///AK test
                    //dr["CanReply"] = true;
                    ///
                }
                if (coll[ForumThreadNodeSetting.Incoming] != null && !Security.CurrentUser.IsExternal)
                {
                    dr["CanReply"]  = true;
                    dr["CanReSend"] = allowEMailRouting;
                }

                if (node.EMailMessageId <= 0)
                {
                    dr["Sender"] = CommonHelper.GetUserStatus(node.CreatorId);
                }

                dr["Created"]      = node.Created.ToShortDateString() + " " + node.Created.ToShortTimeString();
                dr["CreationDate"] = node.Created;

                string sNodeType = typeName;
                try
                {
                    sNodeType = LocRM.GetString(String.Format("NodeType_{0}", typeName));
                }
                catch
                {
                }

                dr["NodeType"]      = String.Format("<img alt='{1}' src='../Layouts/Images/icons/{0}.gif'/>", typeName, sNodeType);
                dr["SystemMessage"] = "&nbsp;";

                string sMessage = "";

                if (coll[IncidentForum.IssueEvent.Declining.ToString()] != null)
                {
                    sMessage = String.Format("<font color='red'><b>{0}</b></font>",
                                             LocRM.GetString("tUserDeclined"));
                }

                if (coll[IncidentForum.IssueEvent.State.ToString()] != null)
                {
                    int stateId = int.Parse(coll[IncidentForum.IssueEvent.State.ToString()].ToString());
                    if (sMessage == "")
                    {
                        sMessage = String.Format("{2}: <font color='{0}'><b>{1}</b></font>",
                                                 Util.CommonHelper.GetStateColorString(stateId),
                                                 GetStatusName(stateId),
                                                 LocRM.GetString("Status"));
                    }
                    else
                    {
                        sMessage += String.Format("{2}: <font color='{0}'><b>{1}</b></font>",
                                                  Util.CommonHelper.GetStateColorString(stateId),
                                                  GetStatusName(stateId),
                                                  LocRM.GetString("Status"));
                    }
                }

                if (coll[IncidentForum.IssueEvent.Responsibility.ToString()] != null)
                {
                    string sResp = "";

                    int iResp = int.Parse(coll[IncidentForum.IssueEvent.Responsibility.ToString()].ToString());
                    if (iResp == -2)
                    {
                        sResp = String.Format("<img alt='' src='{0}'/> <span style='color:#808080;font-weight:bold'>{1}</span>",
                                              ResolveUrl("~/Layouts/Images/not_set.png"),
                                              LocRM.GetString("tRespNotSet"));
                    }
                    else if (iResp == -1)
                    {
                        sResp = String.Format("<img alt='' src='{0}'/> <span style='color:green;font-weight:bold'>{1}</span>",
                                              ResolveUrl("~/Layouts/Images/waiting.gif"),
                                              LocRM.GetString("tRespGroup"));
                    }
                    else
                    {
                        sResp = Util.CommonHelper.GetUserStatus(iResp);
                    }

                    sResp = "<span class='IconAndText'><span>" + LocRM.GetString("tResponsible") + ":</span> " + sResp + "</span>";

                    if (sMessage == "")
                    {
                        sMessage = sResp;
                    }
                    else
                    {
                        sMessage += "<br/>" + sResp;
                    }
                }

                if (WasFarwarded == 1 && node.EMailMessageId == ForwardedEMail)
                {
                    sMessage = "<font color='green'><b>" + LocRM.GetString("tWasResended") + "</b></font><br/>" + sMessage;
                }

                if (WasFarwarded == -1 && node.EMailMessageId == ForwardedEMail)
                {
                    sMessage = "<font color='red'><b>" + LocRM.GetString("tWasNotResended") + "</b></font><br/>" + sMessage;
                }

                dr["SystemMessage"] = (sMessage.Length == 0) ? "&nbsp;" : sMessage;

                string sAttach = "";

                // EmailMessage
                if (node.EMailMessageId > 0)
                {
                    EMailMessageInfo mi = null;
                    try
                    {
                        mi = EMailMessageInfo.Load(node.EMailMessageId);
                        int iUserId = User.GetUserByEmail(mi.SenderEmail);

                        if (EMailClient.IsAlertSenderEmail(mi.SenderEmail))
                        {
                            iUserId = node.CreatorId;                             //User.GetUserByEmail(mi.SenderEmail);
                        }
                        if (iUserId > 0)
                        {
                            dr["Sender"] = Util.CommonHelper.GetUserStatus(iUserId);
                        }
                        else
                        {
                            Client client = Mediachase.IBN.Business.Common.GetClient(mi.SenderEmail);
                            if (client != null)
                            {
                                if (client.IsContact)
                                {
                                    dr["Sender"] = CommonHelper.GetContactLink(this.Page, client.Id, client.Name);
                                }
                                else
                                {
                                    dr["Sender"] = CommonHelper.GetOrganizationLink(this.Page, client.Id, client.Name);
                                }
                            }
                            else if (mi.SenderName != "")
                            {
                                dr["Sender"] = CommonHelper.GetEmailLink(mi.SenderEmail, mi.SenderName);
                            }
                            else
                            {
                                dr["Sender"] = CommonHelper.GetEmailLink(mi.SenderEmail, mi.SenderEmail);
                            }
                        }

                        string sBody = "";
                        if (mi.HtmlBody != null)
                        {
                            int iMaxLen = 256;
                            sBody = mi.HtmlBody;
                            if (!Security.CurrentUser.IsExternal && pc["IncForum_FullMess"] != "1")
                            {
                                sBody = EMailMessageInfo.CutHtmlBody(mi.HtmlBody, iMaxLen, "...");
                            }
                        }

                        if (pc["IncForum_FullMess"] != "1")
                        {
                            dr["Message"] = String.Format("{0}<div class='text' style='text-align:right; font-weight:bold'><a href='javascript:OpenMessage({2},{3},false)'>{1}</a></div>", sBody, LocRM.GetString("More"), node.Id, node.EMailMessageId);
                        }
                        else
                        {
                            dr["Message"] = sBody;
                        }

                        // Attachments
                        for (int i = 0; i < mi.Attachments.Length; i++)
                        {
                            AttachmentInfo ai    = mi.Attachments[i];
                            int            id    = DSFile.GetContentTypeByFileName(ai.FileName);
                            string         sIcon = "";
                            if (id > 0)
                            {
                                sIcon = String.Format("<img alt='' src='{0}'/>", ResolveUrl("~/Common/ContentIcon.aspx?IconID=" + id));
                            }
                            //sAttach += String.Format("<nobr><a href='{0}'{2}>{1}</a></nobr> &nbsp;&nbsp;",
                            //  ResolveUrl("~/Incidents/EmailAttachDownload.aspx") + "?EMailId=" + node.EMailMessageId.ToString() + "&AttachmentIndex=" + i.ToString(),
                            //  sIcon + "&nbsp;" + ai.FileName,
                            //  Mediachase.IBN.Business.Common.OpenInNewWindow(ai.ContentType) ? " target='_blank'" : "");
                            sAttach += String.Format("<a href='{0}'{2} style='white-space:nowrap'>{1}</a> &nbsp;&nbsp;", WebDavUrlBuilder.GetEmailAtachWebDavUrl(node.EMailMessageId, i, true),
                                                     sIcon + "&nbsp;" + ai.FileName, Mediachase.IBN.Business.Common.OpenInNewWindow(ai.ContentType) ? " target='_blank'" : "");
                        }
                    }
                    catch
                    {
                        dr["Sender"]  = Util.CommonHelper.GetUserStatus(-1);
                        dr["Message"] = String.Format("<font color='red'><b>{0}</b>&nbsp;(#{1})</font>", LocRM.GetString("tNotFound"), node.EMailMessageId);
                    }
                }
                else
                {
                    string sBody = CommonHelper.parsetext_br(node.Text, false);
                    dr["Message"] = sBody;
                    if (!Security.CurrentUser.IsExternal && pc["IncForum_FullMess"] != "1")
                    {
                        int    iMaxLen = 300;
                        string sBody1  = sBody;
                        sBody = EMailMessageInfo.CutHtmlBody(sBody, iMaxLen, "...");

                        if (!sBody.Equals(sBody1))
                        {
                            dr["Message"] = String.Format("{0}<div class='text' style='text-align:right; font-weight:bold'><a href=\"javascript:OpenMessage({2},-1,true)\">{1}</a></div>", sBody, LocRM.GetString("More"), node.Id);
                        }
                    }

                    // Files
                    if (node.ContentType == ForumStorage.NodeContentType.TextWithFiles)
                    {
                        FileInfo[] files = Incident.GetForumNodeFiles(node.Id);
                        if (files.Length > 0)
                        {
                            foreach (FileInfo fl in files)
                            {
                                if (sAttach != "")
                                {
                                    sAttach += "&nbsp;&nbsp;&nbsp;";
                                }

                                string sTarget = Mediachase.IBN.Business.Common.OpenInNewWindow(fl.FileBinaryContentType) ? " target='_blank'" : "";
                                //string sLink = Util.CommonHelper.GetAbsolutePath(WebDavFileUserTicket.GetDownloadPath(fl.Id, fl.Name));
                                string sLink       = Util.CommonHelper.GetAbsoluteDownloadFilePath(fl.Id, fl.Name, "FileLibrary", "ForumNodeId_" + node.Id);
                                string sNameLocked = CommonHelper.GetLockerText(sLink);
                                sAttach += String.Format("<span style='white-space:nowrap'><a href=\"{1}\"{3}><img alt='' src='../Common/ContentIcon.aspx?IconID={2}'/> {0}</a> {4}</span>", fl.Name, sLink, fl.FileBinaryContentTypeId, sTarget, sNameLocked);
                            }
                        }
                    }
                }

                dr["Attachments"] = sAttach;

                if (sMessage.Length > 0 && dr["Message"].ToString() == "" && sAttach.Length == 0)
                {
                    if (pc["IncForum_Info"] == "0")
                    {
                        continue;
                    }
                    dr["NodeType"]            = String.Format("<img src='../Layouts/Images/icons/info_message.gif' alt='{1}'/>", typeName, LocRM.GetString("NodeType_InfoMessage"));
                    dr["CanMakeResolution"]   = false;
                    dr["CanMakeWorkaround"]   = false;
                    dr["CanUnMakeResolution"] = false;
                    dr["CanUnMakeWorkaround"] = false;
                }

                if (dr["Message"].ToString().Trim() == "")
                {
                    dr["Message"] = "&nbsp;";
                }
                if (pc["IncForum_ShowNums"] == "1")
                {
                    dr["Index"] = "<table cellspacing='0' cellpadding='4' border='0' width='100%'><tr><td class='text' align='center' style='background-position: center center; background-image: url(../Layouts/Images/atrisk1.gif); background-repeat: no-repeat'><b>" + (++_index).ToString() + "</b></td></tr></table>";
                }
                else
                {
                    dr["Index"] = "&nbsp;";
                }

                if (fl_IsTop)
                {
                    dtTop.Rows.Add(dr);
                }
                else
                {
                    dt.Rows.Add(dr);
                }
            }

            DataRow[] drtop   = dtTop.Select("", "Weight, CreationDate");
            DataRow[] drother = dt.Select("", pc["IncForum_Sort458"]);

            DataTable result = dt.Clone();

            foreach (DataRow dr1 in drtop)
            {
                DataRow _dr = result.NewRow();
                _dr.ItemArray = (Object[])dr1.ItemArray.Clone();
                result.Rows.Add(_dr);
            }
            foreach (DataRow dr2 in drother)
            {
                DataRow _dr = result.NewRow();
                _dr.ItemArray = (Object[])dr2.ItemArray.Clone();
                result.Rows.Add(_dr);
            }

            DataView dv = result.DefaultView;

            dgForum.DataSource = dv;

            if (pc["IncidentForum_PageSize"] != null)
            {
                dgForum.PageSize = int.Parse(pc["IncidentForum_PageSize"]);
            }

            if (pc["IncidentForum_Page"] != null)
            {
                int iPageIndex = int.Parse(pc["IncidentForum_Page"]);
                int ppi        = dv.Count / dgForum.PageSize;
                if (dv.Count % dgForum.PageSize == 0)
                {
                    ppi = ppi - 1;
                }
                if (iPageIndex <= ppi)
                {
                    dgForum.CurrentPageIndex = iPageIndex;
                }
                else
                {
                    dgForum.CurrentPageIndex = 0;
                }

                pc["IncidentForum_Page"] = dgForum.CurrentPageIndex.ToString();
            }

            dgForum.DataBind();
            foreach (DataGridItem dgi in dgForum.Items)
            {
                ImageButton ib = (ImageButton)dgi.FindControl("ibDelete");
                if (ib != null)
                {
                    ib.ToolTip = LocRM.GetString("Delete");
                    ib.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("WarningForumNode") + "')");
                    ib.Visible = CanUpdate;
                }
                ImageButton ib1 = (ImageButton)dgi.FindControl("ibResolution");
                if (ib1 != null)
                {
                    ib1.ToolTip = LocRM.GetString("tMarkAsResolution");
                    ib1.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("tMarkAsResolutionWarning") + "')");
                }
                ImageButton ib2 = (ImageButton)dgi.FindControl("ibWA");
                if (ib2 != null)
                {
                    ib2.ToolTip = LocRM.GetString("tMarkAsWA");
                    ib2.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("tMarkAsWAWarning") + "')");
                }
                ImageButton ib3 = (ImageButton)dgi.FindControl("ibUnResolution");
                if (ib3 != null)
                {
                    ib3.ToolTip = LocRM.GetString("tUnMarkAsResolution");
                    ib3.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("tUnMarkAsResolutionWarning") + "')");
                }
                ImageButton ib4 = (ImageButton)dgi.FindControl("ibUnWA");
                if (ib4 != null)
                {
                    ib4.ToolTip = LocRM.GetString("tUnMarkAsWA");
                    ib4.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("tUnMarkAsWAWarning") + "')");
                }
                ImageButton ib5 = (ImageButton)dgi.FindControl("ibReSend");
                if (ib5 != null)
                {
                    ib5.ToolTip = LocRM.GetString("tReSend");
                    ib5.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("tReSendWarning") + "')");
                }
                ImageButton ib6 = (ImageButton)dgi.FindControl("ibReSendOut");
                if (ib6 != null)
                {
                    ib6.ToolTip = LocRM.GetString("tReSend");
                    ib6.Attributes.Add("onclick", "return confirm('" + LocRM.GetString("tReSendOutWarning") + "')");
                }
                ImageButton ib7 = (ImageButton)dgi.FindControl("ibReply");
                if (ib7 != null)
                {
                    ib7.ToolTip = LocRM.GetString("tReply");
                    if (!allowEMailRouting || (pc["IncForum_ReplyOutlook"] == "0" && pc["IncForum_ReplyEML"] == "0"))
                    {
                        string command = string.Format(CultureInfo.InvariantCulture,
                                                       "{{ShowResizableWizard('{0}?IncidentId={1}&NodeId={2}&send=1',800,600);return false;}}",
                                                       Page.ResolveUrl("~/Incidents/AddEMailMessage.aspx"), IncidentId, ib7.CommandArgument);
                        ib7.Attributes.Add("onclick", command);
                    }
                }
            }

            if (dgForum.Items.Count == 0)
            {
                dgForum.Visible   = false;
                divNoMess.Visible = true;

                divNoMess.InnerHtml = "<span style='color:red'>" + LocRM.GetString("NoMessages") + "</span>";
            }
            else
            {
                dgForum.Visible   = true;
                divNoMess.Visible = false;
            }
        }
示例#11
0
        private void BindEmail()
        {
            EMailMessageInfo mi = EMailMessageInfo.Load(EMailId);

            lblFrom.Text = mi.From;
            lblSubj.Text = mi.Subject;
            lblBody.Text = mi.HtmlBody;

            string sAttach = "";

            for (int i = 0; i < mi.Attachments.Length; i++)
            {
                AttachmentInfo ai    = mi.Attachments[i];
                int            id    = DSFile.GetContentTypeByFileName(ai.FileName);
                string         sIcon = "";
                if (id > 0)
                {
                    sIcon = String.Format("<img align='absmiddle' border='0' src='{0}' />", ResolveUrl("~/Common/ContentIcon.aspx?IconID=" + id));
                }
                //sAttach += String.Format("<nobr><a href='{0}'{2}>{1}</a></nobr> &nbsp;&nbsp;",
                //    ResolveUrl("~/Incidents/EmailAttachDownload.aspx")+"?EMailId="+EMailId.ToString()+"&AttachmentIndex="+i.ToString(),
                //    sIcon + "&nbsp;" + ai.FileName,
                //    Mediachase.IBN.Business.Common.OpenInNewWindow(ai.ContentType) ? " target='_blank'" : "");
                sAttach += String.Format("<nobr><a href='{0}'{2}>{1}</a></nobr> &nbsp;&nbsp;", WebDavUrlBuilder.GetEmailAtachWebDavUrl(EMailId, i, true),
                                         sIcon + "&nbsp;" + ai.FileName, Mediachase.IBN.Business.Common.OpenInNewWindow(ai.ContentType) ? " target='_blank'" : "");
            }
            lblAttach.Text = sAttach;
            lblBody.Text  += "&nbsp;";

            if (NodeId > 0)
            {
                ForumThreadNodeSettingCollection coll = new ForumThreadNodeSettingCollection(NodeId);
                if (!String.IsNullOrEmpty(coll[ForumThreadNodeSetting.AllRecipients]))
                {
                    lblTo.Text = coll[ForumThreadNodeSetting.AllRecipients];
                }
            }
        }