Пример #1
0
        public ActionResult <string> delete([FromForm] InsertedNode parameter)
        {
            ElementDAO elementDAO = new ElementDAO();

            String parent = (parameter.parentid.Equals(Element.getRoot().getId()) ? "" : parameter.parentid + ".");

            using (var conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;Database=nasca;Encoding=UTF-8;User Id=postgres;Password=nomura;"))
            {
                conn.Open();

                using (var tran = conn.BeginTransaction())
                {
                    //更新対象とその子エレメントを取得します。
                    Element        target   = elementDAO.selectByID(parent + parameter.id);
                    List <Element> children = target.getChild();

                    //子エレメントとその依存を更新します。
                    foreach (Element child in children)
                    {
                        this.deleteDependency(conn, tran, child.getId());

                        //子エレメントの更新
                        elementDAO.delete(conn, tran, child.getId());
                    }

                    this.deleteDependency(conn, tran, parent + parameter.id);

                    elementDAO.delete(conn, tran, parent + parameter.id);

                    tran.Commit();
                }
            }

            return(JsonConvert.SerializeObject(new { }));
        }
Пример #2
0
        public ActionResult <string> update([FromForm] InsertedNode parameter)
        {
            ElementDAO elementDAO = new ElementDAO();

            String parent = (parameter.parentid.Equals(Element.getRoot().getId()) ? "" : parameter.parentid + ".");

            using (var conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;Database=nasca;Encoding=UTF-8;User Id=postgres;Password=nomura;"))
            {
                conn.Open();

                using (var tran = conn.BeginTransaction())
                {
                    try
                    {
                        //更新対象とその子エレメントを取得します。
                        Element        target   = elementDAO.selectByID(parameter.originalid);
                        List <Element> children = target.getChild();

                        //ID変更の場合
                        if (parameter.originalid != parent + parameter.id)
                        {
                            var re = new Regex(parameter.originalid);

                            //子エレメントとその依存を更新します。
                            foreach (Element child in children)
                            {
                                this.updateDependencyID(conn, tran, child.getId(), re.Replace(child.getId(), parent + parameter.id, 1));

                                //子エレメントの更新
                                elementDAO.update(
                                    conn,
                                    tran,
                                    child.getId(),
                                    re.Replace(child.getId(), parent + parameter.id, 1),
                                    child.getName(),
                                    child.getType(),
                                    child.getRemark());
                            }
                        }

                        this.updateDependencyID(conn, tran, parameter.originalid, parent + parameter.id);

                        elementDAO.update(
                            conn,
                            tran,
                            parameter.originalid,
                            parent + parameter.id,
                            parameter.name,
                            parameter.type,
                            parameter.remark
                            );

                        tran.Commit();
                    }
                    catch
                    {
                        tran.Rollback();
                    }
                }
            }

            return(JsonConvert.SerializeObject(new { }));
        }