Ejemplo n.º 1
0
        public async Task Update(ServiceDescription description)
        {
            await DBTransactionHelper.SqlTransactionWorkAsync(DBTypes.SqlServer, false, false, _dbConnectionMainFactory.CreateAllForMain(), async (conn, transaction) =>
            {
                var current            = DateTime.UtcNow;
                description.ModifyTime = current;

                using (var dbContext = EntityDBContextFactory.Create(conn))
                {
                    dbContext.Database.UseTransaction(transaction);
                    dbContext.ServiceDescriptions.Attach(description);
                    var entry = dbContext.Entry(description);
                    if (description.Attributes.ContainsKey("Name"))
                    {
                        entry.Property((r) => r.Name).IsModified = true;
                    }

                    if (description.Attributes.ContainsKey("Address"))
                    {
                        entry.Property((r) => r.Address).IsModified = true;
                    }

                    if (description.Attributes.ContainsKey("AuthInfoType"))
                    {
                        entry.Property((r) => r.AuthInfoType).IsModified = true;
                    }

                    entry.Property((r) => r.ModifyTime).IsModified = true;


                    await dbContext.SaveChangesAsync();
                }
            });
        }
Ejemplo n.º 2
0
        public async Task <ServiceDescription> QueryByName(string name)
        {
            ServiceDescription description = null;
            await DBTransactionHelper.SqlTransactionWorkAsync(DBTypes.SqlServer, true, false, _dbConnectionMainFactory.CreateReadForMain(), async (conn, transaction) =>
            {
                using (var dbContext = EntityDBContextFactory.Create(conn))
                {
                    dbContext.Database.UseTransaction(transaction);

                    description = await dbContext.ServiceDescriptions.Where(item => item.Name == name).FirstOrDefaultAsync();
                }
            });

            return(description);
        }
Ejemplo n.º 3
0
        public async Task Add(ServiceDescription description)
        {
            await DBTransactionHelper.SqlTransactionWorkAsync(DBTypes.SqlServer, false, false, _dbConnectionMainFactory.CreateAllForMain(), async (conn, transaction) =>
            {
                var currentUTC         = DateTime.UtcNow;
                description.CreateTime = currentUTC;
                description.ModifyTime = currentUTC;

                using (var dbContext = EntityDBContextFactory.Create(conn))
                {
                    dbContext.Database.UseTransaction(transaction);
                    dbContext.ServiceDescriptions.Add(description);

                    await dbContext.SaveChangesAsync();
                }
            });
        }
Ejemplo n.º 4
0
        public async Task Delete(Guid id)
        {
            var entity = new ServiceDescription()
            {
                ID = id
            };
            await DBTransactionHelper.SqlTransactionWorkAsync(DBTypes.SqlServer, false, false, _dbConnectionMainFactory.CreateAllForMain(), async (conn, transaction) =>
            {
                using (var dbContext = EntityDBContextFactory.Create(conn))
                {
                    dbContext.Database.UseTransaction(transaction);
                    dbContext.ServiceDescriptions.Attach(entity);
                    dbContext.ServiceDescriptions.Remove(entity);

                    await dbContext.SaveChangesAsync();
                }
            });
        }
Ejemplo n.º 5
0
        public async Task <QueryResult <ServiceDescription> > QueryByPage(string name, int page, int pageSize)
        {
            QueryResult <ServiceDescription> result = new QueryResult <ServiceDescription>();

            await DBTransactionHelper.SqlTransactionWorkAsync(DBTypes.SqlServer, true, false, _dbConnectionMainFactory.CreateReadForMain(), async (conn, transaction) =>
            {
                using (var dbContext = EntityDBContextFactory.Create(conn))
                {
                    dbContext.Database.UseTransaction(transaction);


                    var templates      = dbContext.ServiceDescriptions.Where(a => EF.Functions.Like(a.Name, $"{name.ToSqlLike()}%"));
                    result.TotalCount  = await templates.CountAsync();
                    result.CurrentPage = page;
                    result.Results     = await templates.OrderByDescending(a => a.CreateTime).Skip((page - 1) * pageSize).Take(pageSize).ToListAsync();
                }
            });

            return(result);
        }