public async Task execute_method_for_void_sqls_should_work()
        {
            int blogId = await _blogDapperRepository.InsertAndGetIdAsync(new Blog("Oguzhan_Blog", "wwww.aspnetboilerplate.com"));

            await _blogDapperRepository.ExecuteAsync("Update Blogs Set Name = @name where Id =@id", new { id = blogId, name = "Oguzhan_New_Blog" });

            (await _blogDapperRepository.GetAsync(blogId)).Name.ShouldBe("Oguzhan_New_Blog");
            (await _blogRepository.GetAsync(blogId)).Name.ShouldBe("Oguzhan_New_Blog");
        }
Example #2
0
        public async Task ExecuteMethodForVoidSqlShouldWork()
        {
            var blogId = blogDapperRepository.InsertAndGetId(new Blog("LongBlog", "wwww.studiox.com"));

            await blogDapperRepository.ExecuteAsync("Update Blogs Set Name = @name where Id =@id",
                                                    new { id = blogId, name = "LongNewBlog" });

            blogDapperRepository.Get(blogId).Name.ShouldBe("LongNewBlog");
            blogRepository.Get(blogId).Name.ShouldBe("LongNewBlog");
        }
        public async Task inline_sql_with_dapper_should_rollback_when_uow_fails()
        {
            Resolve <IEventBus>().Register <EntityCreatingEventData <Blog> >(eventData =>
            {
                eventData.Entity.Name.ShouldBe("Oguzhan_Same_Uow");
            });

            var blogId = 0;

            using (var uow = Resolve <IUnitOfWorkManager>().Begin())
            {
                blogId = await _blogDapperRepository.InsertAndGetIdAsync(
                    new Blog("Oguzhan_Same_Uow", "www.aspnetboilerplate.com")
                    );

                var person = await _blogRepository.GetAsync(blogId);

                person.ShouldNotBeNull();

                await uow.CompleteAsync();
            }

            try
            {
                using (IUnitOfWorkCompleteHandle uow = Resolve <IUnitOfWorkManager>()
                                                       .Begin(new UnitOfWorkOptions {
                    IsTransactional = true
                }))
                {
                    await _blogDapperRepository.ExecuteAsync(
                        "Update Blogs Set Name = @name where Id =@id",
                        new
                    {
                        id = blogId, name = "Oguzhan_New_Blog"
                    }
                        );

                    throw new Exception("uow rollback");

                    // Unreachable code.
                    // await uow.CompleteAsync();
                }
            }
            catch (Exception)
            {
                //no handling.
            }

            (await _blogDapperRepository.FirstOrDefaultAsync(x => x.Name == "Oguzhan_New_Blog")).ShouldBeNull();
            (await _blogRepository.FirstOrDefaultAsync(x => x.Name == "Oguzhan_New_Blog")).ShouldBeNull();

            (await _blogDapperRepository.FirstOrDefaultAsync(x => x.Name == "Oguzhan_Same_Uow")).ShouldNotBeNull();
            (await _blogRepository.FirstOrDefaultAsync(x => x.Name == "Oguzhan_Same_Uow")).ShouldNotBeNull();
        }
Example #4
0
        public async Task execute_method_for_void_sqls_should_work()
        {
            using (IUnitOfWorkCompleteHandle uow = The <IUnitOfWorkManager>().Begin())
            {
                int blogId = _blogDapperRepository.InsertAndGetId(new Blog("Oguzhan_Blog", "wwww.stove.com"));

                await _blogDapperRepository.ExecuteAsync("Update Blogs Set Name = @name where Id =@id", new { id = blogId, name = "Oguzhan_New_Blog" });

                _blogDapperRepository.Get(blogId).Name.ShouldBe("Oguzhan_New_Blog");
                _blogRepository.Get(blogId).Name.ShouldBe("Oguzhan_New_Blog");
                uow.Complete();
            }
        }
Example #5
0
        public async Task inline_sql_with_dapper_should_rollback_when_uow_fails()
        {
            //The<IEventBus>().Register<EntityCreatingEvent<Blog>>(
            //	@event => { @event.Entity.Name.ShouldBe("Oguzhan_Same_Uow"); });

            var blogId = 0;

            using (IUnitOfWorkCompleteHandle uow = The <IUnitOfWorkManager>().Begin())
            {
                blogId = _blogDapperRepository.InsertAndGetId(new Blog("Oguzhan_Same_Uow", "www.stove.com"));

                Blog person = _blogRepository.Get(blogId);

                person.ShouldNotBeNull();

                uow.Complete();
            }

            try
            {
                using (IUnitOfWorkCompleteHandle uow = The <IUnitOfWorkManager>().Begin(new UnitOfWorkOptions {
                    IsTransactional = true
                }))
                {
                    await _blogDapperRepository.ExecuteAsync("Update Blogs Set Name = @name where Id =@id", new { id = blogId, name = "Oguzhan_New_Blog" });

                    throw new Exception("uow rollback");

                    uow.Complete();
                }
            }
            catch (Exception exception)
            {
                //no handling.
            }

            using (IUnitOfWorkCompleteHandle uow = The <IUnitOfWorkManager>().Begin())
            {
                _blogDapperRepository.FirstOrDefault(x => x.Name == "Oguzhan_New_Blog").ShouldBeNull();
                _blogRepository.FirstOrDefault(x => x.Name == "Oguzhan_New_Blog").ShouldBeNull();

                _blogDapperRepository.FirstOrDefault(x => x.Name == "Oguzhan_Same_Uow").ShouldNotBeNull();
                _blogRepository.FirstOrDefault(x => x.Name == "Oguzhan_Same_Uow").ShouldNotBeNull();

                uow.Complete();
            }
        }
Example #6
0
        public async Task InlineSqlWithDapperShouldR0ollbackWhenUoWFails()
        {
            Resolve <IEventBus>().Register <EntityCreatingEventData <Blog> >(
                eventData =>
            {
                eventData.Entity.Name.ShouldBe("SameUow");
            });

            int blogId = 0;

            using (IUnitOfWorkCompleteHandle uow = Resolve <IUnitOfWorkManager>().Begin())
            {
                blogId = blogDapperRepository.InsertAndGetId(new Blog("SameUow", "www.studiox.com"));

                Blog person = blogRepository.Get(blogId);

                person.ShouldNotBeNull();

                uow.Complete();
            }

            try
            {
                using (IUnitOfWorkCompleteHandle uow = Resolve <IUnitOfWorkManager>().Begin(new UnitOfWorkOptions {
                    IsTransactional = true
                }))
                {
                    await blogDapperRepository.ExecuteAsync("Update Blogs Set Name = @name where Id =@id", new { id = blogId, name = "NewBlog" });

                    throw new Exception("uow rollback");

                    uow.Complete();
                }
            }
            catch (Exception exception)
            {
                //no handling.
            }

            blogDapperRepository.FirstOrDefault(x => x.Name == "NewBlog").ShouldBeNull();
            blogRepository.FirstOrDefault(x => x.Name == "NewBlog").ShouldBeNull();

            blogDapperRepository.FirstOrDefault(x => x.Name == "SameUow").ShouldNotBeNull();
            blogRepository.FirstOrDefault(x => x.Name == "SameUow").ShouldNotBeNull();
        }
 public async Task ExecuteAsync(string sql, object param = null)
 {
     await _dapperRepository.ExecuteAsync(sql, param);
 }
Example #8
0
        public Task DeleteBookWithParam(Book book)
        {
            string sql = "DELETE FROM book WHERE name=@name AND writer=@writer";

            return(_bookDapperRepository.ExecuteAsync(sql, book));
        }
 /// <summary>
 /// 删除所有
 /// </summary>
 /// <returns></returns>
 public async Task DeleteAll()
 {
     await _columnInfoDapperRepository.ExecuteAsync("update ColumnInfos set IsDeleted = 1 where TenantId=@TenantId", new { AbpSession.TenantId });
 }