Exemplo n.º 1
0
        public override Nancy.Response Method(Request request)
        {
            var body = request.Body.AsString();

            // Здесь нода - присоединяемая нода, в группе - id ноды к которой присоединяем дерево
            var tree = Newtonsoft.Json.JsonConvert.DeserializeObject <Tree>(body);

            using (var connection = db.Db)
                using (var transaction = connection.BeginTransaction(IsolationLevel.RepeatableRead))
                {
                    int? connectionId = tree.group.id; // присоединяемая нода
                    Node node         = tree.node;     // нода, к которой коннектимся

                    //получим id группы к которой присоединяем дерево
                    var connNode    = connection.Get <Models.Bonds>(connectionId, transaction);
                    var newGroup    = connNode.groupId;
                    var newParentId = connNode.nodeId;

                    // var node = bondsList.First(e => e.parentId == null);
                    //var nodeId = node.id;
                    Move(tree.node, connection, transaction, newParentId, newGroup);

                    transaction.Commit();
                }

            return(Resp.SendResponse());
        }
Exemplo n.º 2
0
        public override Nancy.Response Method(Request request)
        {
            int nodeId = request.Query["nodeId"];

            using (var connection = db.Db)
                using (var transaction = connection.BeginTransaction(IsolationLevel.Serializable))
                {
                    var idList = new List <int>();
                    idList.Add(nodeId);

                    var list = connection.GetList <Models.Bonds>().ToList();
                    StartSelect(ref idList, list, nodeId);

                    foreach (var id in idList)
                    {
                        var bonds = "delete from bonds where id=@id";
                        var units = "delete from units where id=@id";

                        connection.Query(bonds, new { id }, transaction);
                        connection.Query(units, new { id }, transaction);
                    }

                    transaction.Commit();
                }
            return(Resp.SendResponse());
        }
Exemplo n.º 3
0
        public override Nancy.Response Method(Request request)
        {
            int groupId = request.Query["groupId"];

            using (var connection = db.Db)
                using (var transaction = connection.BeginTransaction(IsolationLevel.Serializable))
                {
                    var sqlList = "select id from bonds where groupId=@groupId";
                    var listId  = connection.Query <int>(sqlList, new { groupId }, transaction).ToList();

                    var sqlUnits = "delete from units where id=@id";

                    foreach (var id in listId)
                    {
                        connection.Query(sqlUnits, new { id }, transaction);
                    }

                    var sqlBonds = "delete from bonds where groupId=@groupId";
                    connection.Query(sqlBonds, new{ groupId }, transaction);

                    var sqlGroups = "delete from groupsnodes where id=@groupId";
                    connection.Query(sqlGroups, new { groupId }, transaction);

                    transaction.Commit();
                }

            return(Resp.SendResponse());
        }
Exemplo n.º 4
0
        public override Nancy.Response Method(Request request)
        {
            List <SatanaServer.Types> types = db.Db.GetList <SatanaServer.Types>().ToList();

            var myJson    = JsonConvert.SerializeObject(types);
            var jsonBytes = Encoding.UTF8.GetBytes(myJson);

            return(Resp.SendResponse(jsonBytes));
        }
Exemplo n.º 5
0
        public override Nancy.Response Method(Request request)
        {
            var groupList = db.Db.GetList <Models.Groups>();

            var myJson    = JsonConvert.SerializeObject(groupList);
            var jsonBytes = Encoding.UTF8.GetBytes(myJson);

            return(Resp.SendResponse(jsonBytes));
        }
Exemplo n.º 6
0
        public override Nancy.Response Method(Request request)
        {
            int nodeId = request.Query["nodeId"];

            var unit = db.Db.Get <Unit>(nodeId);

            var myJson    = JsonConvert.SerializeObject(unit);
            var jsonBytes = Encoding.UTF8.GetBytes(myJson);

            return(Resp.SendResponse(jsonBytes));
        }
Exemplo n.º 7
0
        public override Nancy.Response Method(Request request)
        {
            int groupId = request.Query["groupId"];

            string      sql   = "SELECT * FROM Bonds WHERE groupId=@groupId";
            List <Node> bonds = db.Db.Query <Node>(sql, new{ groupId }).ToList();

            var myJson    = JsonConvert.SerializeObject(bonds);
            var jsonBytes = Encoding.UTF8.GetBytes(myJson);

            return(Resp.SendResponse(jsonBytes));
        }
Exemplo n.º 8
0
        public override Nancy.Response Method(Request request)
        {
            var body = request.Body.AsString();

            var node = Newtonsoft.Json.JsonConvert.DeserializeObject <Node>(body);

            var bonds = new Models.Bonds()
            {
                parentId = node.parentId,
                groupId  = node.groupId
            };

            int?id = null;

            using (var connection = db.Db)
                using (var transaction = connection.BeginTransaction(IsolationLevel.Serializable))
                {
                    var parent = connection.Get <Unit>(node.parentId);

                    if (!string.IsNullOrEmpty(parent.name))
                    {
                        id = connection.Insert(bonds, transaction);

                        if (id != null)
                        {
                            bonds.id     = id;
                            bonds.nodeId = id;
                            connection.Update(bonds, transaction);

                            node.Unit.id                  = (int)id;
                            node.Unit.dependence          = parent.name;
                            node.Unit.curatorial_position = parent.position;
                            node.Unit.curatorial_fullname = parent.fullname;
                            node.id     = id;
                            node.nodeId = id;

                            var type = connection.Get <SatanaServer.Types>(node.Unit.type, transaction);
                            node.Unit.type = type.name;

                            connection.Insert(node.Unit, transaction);

                            transaction.Commit();
                        }
                    }
                }

            var myJson    = JsonConvert.SerializeObject(id);
            var jsonBytes = Encoding.UTF8.GetBytes(myJson);

            return(Resp.SendResponse(HttpStatusCode.OK, jsonBytes));
        }
Exemplo n.º 9
0
        public override Nancy.Response Method(Request request)
        {
            var body = request.Body.AsString();

            var node = Newtonsoft.Json.JsonConvert.DeserializeObject<Node>(body);

            var unit = node.Unit;

            var type = db.Db.Get<SatanaServer.Types>(node.Unit.type);
            unit.type = type.name;

            var success = db.Db.Update(unit);

            if (success != 1) return Resp.SendResponse(HttpStatusCode.Conflict);

            return Resp.SendResponse();
        }
Exemplo n.º 10
0
        public override Nancy.Response Method(Request request)
        {
            var body = request.Body.AsString();

            var tree = Newtonsoft.Json.JsonConvert.DeserializeObject <Tree>(body);

            using (var connection = db.Db)
                using (var transaction = connection.BeginTransaction(IsolationLevel.RepeatableRead))
                {
                    int?id = connection.Insert(tree.group, transaction);

                    Move(tree.node, connection, transaction, null, id);

                    transaction.Commit();
                }

            return(Resp.SendResponse());
        }
Exemplo n.º 11
0
        public override Nancy.Response Method(Request request)
        {
            var body = request.Body.AsString();

            var items = Newtonsoft.Json.JsonConvert.DeserializeObject <List <int?> >(body);
            Dictionary <int?, string> dictionary = new Dictionary <int?, string>();

            using (var connection = db.Db)
                using (var transaction = connection.BeginTransaction(IsolationLevel.RepeatableRead))
                {
                    foreach (var t in items)
                    {
                        Unit unit = connection.Get <Unit>(t, transaction);

                        dictionary.Add(t, unit.fullname);
                    }
                }

            var myJson    = JsonConvert.SerializeObject(dictionary);
            var jsonBytes = Encoding.UTF8.GetBytes(myJson);

            return(Resp.SendResponse(HttpStatusCode.OK, jsonBytes));
        }
Exemplo n.º 12
0
        public override Nancy.Response Method(Request request)
        {
            var body = request.Body.AsString();

            var tree = Newtonsoft.Json.JsonConvert.DeserializeObject <Tree>(body);

            using (var connection = db.Db)
                using (var transaction = connection.BeginTransaction(IsolationLevel.Serializable))
                {
                    int?id = connection.Insert(tree.group, transaction);

                    var type = connection.Get <SatanaServer.Types>(tree.node.Unit.type, transaction);
                    tree.node.Unit.type = type.name;

                    int?nodeId = connection.Insert(new Models.Bonds()
                    {
                        groupId  = id,
                        parentId = null
                    }, transaction);

                    connection.Update(new Models.Bonds()
                    {
                        groupId  = id,
                        parentId = null,
                        nodeId   = nodeId,
                        id       = nodeId
                    }, transaction);

                    tree.node.Unit.id = nodeId;

                    connection.Insert(tree.node.Unit, transaction);

                    transaction.Commit();
                }

            return(Resp.SendResponse());
        }