Esempio n. 1
0
        protected override IHtmlContent Body()
        {
            var b = new TagAttributeList()
            {
                { Attr.Class, "page-header header-filter" },
                { Attr.DataParallax, "true" },
                { Attr.Style, "background-image: url('/img/examples/city.jpg');" },
            };
            var list = DapperExtension.FindAll <Icon>().OrderBy(o => o.Sort).ToList();
            TagAttributeList attributes = new TagAttributeList
            {
                { Attr.Class, "nav nav-pills nav-pills-icons" },
                { Attr.Role, "tablist" },
            };
            var ul = TagHelper.Create(Tag.ul, attributes, HtmlIcons.Generate(list));
            TagAttributeList attributes1 = new TagAttributeList
            {
                { Attr.Class, "col-md-12 col-lg-offset-0" },
                { Attr.Style, "margin-left: 20px;" },
            };
            var div        = TagHelper.Create(Tag.div, attributes1, ul);
            var pageHeader = TagHelper.Create(Tag.div, b);
            var container  = TagHelper.Div("container", div);
            var mainRaised = TagHelper.Div("main main-raised", container);

            var body = TagHelper.Create(Tag.body, new TagAttribute(Attr.Class, "profile-page"), Navigation.GetNavbar());

            body.Content.AppendHtml(pageHeader);
            body.Content.AppendHtml(mainRaised);
            body.Content.AppendHtml(this.Footer());

            return(body);
        }
Esempio n. 2
0
        public static void InsertTestData <T>(T entity) where T : class
        {
            var temp = Convert.ToInt32(DapperExtension.Instance(DataBaseType.MySql).Insert(GetConnByKey(), entity, null, null));


            return;
        }
Esempio n. 3
0
        public void DapperParameters_Usage()
        {
            var tree = ExcessMock.Compile(@"
                class SomeClass
                {
                    public void SomeMethod(IDBConnection connection)
                    {
                        sql(connection)
                        {
			                CREATE TABLE SomeTable
			                (
				                Id varchar(36) not null
                            );
                        }
                    }
                }", builder: (compiler) => DapperExtension.Apply(compiler));

            Assert.IsNotNull(tree);
            Assert.IsFalse(tree.GetDiagnostics().Any());

            //must have added a typecast for parameter connection
            Assert.AreEqual(1, tree
                            .GetRoot()
                            .DescendantNodes()
                            .OfType <CastExpressionSyntax>()
                            .Count());
        }
Esempio n. 4
0
        public void LambaTest()
        {
            #region 查询
            var obj =
                DapperExtension.Instance(DataBaseType.MySql)
                .LambdaQuery <TSoHeader>(Common.GetConnByKey(), null, null);
            var from = obj.Where(p => p.id == 1).Top(1).ToList();
            #endregion

            #region 插入

            //var tHeaderobj = new TSoHeader()
            //{
            //    id = 1000,
            //    cancel = 1,
            //    codec = "order000001",
            //    do_qty = 10,
            //    handle = 1,
            //    invoice_type = 1,
            //    item_need_qty = 20
            //};
            //var insetobj = DapperExtension.Instance().LambdaInsert<TSoHeader>(Common.GetConnByKey(),null,null);
            #endregion

            #region 更新

            var updateobj = DapperExtension.Instance().LambdaUpdate <TSoHeader>(Common.GetConnByKey(), null, null);
            #endregion
        }
Esempio n. 5
0
        public static DapperMock Compile(string text, string database)
        {
            var assembly = ExcessMock.Build(text,
                                            builder: compiler =>
            {
                Functions.Apply(compiler);
                DapperExtension.Apply(compiler);
            },
                                            referenceTypes: new[] {
                typeof(Dapper.SqlMapper),
                typeof(__Scope),
                typeof(IDbConnection),
                typeof(IEnumerable <>),
                typeof(SqlConnection),
                typeof(SQLiteConnection),
                typeof(Component),
            });


            if (assembly == null)
            {
                throw new InvalidOperationException();
            }

            var connection = new SQLiteConnection(ConnectionString);

            connection.Open();

            if (database != null)
            {
                connection.Execute(database);
            }

            return(new DapperMock(assembly, connection));
        }
Esempio n. 6
0
        /// <summary>
        /// 初始化数据库
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public static LambdaQueryHelper <T> Create <T>() where T : class
        {
            Type type = typeof(T);

            TableMapping       map   = type.GetCustomAttributes(typeof(TableMapping), false)[0] as TableMapping;
            TableConfiguration table = config.Where(p => p.Name == map.ConfigName).FirstOrDefault();

            DataBaseType  BaseType;
            IDbConnection connection;

            if (table != null)
            {
                switch (table.SqlType)
                {
                case "MsSql": BaseType = DataBaseType.SqlServer; connection = GetMsSqlConn(table.ConnectString); break;

                case "MySql": BaseType = DataBaseType.MySql; connection = GetMySqlConn(table.ConnectString); break;

                default: BaseType = DataBaseType.SqlServer; connection = GetMsSqlConn(table.ConnectString); break;
                }
                return(DapperExtension.Instance(BaseType).LambdaQuery <T>(connection, null, null));
            }
            else
            {
                return(null);
            }
        }
Esempio n. 7
0
        public async Task <IEnumerable <NameItem> > GetNameItemsAsync(string keyField, string nameField, string tableName, object whereParam = null, string orderBy = null, int count = 0)
        {
            if (!string.IsNullOrEmpty(orderBy))
            {
                orderBy = "ORDER BY " + orderBy;
            }
            string top = string.Empty;

            if (count > 0)
            {
                top = string.Format("top ({0})", count);
            }

            var whereAndParam = DapperExtension.GetWhereSqlAndParameters(whereParam);

            var sql = string.Format("select {0} [{1}] as Id ,[{2}] as Name from {3} where {4} {5}", top, keyField, nameField, tableName,
                                    whereAndParam.Item1, orderBy);

            using (var con = this.ConnectionFactory.OpenConnection())
            {
                var list = await con.QueryAsync <NameItem>(sql, whereAndParam.Item2);

                return(list.Distinct());
            }
        }
Esempio n. 8
0
 public DapperExtensions_LambdaTest(bool isClearData = false)
 {
     if (isClearData)
     {
         Common.TruncateData();
     }
     Common.ClearDBCache();
     DapperExtension.ClearCache();
 }
Esempio n. 9
0
        public void DapperCommand_Usage()
        {
            var tree = ExcessMock.Compile(@"
                class SomeClass
                {
                    void SomeMethod(int SomeInt)
                    {
                        sql
                        {
                            insert into SomeTable
                            values(@SomeInt)
                        }
                    }
                }", builder: (compiler) => DapperExtension.Apply(compiler));

            //must have a call to __connection.Execute
            var invocation = (tree.GetRoot()
                              .DescendantNodes()
                              .OfType <MethodDeclarationSyntax>()
                              .Single()
                              .Body
                              .Statements
                              .Single() as ExpressionStatementSyntax)
                             .Expression as InvocationExpressionSyntax;

            Assert.IsNotNull(invocation);
            Assert.IsTrue(invocation is InvocationExpressionSyntax);
            Assert.IsTrue((invocation as InvocationExpressionSyntax)
                          .Expression
                          .ToString()
                          .StartsWith("__connection1.Execute"));

            //must have added a literal string @"...query..."
            var literal = tree.GetRoot()
                          .DescendantNodes()
                          .OfType <LiteralExpressionSyntax>()
                          .Single()
                          .ToString();

            Assert.IsTrue(literal.Contains("@\""));
            Assert.IsTrue(literal.Contains("values(@SomeInt)"));

            //must have added parameters as an anonymous object
            var parameters = tree.GetRoot()
                             .DescendantNodes()
                             .OfType <AnonymousObjectCreationExpressionSyntax>()
                             .Single();

            Assert.IsTrue(parameters
                          .Initializers
                          .Any(init => init
                               .NameEquals
                               .Name
                               .ToString() == "SomeInt"));
        }
Esempio n. 10
0
        public void Test_update_entity_with_self_increase_PK()
        {
            var student = DapperExtension.FirstOrDefault <Student>();

            if (student != null)
            {
                student.Name = "update";
                int count = DapperExtension.Update(student);
                Assert.Equal(1, count);
            }
        }
Esempio n. 11
0
        public LambdaQueryHelper <TEntity> LambdaQuery <TEntity>(IDbTransaction transaction = null, int?commandTimeout = null) where TEntity : class
        {
            DbConnObj ConnObj = GetConnObj(transaction);

            if (ConnObj.DbConnection != null)
            {
                return(ConnObj.DbConnection.LambdaQuery <TEntity>(transaction, commandTimeout));
            }
            else
            {
                return(DapperExtension.LambdaQuery <TEntity>(ConnKey, commandTimeout));
            }
        }
Esempio n. 12
0
        public void Test_insert_default_value_sql_PK_is_default()
        {
            var log = new Log()
            {
                CreateTime      = DateTime.Now,
                UpdateTimeTicks = DateTime.Now,
                Message         = nameof(this.Test_insert_default_value_sql_PK_is_default),
            };

            int count = DapperExtension.Insert(log);

            Assert.Equal(1, count);
        }
Esempio n. 13
0
 public void Test_UriToStringConverter_throws(string url)
 {
     Assert.Throws <UriFormatException>(() =>
     {
         var log = new Log
         {
             Message         = url,
             UpdateTimeTicks = DateTime.Now,
             Url             = new Uri(url),
         };
         DapperExtension.Insert(log);
     });
 }
Esempio n. 14
0
 public void TestExpression()
 {
     using (var con = new NpgsqlConnection(Infrastructure.PgSql.PgConfig.ConnectionStr))
     {
         var a    = new DapperExtension <TUser>();
         var list =
             a.Select("max(id),name")
             .Where(p => (p.Id >= 0 || p.Name == "name") && p.Name != null)
             .GroupBy(p => new { p.Name })
             .Having("having count(1)>0")
             .ToList(con);
     }
 }
Esempio n. 15
0
        public LambdaUpdateHelper <T> LambdaUpdate(IDbTransaction transaction = null, int?commandTimeout = null)
        {
            DbConnObj ConnObj = GetConnObj(transaction);

            if (ConnObj.DbConnection != null)
            {
                return(ConnObj.DbConnection.LambdaUpdate <T>(transaction, commandTimeout));
            }
            else
            {
                return(DapperExtension.LambdaUpdate <T>(ConnKey, commandTimeout));
            }
        }
Esempio n. 16
0
        public void Test_insert_default_value_sql_PK_has_value()
        {
            var log = new Log()
            {
                Identifier      = Guid.NewGuid(),
                CreateTime      = DateTime.Now,
                UpdateTimeTicks = DateTime.Now,
                Message         = nameof(this.Test_insert_default_value_sql_PK_has_value),
            };

            int count = DapperExtension.Insert(log);

            Assert.Equal(1, count);
        }
Esempio n. 17
0
        public void Test_DateTimeToTicksConverter()
        {
            var log = new Log
            {
                Message         = nameof(this.Test_DateTimeToTicksConverter),
                UpdateTimeTicks = DateTime.Now,
            };

            int count = DapperExtension.Insert(log);

            Assert.Equal(1, count);

            log = DapperExtension.FirstOrDefault <Log>();
        }
Esempio n. 18
0
        public void Test_UriToStringConverter(string url)
        {
            var log = new Log
            {
                Message         = url,
                UpdateTimeTicks = DateTime.Now,
                Url             = url == null ? null : new Uri(url),
            };

            int count = DapperExtension.Insert(log);

            Assert.Equal(1, count);

            log = DapperExtension.FirstOrDefault <Log>();
        }
Esempio n. 19
0
        public void Test_delete_by_entity()
        {
            using var dbContext = new ScaffoldingDbContext();
            var student = new Student
            {
                Name       = "insert",
                UpdateTime = DateTime.Now,
            };

            dbContext.Add(student);
            dbContext.SaveChanges();
            int count = DapperExtension.Delete(student);

            Assert.Equal(1, count);
        }
Esempio n. 20
0
        public void Test_BoolToZeroOneConverter()
        {
            var course = new Course
            {
                Name       = "insert",
                UpdateTime = DateTime.Now,
                CreateTime = DateTime.Now,
                IsDeleted  = true,
            };

            int count = DapperExtension.Insert(course);

            Assert.Equal(1, count);

            course = DapperExtension.FirstOrDefault <Course>();
        }
Esempio n. 21
0
        public void Test_entity_has_insert_self_increase_PK()
        {
            var student = new Student
            {
                Name       = "test",
                Sex        = SexEnum.Male,
                Mobile     = "123456789",
                IsDeleted  = true,
                CreateTime = DateTime.Now,
                UpdateTime = DateTime.Now,
            };

            int count = DapperExtension.Insert(student);

            Assert.Equal(1, count);
        }
Esempio n. 22
0
        public void Value_converter()
        {
            var id  = Guid.NewGuid();
            var log = new Log()
            {
                Identifier      = id,
                CreateTime      = DateTime.Now,
                UpdateTimeTicks = DateTime.Now,
                Message         = nameof(this.Value_converter),
            };

            int count = DapperExtension.Insert(log);

            log = DapperExtension.Find <Log>(id);

            Assert.Equal(1, count);
            Assert.Equal(id, log.Identifier);
        }
Esempio n. 23
0
 public void TestInsert()
 {
     using (var con = new NpgsqlConnection(Infrastructure.PgSql.PgConfig.ConnectionStr))
     {
         var a    = new DapperExtension <TUser>();
         int time = TimeSpanCalculator.Run(() =>
         {
             for (int i = 0; i < 1000000; i++)
             {
                 var user = new TUser()
                 {
                     Id = 4, Name = "dadasd"
                 };
                 a.Insert(user, con);
             }
         });
         Console.WriteLine(time.ToString());
     }
 }
Esempio n. 24
0
        public void TestMassInsert()
        {
            int count = 0;

            using (var transaction = DapperExtension.BeginTransaction())
            {
                for (int i = 0; i < 2; i++)
                {
                    Log log = new Log {
                        Message = Guid.NewGuid().ToString(), LogLevel = (int)LogLevel.None
                    };
                    count += DapperExtension.Connection.Insert(log, transaction);
                }

                transaction.Commit();
            }

            Assert.AreEqual(count, 2);
        }
Esempio n. 25
0
        public async Task <IEnumerable <SelectListItem> > GetSelectListAsync(string valueField, string textField, string tableName, object whereParam = null, string orderBy = null)
        {
            if (!string.IsNullOrEmpty(orderBy))
            {
                orderBy = "ORDER BY " + orderBy;
            }

            var whereAndParam = DapperExtension.GetWhereSqlAndParameters(whereParam);

            var sql = string.Format("select [{0}] as Value ,[{1}] as Text from {2} where {3} {4}", valueField, textField, tableName,
                                    whereAndParam.Item1, orderBy);

            IEnumerable <SelectListItem> list = null;

            using (var con = this.ConnectionFactory.OpenConnection())
            {
                list = await con.QueryAsync <SelectListItem>(sql, whereAndParam.Item2);
            }
            return(list);
        }
Esempio n. 26
0
        public void TestMassUpdate()
        {
            var log = DapperExtension.Connection.QueryFirst <Log>();

            if (log != null)
            {
                int count = 0;
                using (var transaction = DapperExtension.BeginTransaction())
                {
                    for (int i = 0; i < 1000; i++)
                    {
                        log.Message = Guid.NewGuid().ToString();
                        count      += DapperExtension.Connection.Update(log, transaction);
                    }

                    transaction.Commit();
                }

                Assert.AreEqual(count, 1000);
            }
        }
Esempio n. 27
0
        public void DapperQuery_Usage()
        {
            var tree = ExcessMock.Compile(@"
                function SomeFunction(int SomeInt, int SomeId)
                {
                    IEnumerable<SomeModel> result = sql
                    {
                        select * from SomeTable
                        where SomeColumn > @SomeInt
                    }

                    SomeModel anotherResult = sql
                    {
                        select * from SomeTable
                        where IdColumn > @SomeId
                    }
                }",
                                          builder: compiler =>
            {
                Functions.Apply(compiler);
                DapperExtension.Apply(compiler);
            });

            //must have a call to __connection1.Query
            var invocation = (tree.GetRoot()
                              .DescendantNodes()
                              .OfType <MethodDeclarationSyntax>()
                              .Single()
                              .Body
                              .Statements
                              .Skip(2) //connection declarations
                              .First() as LocalDeclarationStatementSyntax)
                             .Declaration
                             .Variables
                             .Single()
                             .Initializer
                             .Value as InvocationExpressionSyntax;

            Assert.IsNotNull(invocation);
            Assert.IsTrue(invocation is InvocationExpressionSyntax);
            Assert.IsTrue((invocation as InvocationExpressionSyntax)
                          .Expression
                          .ToString()
                          .StartsWith("__connection1.Query"));

            //must have added a literal string @"...query..."
            var literal = tree.GetRoot()
                          .DescendantNodes()
                          .OfType <LiteralExpressionSyntax>()
                          .First()
                          .ToString();

            Assert.IsTrue(literal.Contains("@\""));
            Assert.IsTrue(literal.Contains("where SomeColumn > @SomeInt"));

            //must have added parameters as an anonymous object
            var parameters = tree.GetRoot()
                             .DescendantNodes()
                             .OfType <AnonymousObjectCreationExpressionSyntax>()
                             .First();

            Assert.IsTrue(parameters
                          .Initializers
                          .Any(init => init
                               .NameEquals
                               .Name
                               .ToString() == "SomeInt"));

            //must have added a second call
            invocation = (tree.GetRoot()
                          .DescendantNodes()
                          .OfType <MethodDeclarationSyntax>()
                          .Single()
                          .Body
                          .Statements
                          .Last() as LocalDeclarationStatementSyntax)
                         .Declaration
                         .Variables
                         .Single()
                         .Initializer
                         .Value as InvocationExpressionSyntax;

            //containing a Single() call
            Assert.AreEqual(1, invocation
                            .DescendantTokens()
                            .Count(token => token.ToString() == "Single"));
        }
Esempio n. 28
0
 public void Test_select_from_view()
 {
     var log = DapperExtension.FirstOrDefault <VLog>();
 }
Esempio n. 29
0
        public static void Main(string[] args)
        {
            DapperExtension.Init(retryCount: 5, 1000, (exception, timespan, attempt) => Debug.WriteLine($"Exception: '{exception}',Database Retry Attempt: {attempt} Delay: {timespan}')"));

            CreateWebHostBuilder(args).Build().Run();
        }