public void DeleteGraph()
        {
            using (IUnitOfWork work = ServiceLocator.Current.GetInstance <IUnitOfWork>())
                using (IUnitTransaction transaction = work.Transaction)
                {
                    IGenericDataContext <Edge> edgeRepository = work.GetGenericRepository <Edge>();
                    IGenericDataContext <Node> nodeRepository = work.GetGenericRepository <Node>();

                    edgeRepository.Entities.RemoveRange(edgeRepository.Entities);
                    nodeRepository.Entities.RemoveRange(nodeRepository.Entities);

                    transaction.Commit();
                    work.Save();
                }
        }
        public void SaveGraph(IList <Node> nodes)
        {
            using (IUnitOfWork work = ServiceLocator.Current.GetInstance <IUnitOfWork>())
                using (IUnitTransaction transaction = work.Transaction)
                {
                    IGenericDataContext <Node> nodeRepository = work.GetGenericRepository <Node>();
                    IGenericDataContext <Edge> edgeRepository = work.GetGenericRepository <Edge>();

                    foreach (Node node in nodes)
                    {
                        nodeRepository.Insert(node);

                        foreach (Edge edge in node.OutEdges)
                        {
                            edgeRepository.Insert(edge);
                        }
                    }

                    transaction.Commit();
                    work.Save();
                }
        }