From 6565957c34d20843814d82f7ecbbb16a59aa8071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A4=D1=80=D0=BE=D0=BB=D0=BE=D0=B2?= Date: Wed, 8 Dec 2021 15:29:41 +0500 Subject: [PATCH] rider recomendations --- AsbCloudDb/EFExtentions.cs | 23 ++++++------ .../WellOperationImportService.cs | 37 ++++++++++++------- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/AsbCloudDb/EFExtentions.cs b/AsbCloudDb/EFExtentions.cs index d3c78bd5..3162eb0d 100644 --- a/AsbCloudDb/EFExtentions.cs +++ b/AsbCloudDb/EFExtentions.cs @@ -11,26 +11,26 @@ namespace AsbCloudDb { public static class EFExtentions { - static Dictionary QueryFactories { get; set; } = new Dictionary(); + static Dictionary QueryFactories { get; set; } = new(); - static QueryStringFactory GetQueryStringFactory(DbSet dbset) + static QueryStringFactory GetQueryStringFactory(DbSet dbSet) where T : class { var t = typeof(T); - QueryStringFactory factory = (QueryStringFactory)QueryFactories.GetValueOrDefault(t); + var factory = (QueryStringFactory)QueryFactories.GetValueOrDefault(t); if (factory is null) { - factory = new QueryStringFactory(dbset); + factory = new QueryStringFactory(dbSet); QueryFactories.Add(t, factory); } return factory; } - public static Task ExecInsertOrUpdateAsync(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade database, DbSet dbset, IEnumerable items, CancellationToken token) + public static Task ExecInsertOrUpdateAsync(this Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade database, DbSet dbSet, IEnumerable items, CancellationToken token) where T : class { - var factory = GetQueryStringFactory(dbset); + var factory = GetQueryStringFactory(dbSet); var query = factory.MakeInsertOrUpdateSql(items); return database.ExecuteSqlRawAsync(query, token); @@ -45,19 +45,18 @@ namespace AsbCloudDb private readonly string insertHeader; private readonly string pk; - private readonly string tableName; private readonly string conflictBody; private readonly IEnumerable getters; public QueryStringFactory(DbSet dbset) { - var ps = dbset.EntityType.GetProperties(); + var properties = dbset.EntityType.GetProperties(); var pkColsNames = dbset.EntityType.FindPrimaryKey()?.Properties.Select(p => p.GetColumnBaseName()); pk = pkColsNames is null ? string.Empty : $"({string.Join(", ", pkColsNames)})"; - tableName = dbset.EntityType.GetTableName(); - getters = ps.Select(p => p.GetGetter()); - var colNames = ps.Select(p => $"\"{p.GetColumnBaseName()}\""); + var tableName = dbset.EntityType.GetTableName(); + getters = properties.Select(p => p.GetGetter()); + var colNames = properties.Select(p => $"\"{p.GetColumnBaseName()}\""); var colunmsString = $"({string.Join(", ", colNames)})"; insertHeader = $"INSERT INTO {tableName} {colunmsString} VALUES "; @@ -87,7 +86,7 @@ namespace AsbCloudDb private StringBuilder BuildRows(StringBuilder builder, IEnumerable items) { var list = items.ToList(); - for (int i = 0; i < list.Count; i++) + for (var i = 0; i < list.Count; i++) { if(i > 0) builder.Append(','); diff --git a/AsbCloudInfrastructure/Services/WellOperationService/WellOperationImportService.cs b/AsbCloudInfrastructure/Services/WellOperationService/WellOperationImportService.cs index 1d87b9b6..b652fb9d 100644 --- a/AsbCloudInfrastructure/Services/WellOperationService/WellOperationImportService.cs +++ b/AsbCloudInfrastructure/Services/WellOperationService/WellOperationImportService.cs @@ -16,16 +16,15 @@ namespace AsbCloudInfrastructure.Services.WellOperationService private const string sheetNamePlan = "План"; private const string sheetNameFact = "Факт"; - const int headerRowsCount = 1; - - const int columnSection = 1; - const int columnCategory = 2; - const int columnCategoryInfo = 3; - const int columnDepthStart = 4; - const int columnDepthEnd = 5; - const int columnDate = 6; - const int columnDuration = 7; - const int columnComment = 8; + private const int headerRowsCount = 1; + private const int columnSection = 1; + private const int columnCategory = 2; + private const int columnCategoryInfo = 3; + private const int columnDepthStart = 4; + private const int columnDepthEnd = 5; + private const int columnDate = 6; + private const int columnDuration = 7; + private const int columnComment = 8; private static readonly DateTime dateLimitMin = new DateTime(2001, 1, 1, 0, 0, 0); private static readonly DateTime dateLimitMax = new DateTime(2099, 1, 1, 0, 0, 0); @@ -34,10 +33,20 @@ namespace AsbCloudInfrastructure.Services.WellOperationService private readonly IAsbCloudDbContext db; private List categories = null; - public List Categories => - categories ?? (categories = db.WellOperationCategories - .AsNoTracking() - .ToList()); + public List Categories + { + get + { + if (categories is null) + { + categories = db.WellOperationCategories + .AsNoTracking() + .ToList(); + } + + return categories; + } + } private List sections = null; public List Sections