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(); } }); }
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); }
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(); } }); }
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(); } }); }
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); }