Пример #1
0
        /// <summary>
        /// 上传或加载页面时绑定已经上传的立项报告
        /// </summary>
        /// <param name="fNameInDocLib">The f name in document library.</param>
        private void BindMyFile(string fNameInDocLib)
        {
            fileDiv.Visible = true;
            proj_ProjectFile myPFile = ProjectDll.BLL.ProjectFileBll.GetFileByFileNameInDocLib(fNameInDocLib);

            if (myPFile != null)
            {
                fileDiv.Controls.Clear();
                var    hccFiles    = new HtmlGenericControl("div");
                string fileInfoStr = "<span> 已上传报告:</span>";
                fileInfoStr += myPFile.FileName + "(" + ProjectDll.DAL.Common.HumanReadableFilesize(double.Parse(myPFile.FileSize)) + ")&nbsp; &nbsp;";
                hccFiles.Controls.Add(new LiteralControl(fileInfoStr));
                var iBtnDel = new ImageButton
                {
                    ImageUrl         = "./images/delete.png",
                    ToolTip          = "点击删除该文件并重新上传",
                    Width            = 24,
                    CausesValidation = false,
                    CommandArgument  = myPFile.FileID.ToString(),
                    CommandName      = "fileDel" + myPFile.FileID,
                    ID            = "btnDel" + myPFile.FileID,
                    OnClientClick = "javascript:return confirm('确定删除该项目报告并重新上传吗?');"
                };
                iBtnDel.Click += btnDelFile_Click;
                iBtnDel.Attributes.Add("class", "btn");
                hccFiles.Controls.Add(iBtnDel);
                fileDiv.Controls.Add(hccFiles);
            }
        }
Пример #2
0
        /// <summary>
        /// Gets the name of the project identifier by file.
        /// </summary>
        /// <param name="pfName">Name of the pf.</param>
        /// <returns>System.Int64.</returns>
        public static long GetProjectIdByFileName(string pfName)
        {
            long pfId = 0;

            using (ProjectEntities db = new ProjectEntities())
            {
                proj_ProjectFile pFile = db.proj_ProjectFile.FirstOrDefault(w => w.FileName.Equals(pfName));
                if (pFile != null)
                {
                    pfId = pFile.FileID;
                }
            }
            return(pfId);
        }
Пример #3
0
 /// <summary>
 /// 删除文件
 /// </summary>
 /// <param name="fileId">文件ID</param>
 /// <param name="delBy">删除人ID</param>
 /// <param name="delTime">删除时间</param>
 /// <returns></returns>
 public static long DelFileById(long fileId, long delBy, DateTime delTime)
 {
     using (ProjectEntities db = new ProjectEntities())
     {
         proj_ProjectFile file = db.proj_ProjectFile.SingleOrDefault(p => p.FileID == fileId);
         if (file != null)
         {
             file.ModifiedBy = delBy;
             file.Modified   = delTime;
             file.Flag       = 0;//项目删除
             db.SaveChanges();
         }
         return(1);
     }
 }
Пример #4
0
        void btnDelFile_Click(object sender, ImageClickEventArgs e)
        {
            long userId = ProjectDll.BLL.User.GetUserId();
            var  btn    = (ImageButton)sender;

            btn.CausesValidation = false;
            long             fileId        = long.Parse(btn.CommandArgument);
            proj_ProjectFile pf            = ProjectDll.BLL.ProjectFileBll.GetFileByFileId(fileId);
            string           fNameInDocLib = pf.FileNameInDocLib;

            DelListItem(fNameInDocLib, "ProjectReports");                            //删除文档库文件
            ProjectDll.DAL.ProjectFileDAL.DelFileById(fileId, userId, DateTime.Now); //删除数据库项
            fileDiv.InnerHtml   = "你还未上传立项报告,请及时上传!";
            lixiangFile.Visible = true;
            btnNewFile.Visible  = true;
        }
Пример #5
0
 /// <summary>
 /// Inserts the project file.
 /// </summary>
 /// <param name="drFile"></param>
 /// <returns>System.Int64.</returns>
 public static long InsertProjectFile(proj_ProjectFile drFile)
 {
     using (ProjectEntities db = new ProjectEntities())
     {
         proj_ProjectFile projectFile = new proj_ProjectFile();
         projectFile.FileName         = drFile.FileName;
         projectFile.FileNameInDocLib = drFile.FileNameInDocLib;
         projectFile.FilePurpose      = drFile.FilePurpose;
         projectFile.FilePath         = drFile.FilePath;
         projectFile.FileSize         = drFile.FileSize;
         projectFile.CreatedBy        = drFile.CreatedBy;
         projectFile.Created          = drFile.Created;
         projectFile.Flag             = drFile.Flag;
         db.proj_ProjectFile.Add(projectFile);
         db.SaveChanges();
         return(projectFile.FileID);
     }
 }
Пример #6
0
        private void ShowLixiangFile(long projId)
        {
            proj_ProjectFile pFile = ProjectDll.BLL.ProjectFileBll.GetFileByProjIdandPurpose(projId, 1).FirstOrDefault();

            if (pFile != null)
            {
                hdfFile.Value = pFile.FileID.ToString();
                BindMyFile(pFile.FileNameInDocLib);
                lbDocType.Visible = false;
            }
            else
            {
                fileDiv.InnerHtml = "你还未上传立项报告,请及时上传!";
                fileDiv.Attributes.CssStyle.Add("color", "red");
                lixiangFile.Visible = true;
                lbDocType.Visible   = true;
                btnNewFile.Visible  = true;
            }
        }
Пример #7
0
        public static long UpdataFile(proj_ProjectFile drFile)
        {
            using (ProjectEntities db = new ProjectEntities())
            {
                proj_ProjectFile projectFile = db.proj_ProjectFile.SingleOrDefault(p => p.FileID == drFile.FileID);
                if (projectFile != null)
                {
                    projectFile.FileName         = drFile.FileName;
                    projectFile.FileNameInDocLib = drFile.FileNameInDocLib;
                    //projectFile.FilePurpose = drFile.FilePurpose;
                    projectFile.FilePath   = drFile.FilePath;
                    projectFile.FileSize   = drFile.FileSize;
                    projectFile.ModifiedBy = drFile.ModifiedBy;
                    projectFile.Modified   = drFile.Modified;

                    db.SaveChanges();
                }
                return(1);
            }
        }
Пример #8
0
        private void ShowLixiangFile(long projId)
        {
            proj_ProjectFile pFile = ProjectDll.BLL.ProjectFileBll.GetFileByProjIdandPurpose(projId, 1).FirstOrDefault();

            if (pFile != null)
            {
                hdfFile.Value      = pFile.FileID.ToString();
                fileInfo.InnerHtml = " 名称: <b> " + pFile.FileName + "  </b> 上传时间: <b> " + pFile.Created + " </b>";
                fileInfo.Attributes.CssStyle.Add("color", "black");
                lixiangFile.Visible   = false;
                lbDocType.Visible     = false;
                btnNewFile.Visible    = true;
                btnFileCancel.Visible = false;
            }
            else
            {
                fileInfo.InnerHtml = "你还未上传立项报告,请及时上传!";
                fileInfo.Attributes.CssStyle.Add("color", "red");
                lixiangFile.Visible = true;
                lbDocType.Visible   = true;
                btnNewFile.Visible  = true;
                btnNewFile.Text     = "现在上传";
            }
        }
Пример #9
0
        protected void SaveProject_OnClick(object sender, EventArgs e)
        {
            #region 表单更新信息(学科ID,项目介绍,修改时间,修改人)
            //学科选择
            long subjectId;
            if (long.Parse(ddlSubjectC.SelectedValue) != 0)
            {
                subjectId = long.Parse(ddlSubjectC.SelectedValue);
            }
            else
            {
                //当2级学科有值时
                if (long.Parse(ddlSubjectB.SelectedValue) != 0)
                {
                    subjectId = long.Parse(ddlSubjectB.SelectedValue);
                }
                else
                {
                    //当1级学科有值时
                    if (long.Parse(ddlSubjectA.SelectedValue) != 0)
                    {
                        subjectId = long.Parse(ddlSubjectA.SelectedValue);
                    }
                    else
                    {
                        ProjectDll.DAL.Common.Alert("还未选择项目所属学科!");
                        ddlSubjectA.Focus();
                        return;
                    }
                }
            }
            #endregion

            #region 判断项目立项报告是否修改

            if (hdfFile.Value != "0")
            {
                long             fileId = long.Parse(hdfFile.Value);
                proj_ProjectFile myfile = ProjectDll.BLL.ProjectFileBll.GetFileByProjIdandPurpose(fileId, 1).FirstOrDefault();//
                if (myfile != null)
                {
                    DelListItem(myfile.FileNameInDocLib, "ProjectReports");
                }
                ProjectDll.DAL.ProjectFileDAL.DelFileById(fileId, currentUserId, DateTime.Now);
            }

            #endregion

            #region 所有表单信息验证已通过,生成项目记录

            //判断是新建还是更新,新建则调用NewProject,否则调用UpdataProject
            long pid = GetUrlSendProjectId; //项目ID初始化
            if (pid > 0)                    //有项目ID传值,说明是编辑页面,则执行更新功能
            {
                var dr = new Proj_Project
                {
                    ProjectID  = pid,            //即将更新的项目Id
                    Introduce  = txtIntro.Value, //项目简介
                    ModifiedBy = currentUserId,  //发布人
                    ModifyTime = DateTime.Now,   //发布时间
                    SubjectID  = subjectId,      //学科ID
                    Flag       = 1               //显示隐藏标记
                };
                ProjectDll.DAL.ProjectDal.UpdateProjectById(dr);
            }
            Response.Redirect("MyProjects.aspx");
            Page.RegisterStartupScript("温馨提示", String.Format("<script language=\"javascript\">alert(\"{0}\");window.location.replace(\"{1}\")</script>", "项目: “" + lbPName.Text + "”更新成功!", "MyProjects.aspx"));
            //System.Web.HttpContext.Current.Response.Write(String.Format("<script language=\"javascript\">alert(\"{0}\");window.location.replace(\"{1}\")</script>", "项目更新成功!", "MyProjects.aspx"));
            //Response.Write("<script language='javascript'>alert('项目更新成功!');window.location='" + ProjectDll.DAL.Common.SPWeb.Url + "'/_layouts/15/Project/MyProjects.aspx'</script>");
            #endregion
        }
Пример #10
0
        protected void NewProject_OnClick(object sender, EventArgs e)
        {
            #region 表单信息(项目名称)
            //项目名称
            if (string.IsNullOrEmpty(txtPName.Text))//判断项目名称是否为空
            {
                ProjectDll.DAL.Common.Alert("项目名称不可为空!");
                txtPName.Focus();
                return;
            }
            var ds = ProjectDll.DAL.ProjectDal.GetProjectByTitle(txtPName.Text.Trim(' '));
            if (ds != null)//判断项目名称是否重复
            {
                ProjectDll.DAL.Common.Alert("项目名称已经存在,请重新填写!");
                txtPName.Focus();
                return;
            }
            //学科选择
            long subjectId;
            if (ddlSubjectC.Items.Count <= 0)
            {
                ProjectDll.DAL.Common.Alert("还未选择项目所属学科!");
                ddlSubjectA.Focus();
                return;
            }
            switch (ddlSubjectC.SelectedValue)
            {
            case null:
                ProjectDll.DAL.Common.Alert("还未选择项目所属学科!");
                ddlSubjectA.Focus();
                return;

            default:
                subjectId = long.Parse(ddlSubjectC.SelectedValue);
                break;
            }

            #endregion

            #region 判断项目立项报告是否准备好上传

            if (lixiangFile.HasFile && fileDiv.Visible == false)
            {
                ProjectDll.DAL.Common.Alert("你要上传的文档尚未提交!");
                lixiangFile.Focus();
                return;
            }

            #endregion

            #region 所有表单信息验证已通过,生成项目记录
            //新建项目,调用NewProject
            var dr = new Proj_Project
            {
                PName       = txtPName.Text,                                                           //项目名称
                PCode       = "P" + DateTime.Now.ToString("yy") + ProjectDll.BLL.RandomKeys.Number(6), //项目编码
                Introduce   = txtIntro.Value,                                                          //项目简介
                Sponsor     = currentUserId,                                                           //发布人
                CreatedDate = DateTime.Now,                                                            //发布时间
                SubjectID   = subjectId,                                                               //学科ID
                IsMatch     = 0,
                Flag        = 1                                                                        //显示隐藏标记
            };
            long pid = ProjectDll.DAL.ProjectDal.NewProject(dr);                                       //插入新项目记录,返回新的项目id

            if (hdfFile.Value != "0")                                                                  //更新立项报告关联的项目ID
            {
                var file = new proj_ProjectFile
                {
                    FileID     = long.Parse(hdfFile.Value),
                    ProjectID  = pid,
                    Modified   = DateTime.Now,
                    ModifiedBy = currentUserId,
                    Flag       = 1
                };
                ProjectDll.DAL.ProjectFileDAL.UpdataFile(file);
            }
            Page.RegisterStartupScript("温馨提示", String.Format("<script language=\"javascript\">alert(\"{0}\");window.location.replace(\"{1}\")</script>", "项目: “" + txtPName.Text + "”发布成功!", "MyProjects.aspx"));
            //Response.Write("<script language='javascript'>alert('新项目发布成功');window.location='" + ProjectDll.DAL.Common.SPWeb.Url + "'/_layouts/15/Project/MyProjects.aspx'</script>");
            #endregion
        }
Пример #11
0
        /// <summary>
        /// 上传附件
        /// </summary>
        /// <param name="docLibName">Name of the document library.</param>
        /// <param name="fUpload">The fupload.</param>
        /// <param name="type">The type.</param>
        private void AddWorkFile(string docLibName, FileUpload fUpload, int type)
        {
            long userId = ProjectDll.BLL.User.GetUserId();

            try
            {
                //SPSecurity.RunWithElevatedPrivileges(delegate()
                //{
                using (var elevatedsiteColl = new SPSite(MySite.ID))
                {
                    using (var elevatedSite = elevatedsiteColl.OpenWeb(MyWeb.ID))
                    {
                        string urlStr = elevatedSite.Url;
                        elevatedSite.AllowUnsafeUpdates = true;
                        SPList list = elevatedSite.Lists.TryGetList(docLibName);
                        if (list == null)     //如果没有文档库,先创建文档库
                        {
                            list = ProjectDll.DAL.ProjectFileDAL.CreateList(docLibName);
                        }
                        urlStr += "//" + docLibName;
                        var docLib = (SPDocumentLibrary)list;
                        if (fUpload.HasFile)
                        {
                            string fName       = Path.GetFileName(fUpload.PostedFile.FileName);
                            string fLength     = fUpload.PostedFile.ContentLength.ToString();
                            string fTypeString = Path.GetExtension(fName).ToLower();
                            fTypeString = fTypeString.TrimStart('.');
                            int?   fTypeId        = ProjectDll.BLL.ProjectFileBll.GetFileTypeByFileExtension(fTypeString).FileTypeID;
                            string fName0InDocLib = "";

                            //第一步: 数据库操作
                            var pFile = ProjectDll.BLL.ProjectFileBll.GetFileByCreatedBy(userId).First(f => f.ProjectID == 0 || f.ProjectID == null);//最新上传的且与项目无关联的
                            //判断数据库是否存在记录
                            string fName1InDocLib = "";
                            if (pFile != null)                                                                                                                                                                                    //存在记录,则更新数据库记录
                            {
                                fName0InDocLib = pFile.FileNameInDocLib;                                                                                                                                                          //原有文档库文件名
                                //文档库中文件名的命名规则:(新编号+上传日期)-上传者账户名-文件名
                                fName1InDocLib = (int.Parse(fName0InDocLib.Substring(0, 2)) + 1).ToString("00") + DateTime.Now.Year + ProjectDll.BLL.RandomKeys.Number(4) + "-" + ProjectDll.BLL.User.GetAccount() + "-" + fName; //新文档库文件名
                                urlStr        += "//" + fName1InDocLib;

                                var drFile = new proj_ProjectFile
                                {
                                    FileID           = pFile.FileID,
                                    ProjectID        = GetUrlSendProjectId,
                                    FileName         = fName,
                                    FileNameInDocLib = fName1InDocLib,
                                    FilePath         = urlStr,
                                    FileSize         = fLength,
                                    FileTypeID       = fTypeId,
                                    Modified         = DateTime.Now,
                                    ModifiedBy       = currentUserId,
                                    Flag             = 1
                                };
                                ProjectDll.DAL.ProjectFileDAL.UpdataFile(drFile);
                                hdfFile.Value = pFile.FileID.ToString();
                                BindMyFile(fName1InDocLib);
                            }
                            else    //不存在记录,则新建数据库记录并插入数据库
                            {
                                //文档库中文件名的命名规则:(编号+上传日期)-上传者账户名-文件名
                                fName1InDocLib = "01" + DateTime.Now.Year + ProjectDll.BLL.RandomKeys.Number(4) + "-" +
                                                 ProjectDll.BLL.User.GetAccount() + "-" + fName;    //新文档库文件名
                                urlStr += "//" + fName1InDocLib;
                                var drFile = new proj_ProjectFile
                                {
                                    FileName         = fName,
                                    FileNameInDocLib = fName1InDocLib,
                                    FileTypeID       = fTypeId,
                                    FilePurpose      = 1,
                                    FilePath         = urlStr,
                                    FileSize         = fLength,
                                    Created          = DateTime.Now,
                                    CreatedBy        = currentUserId,
                                    Flag             = 1
                                };
                                long fid = ProjectDll.DAL.ProjectFileDAL.InsertProjectFile(drFile);
                                hdfFile.Value = fid.ToString();
                                BindMyFile(fName1InDocLib);
                            }


                            //第二步: 文档库操作
                            Stream stm     = fUpload.PostedFile.InputStream;
                            int    iLength = (int)stm.Length;
                            if (iLength > 0)
                            {
                                SPFolder rootFolder  = docLib.RootFolder;
                                Byte[]   filecontent = new byte[iLength];
                                stm.Read(filecontent, 0, iLength);
                                try
                                {
                                    bool isDocHave = ProjectDll.DAL.ProjectFileDAL.JudgeIsExistInDocLib(docLib, fName0InDocLib, type); //判断文档库是否存在该文件

                                    if (isDocHave)                                                                                     //存在,则删除文档库中同名文档
                                    {
                                        //ProjectDll.DAL.Common.ShowMessage(this.Page, this.GetType(), "请注意,该文件已存在,上传后自动覆盖已有文件!");
                                        DelListItem(fName0InDocLib, docLibName);
                                    }
                                    //上传文档
                                    rootFolder.Files.Add(fName1InDocLib, filecontent, true);
                                }
                                catch (Exception ex)
                                {
                                    ProjectDll.DAL.Common.ShowMessage(this.Page, this.GetType(), "出错了,请报告给管理员!");
                                }
                                finally
                                {
                                    stm.Close();
                                }
                            }
                        }
                        elevatedSite.AllowUnsafeUpdates = false;
                    }
                }
                //});
            }
            catch (Exception ex)
            {
                ProjectDll.DAL.Common.ShowMessage(this.Page, this.GetType(), "出错了,请报告给管理员!");
            }
            finally
            {
            }
            //BindGridView((DataTable)ViewState[viewStateName], gv);
        }
Пример #12
0
        public static proj_ProjectFile GetFileByFileNameInDocLib(string fileNameInDocLib)
        {
            proj_ProjectFile file = DAL.ProjectFileDAL.GetFiles().FirstOrDefault(f => f.FileNameInDocLib == fileNameInDocLib & f.Flag == 1);

            return(file);
        }
Пример #13
0
        /// <summary>
        /// 上传附件
        /// </summary>
        /// <param name="docLibName">Name of the document library.</param>
        /// <param name="fUpload">The fupload.</param>
        /// <param name="type">The type.</param>
        private void AddWorkFile(string docLibName, FileUpload fUpload, int type)
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite elevatedsiteColl = new SPSite(MySite.ID))
                    {
                        using (SPWeb elevatedSite = elevatedsiteColl.OpenWeb(MyWeb.ID))
                        {
                            string urlStr = elevatedSite.Url;
                            elevatedSite.AllowUnsafeUpdates = true;
                            SPList list = elevatedSite.Lists.TryGetList(docLibName);
                            if (list == null) //如果没有文档库,先创建文档库
                            {
                                list   = ProjectDll.DAL.ProjectFileDAL.CreateList(docLibName);
                                urlStr = urlStr + "\\" + docLibName;
                            }
                            var docLib = (SPDocumentLibrary)list;
                            if (fUpload.HasFile)
                            {
                                string fName          = Path.GetFileName(fUpload.PostedFile.FileName);
                                string fLength        = fUpload.PostedFile.ContentLength.ToString();
                                int?fTypeId           = ProjectDll.BLL.ProjectFileBll.GetFileTypeByFileExtension(Path.GetExtension(fName).ToLower()).FileTypeID;
                                string fName0InDocLib = "";
                                string fName1InDocLib = "";
                                //判断数据库中是否存在该文件
                                proj_ProjectFile pFile = ProjectDll.DAL.ProjectFileDAL.JudgeIsExistInDb(fName, currentUserId);
                                //判断数据库
                                if (pFile != null)
                                {
                                    fName0InDocLib = pFile.FileNameInDocLib;//原有文档库文件名
                                    fName1InDocLib = (int.Parse(fName0InDocLib.Substring(0, 2)) + 1).ToString() +
                                                     DateTime.Now.Year + "-" +
                                                     ProjectDll.BLL.User.GetAccount() + "-" + fName;//新文档库文件名
                                    urlStr += "\\" + fName1InDocLib;
                                    proj_ProjectFile drFile = new proj_ProjectFile
                                    {
                                        FileID           = pFile.FileID,
                                        FileName         = fName,
                                        FileNameInDocLib = fName1InDocLib,
                                        FilePath         = urlStr,
                                        FileSize         = fLength,
                                        Modified         = DateTime.Now,
                                        ModifiedBy       = currentUserId,
                                        Flag             = 1
                                    };
                                    ProjectDll.DAL.ProjectFileDAL.UpdataFile(drFile);
                                    //数据库中有记录,更新数据库
                                }
                                else
                                {
                                    //如果没有,则新建记录插入数据库
                                    fName1InDocLib = (int.Parse(fName0InDocLib.Substring(0, 2)) + 1).ToString() +
                                                     DateTime.Now.Year + "-" +
                                                     ProjectDll.BLL.User.GetAccount() + "-" + fName;//新文档库文件名
                                    urlStr += "\\" + fName1InDocLib;
                                    proj_ProjectFile drFile = new proj_ProjectFile
                                    {
                                        FileName         = fName,
                                        FileNameInDocLib = fName1InDocLib,
                                        FileTypeID       = fTypeId,
                                        FilePurpose      = 1,
                                        FilePath         = urlStr,
                                        FileSize         = fLength,
                                        Created          = DateTime.Now,
                                        CreatedBy        = currentUserId,
                                        Flag             = 1
                                    };
                                    ProjectDll.DAL.ProjectFileDAL.InsertProjectFile(drFile);
                                }

                                Stream stm  = fUpload.PostedFile.InputStream;
                                int iLength = (int)stm.Length;
                                if (iLength > 0)
                                {
                                    SPFolder rootFolder = docLib.RootFolder;
                                    Byte[] filecontent  = new byte[iLength];
                                    stm.Read(filecontent, 0, iLength);
                                    try
                                    {
                                        SPFile f;
                                        //如果在文档库中有,删除文档库中同名文档后,上传文档
                                        bool isDocHave = ProjectDll.DAL.ProjectFileDAL.JudgeIsExistInDocLib(docLib, fName0InDocLib, type);
                                        //判断文档库
                                        if (isDocHave)
                                        {
                                            //ProjectDll.DAL.Common.ShowMessage(this.Page, this.GetType(), "请注意,该文件已存在,上传后自动覆盖已有文件!");
                                            DelListItem(fName0InDocLib, docLibName);
                                            rootFolder.Files.Add(fName1InDocLib, filecontent, true);
                                        }
                                        else
                                        {
                                            rootFolder.Files.Add(fName1InDocLib, filecontent, true);
                                        }
                                        //urlStr += "\\" + fName1InDocLib;
                                    }
                                    catch (Exception ex)
                                    {
                                        ProjectDll.DAL.Common.Alert(ex.ToString());
                                    }
                                    finally
                                    {
                                        stm.Close();
                                    }
                                }
                            }
                            elevatedSite.AllowUnsafeUpdates = false;
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                ProjectDll.DAL.Common.Alert(ex.ToString());
                // DAL.Common.ShowMessage(this.Page, this.GetType(), "出错了,请报告给管理员!");
            }
            finally
            {
            }
            //BindGridView((DataTable)ViewState[viewStateName], gv);
        }
Пример #14
0
        /// <summary>
        /// 保存项目按钮,更新记录
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        protected void SaveProject_OnClick(object sender, EventArgs e)
        {
            #region 表单更新信息(学科ID,项目介绍,修改时间,修改人)
            //学科选择
            long subjectId;
            if (long.Parse(ddlSubjectC.SelectedValue) != 0)
            {
                subjectId = long.Parse(ddlSubjectC.SelectedValue);
            }
            else
            {
                //当2级学科有值时
                if (long.Parse(ddlSubjectB.SelectedValue) != 0)
                {
                    subjectId = long.Parse(ddlSubjectB.SelectedValue);
                }
                else
                {
                    //当1级学科有值时
                    if (long.Parse(ddlSubjectA.SelectedValue) != 0)
                    {
                        subjectId = long.Parse(ddlSubjectA.SelectedValue);
                    }
                    else
                    {
                        ProjectDll.DAL.Common.Alert("还未选择项目所属学科!");
                        ddlSubjectA.Focus();
                        return;
                    }
                }
            }
            #endregion

            #region 判断项目立项报告是否修改

            if (hdfFile.Value != "0")
            {
                long             fileId = long.Parse(hdfFile.Value);
                proj_ProjectFile myfile = ProjectDll.BLL.ProjectFileBll.GetFileByProjIdandPurpose(fileId, 1).FirstOrDefault();

                ProjectDll.DAL.ProjectFileDAL.DelFileById(fileId, currentUserId, DateTime.Now);
                //if (myfile != null)
                //{
                //    string fileName = myfile.FileName;

                //    DelListItem(fileName, "ProjectReports");
                //}
                var allowUpload = IsAllowUpload(lixiangFile);

                if (allowUpload)
                {
                    AddWorkFile("ProjectReports", lixiangFile, 1);
                }
                else
                {
                    ProjectDll.DAL.Common.Alert("你还未选择新版立项报告,或者您上传的报告文档格式不对或大小超出限制!");
                    lixiangFile.Focus();
                }
            }

            #endregion

            #region 所有表单信息验证已通过,生成项目记录
            var dr = new Proj_Project();

            //判断是新建还是更新,新建则调用NewProject,否则调用UpdataProject
            long pid = GetUrlSendProjectId; //项目ID初始化
            if (pid > 0)                    //有项目ID传值,说明是编辑页面,则执行更新功能
            {
                dr = new Proj_Project
                {
                    ProjectID  = pid,            //即将更新的项目Id
                    Introduce  = txtIntro.Value, //项目简介
                    ModifiedBy = currentUserId,  //发布人
                    ModifyTime = DateTime.Now,   //发布时间
                    SubjectID  = subjectId,      //学科ID
                    Flag       = 1               //显示隐藏标记
                };
                ProjectDll.DAL.ProjectDal.UpdateProjectById(dr);
            }

            Response.Write("<script language='javascript'>alert('项目更新成功!');window.location='" + ProjectDll.DAL.Common.SPWeb.Url + "'/_layouts/15/Project/MyProjects.aspx'</script>");
            #endregion
        }
Пример #15
0
        /// <summary>
        /// 上传附件
        /// </summary>
        /// <param name="web">The web.</param>
        /// <param name="docLibName">Name of the document library.</param>
        /// <param name="fUpload">The fupload.</param>
        /// <param name="viewStateName">Name of the view state.</param>
        /// <param name="gv">The GridView.</param>
        /// <param name="type">The type.</param>
        private void AddWorkFile(SPWeb web, string docLibName, FileUpload fUpload, String viewStateName, GridView gv, int type)
        {
            try
            {
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite elevatedsiteColl = new SPSite(MySite.ID))
                    {
                        using (SPWeb elevatedSite = elevatedsiteColl.OpenWeb(MyWeb.ID))
                        {
                            string urlStr = elevatedSite.Url;
                            elevatedSite.AllowUnsafeUpdates = true;
                            SPList list = elevatedSite.Lists.TryGetList(docLibName);
                            //如果没有文档库,生成文档库
                            if (list == null)
                            {
                                list   = ProjectDll.DAL.ProjectFileDAL.CreateList(docLibName);
                                urlStr = urlStr + "\\" + docLibName;
                            }
                            var docLib = (SPDocumentLibrary)list;
                            if (fUpload.HasFile)
                            {
                                //数据库

                                //判断是否存在
                                if (JudgeSize(fUpload.PostedFile.ContentLength))//判断文件大小是否超出限制
                                {
                                    ProjectDll.DAL.Common.ShowMessage(this.Page, this.GetType(), "超出上传文档大小限制!");
                                }
                                else
                                {
                                    string fname = type.ToString().PadLeft(2, '0') + DateTime.Now.Year + ddlSubjectC.SelectedValue.PadLeft(4, '0') + "-" + ProjectDll.BLL.User.GetAccount() + "-" + Path.GetFileName(fUpload.PostedFile.FileName);
                                    Stream stm   = fUpload.PostedFile.InputStream;
                                    int iLength  = (int)stm.Length;
                                    if (iLength > 0)
                                    {
                                        SPFolder rootFolder = docLib.RootFolder;
                                        Byte[] filecontent  = new byte[iLength];
                                        stm.Read(filecontent, 0, iLength);
                                        try
                                        {
                                            SPFile f;
                                            //如果在文档库中有,删除文档库中同名文档后,上传文档
                                            bool isDocHave = false;
                                            isDocHave      = ProjectDll.DAL.ProjectFileDAL.JudgeIsExistInDocLib(docLib, fname, type);

                                            proj_ProjectFile pFile = ProjectDll.DAL.ProjectFileDAL.JudgeIsExistInDb(fname, currentUserId);
                                            //判断文档库
                                            if (isDocHave)
                                            {
                                                ProjectDll.DAL.Common.ShowMessage(this.Page, this.GetType(), "请注意,该文件已存在,上传后自动覆盖已有文件!");
                                                DelList(fname, type.ToString());
                                                f = rootFolder.Files.Add(fname, filecontent, true);
                                            }
                                            else
                                            {
                                                f = rootFolder.Files.Add(fname, filecontent, true);
                                            }
                                            urlStr += "\\" + fname;

                                            ////判断数据库
                                            //if (isDBHave)
                                            //{
                                            //    //如果数据库中有,更新数据库
                                            //}
                                            //else
                                            //{
                                            //    //如果没有插入数据库

                                            //    //数据库

                                            //}
                                        }
                                        catch (Exception ex)
                                        {
                                            ProjectDll.DAL.Common.Alert(ex.ToString());
                                        }
                                        finally
                                        {
                                            stm.Close();
                                        }
                                    }
                                }
                            }
                            elevatedSite.AllowUnsafeUpdates = false;
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                ProjectDll.DAL.Common.Alert(ex.ToString());
                // DAL.Common.ShowMessage(this.Page, this.GetType(), "出错了,请报告给管理员!");
            }
            finally
            {
            }
            //BindGridView((DataTable)ViewState[viewStateName], gv);
        }