Beispiel #1
0
 public SearchResult SearchSolutionFile(Sender sender, SearchSolutionFileArgs args)
 {
     try
     {
         using (ObjectProxy op = new ObjectProxy())
         {
             return(op.SearchSolutionFile(args));
         }
     }
     catch (Exception ex)
     {
         PLogger.LogError(ex);
         throw ex;
     }
 }
        public void UploadSolutionFile()
        {
            try
            {
                #region 文件上传
                Response.ContentType = "text/plain";
                Response.Charset     = "utf-8";
                HttpPostedFile file = null;
                try
                {
                    file = Request.Files["Filedata"];
                }
                catch
                {
                    throw new Exception("文件上传无效。");
                }
                if (string.IsNullOrEmpty(Request["ReferenceID"]))
                {
                    throw new Exception("参数无效。");
                }
                string PartnerID = Convert.ToString(CurrentUser.PartnerID);
                string TaskID    = Request["TaskID"];
                string FileType  = Request["FileType"];
                string SavePath  = DateTime.Now.ToString("yyyyMMdd") + "\\";

                //yyyyMMdd/PartnerID/文件类型(SolutionFile)/TaskID/FileName

                if (!string.IsNullOrEmpty(PartnerID))
                {
                    SavePath = Path.Combine(SavePath, PartnerID);
                }
                if (!string.IsNullOrEmpty(TaskID))
                {
                    SavePath = Path.Combine(SavePath, TaskID);
                }
                if (!string.IsNullOrEmpty(FileType))
                {
                    SavePath = Path.Combine(SavePath, FileType);
                }
                SavePath = Path.Combine(SavePath, Path.GetFileName(file.FileName));

                //通过SE上传文件,SE服务缺失,暂时注释
                //using (ProxySE ps = new ProxySE())
                //{
                //    byte[] buffer = new byte[file.ContentLength];
                //    Stream sr = file.InputStream;
                //    sr.Read(buffer, 0, file.ContentLength);
                //    ps.Client.UploadDoumentFile(SenderUser, SavePath, buffer);
                //}
                #endregion

                using (ProxyBE p = new ProxyBE())
                {
                    #region 方案文件
                    Solution solution = p.Client.GetSolutionByDesignerID(SenderUser, Guid.Parse(Request["ReferenceID"].ToString()));
                    SearchSolutionFileArgs fielArgs = new SearchSolutionFileArgs();
                    fielArgs.SolutionID = solution.SolutionID;
                    SearchResult sr      = p.Client.SearchSolutionFile(SenderUser, fielArgs);
                    List <Guid>  FileIDs = new List <Guid>();
                    if (sr.Total > 0)
                    {
                        foreach (DataRow row in sr.DataSet.Tables[0].Rows)
                        {
                            FileIDs.Add(new Guid(row["FileID"].ToString()));
                        }
                    }
                    if (solution == null)
                    {
                        throw new Exception("方案无效。");
                    }
                    if (FileIDs.Count > 0)
                    {
                        foreach (Guid item in FileIDs)
                        {
                            p.Client.DeleteSolutionFile(SenderUser, item);
                        }
                    }
                    SolutionFile solutionFile = new SolutionFile();
                    solutionFile.FileID     = Guid.NewGuid();
                    solutionFile.SolutionID = solution.SolutionID;
                    solutionFile.SourceID   = solution.SolutionID;
                    solutionFile.SourceType = "S";
                    solutionFile.Status     = "N";
                    solutionFile.FileName   = Path.GetFileName(SavePath);
                    solutionFile.FileUrl    = SavePath;

                    SaveSolutionFileArgs solutionFileAgrs = new SaveSolutionFileArgs();
                    solutionFileAgrs.SolutionFile = solutionFile;
                    p.Client.SaveSolutionFile(SenderUser, solutionFileAgrs);
                    #endregion

                    #region 任务流程
                    PartnerTask task = p.Client.GetPartnerTask(SenderUser, Guid.Parse(TaskID));
                    if (task != null)
                    {
                        SavePartnerTaskArgs taskArgs = new SavePartnerTaskArgs();
                        taskArgs.PartnerTask       = task;
                        task.StepName              = "生成报价明细";
                        taskArgs.NextStep          = "生成报价明细";
                        taskArgs.Resource          = CurrentUser.UserCode; //当前处理组
                        taskArgs.NextResource      = "CPT";                //下一个组
                        taskArgs.Action            = "设计师重新上传方案";
                        taskArgs.ActionRemarksType = "";
                        taskArgs.ActionRemarks     = "设计师重新上传方案";
                        p.Client.SavePartnerTask(SenderUser, taskArgs);
                        WriteSuccess();
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                WriteError(ex.Message, ex);
            }
        }