public RedirectToRouteResult Run(HttpPostedFileBase depfile) { try { var filename = Path.GetFileName(depfile.FileName); if (!filename.Contains(".fitflow.xml")) { throw new Exception("ファイル名が不正です。"); } var processKey = filename.Replace(".fitflow.xml", string.Empty); var processDefinitionId = base.ADbc.ACT_RE_PROCDEF.Where(d => d.KEY_ == processKey) .OrderByDescending(d => d.VERSION_).Select(d => d.ID_).FirstOrDefault(); if (processDefinitionId == null) { throw new Exception("プロセスキーが見つかりません。"); } var stream = new MemoryStream(); depfile.InputStream.CopyTo(stream); var xml = Encoding.UTF8.GetString(stream.ToArray()); var model = FitFlowUtil.XmlToModel <ProcessComplement>(xml); var ProcessComplements = new ProcessComplements { ProcessDefinitionId = processDefinitionId, ProcessKey = processKey, Resource = FitFlowUtil.ModelToXml(model) }; FitFlowUtil.Transform(dbc => { var record = dbc.ProcessComplements.Find(processDefinitionId); if (record == null) { dbc.ProcessComplements.Add(ProcessComplements); } else { record.Resource = ProcessComplements.Resource; } dbc.SaveChanges(); }); var deployment = new Deployment { Name = filename, DeploymentTime = DateTime.Now }; TempData["Deployment"] = deployment; } catch (Exception ex) { TempData["ErrorMessage"] = ex.Message; } return(RedirectToAction("Index", "Deploy")); }
public static ProcessComplement GetResource(this ProcessComplements @this) { return(FitFlowUtil.XmlToModel <ProcessComplement>(@this.Resource)); }
public static void SetResource(this ProcessComplements @this, ProcessComplement model) { @this.Resource = FitFlowUtil.ModelToXml(model); }