public void SaveSolutionFile(Sender sender, SaveSolutionFileArgs args) { try { using (ObjectProxy op = new ObjectProxy(true)) { SolutionFile obj = new SolutionFile(); obj.FileID = args.SolutionFile.FileID; if (op.LoadSolutionFileByFileID(obj) == 0) { args.SolutionFile.Created = DateTime.Now; args.SolutionFile.CreatedBy = sender.UserCode + "." + sender.UserName; args.SolutionFile.Modified = DateTime.Now; args.SolutionFile.ModifiedBy = sender.UserCode + "." + sender.UserName; op.InsertSolutionFile(args.SolutionFile); } else { args.SolutionFile.Created = DateTime.Now; args.SolutionFile.CreatedBy = sender.UserCode + "." + sender.UserName; args.SolutionFile.Modified = DateTime.Now; args.SolutionFile.ModifiedBy = sender.UserCode + "." + sender.UserName; op.UpdateSolutionFileByFileID(args.SolutionFile); } op.CommitTransaction(); } } 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); } }