Ejemplo n.º 1
0
        public static void InsertData(string username, string title, string url, string[] tags, string notes)
        {
            using (var scope = new TransactionScope(TransactionScopeOption.Required, 
                new TransactionOptions{ IsolationLevel = IsolationLevel.RepeatableRead }))
            {
                var context = new BookmarksEntities();
                User user = CreateOrLoadUser(context, username);
                var bookmark = new Bookmark { User = user, Title = title, Notes = notes, Url = url };

                foreach (var tagName in tags)
                {
                    var tag = CreateOrLoadTag(context, tagName);
                    bookmark.Tags.Add(tag);
                }

                context.Bookmarks.Add(bookmark);
                context.SaveChanges();
            }
        }
Ejemplo n.º 2
0
        private static Tag CreateOrLoadTag(BookmarksEntities context, string tagName)
        {
            var tag = context.Tags.FirstOrDefault(x => x.TagName == tagName);
            if (tag != null)
            {
                return tag;
            }

            var newTag = new Tag()
            {
                TagName = tagName
            };
            context.Tags.Add(newTag);
            context.SaveChanges();
            return newTag;
        }
Ejemplo n.º 3
0
        private static User CreateOrLoadUser(BookmarksEntities context, string username)
        {
            var user = context.Users.FirstOrDefault(x => x.Username == username);
            if (user != null)
            {
                return user;
            }

            var newUser = new User()
            {
                Username = username
            };
            context.Users.Add(newUser);
            context.SaveChanges();
            return newUser;
        }