예제 #1
0
        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"));
        }
예제 #2
0
 public static ProcessComplement GetResource(this ProcessComplements @this)
 {
     return(FitFlowUtil.XmlToModel <ProcessComplement>(@this.Resource));
 }
예제 #3
0
 public static void SetResource(this ProcessComplements @this, ProcessComplement model)
 {
     @this.Resource = FitFlowUtil.ModelToXml(model);
 }