public ImportService( IAuthorizationDataService authData, IMapper mapper, OlmaDbContext olmaDbContext, IMapsService mapsService ) : base(authData, mapper) { _olmaDbContext = olmaDbContext; _mapsService = mapsService; }
public LocalizationUpdateService(IRepository <Olma.LocalizationItem> localizationItemRepo, IRepository <Olma.LocalizationText> localizationTextRepo, IRepository <Olma.LocalizationLanguage> localizationLanguageRepo, OlmaDbContext olmaDbContext) { _localizationItemRepo = localizationItemRepo; _localizationTextRepo = localizationTextRepo; _localizationLanguageRepo = localizationLanguageRepo; _olmaDbContext = olmaDbContext; }
public static void BatchInsert <TEntity>(TEntity sample, OlmaDbContext context, IEnumerable <TEntity> rows, string tableName, string columns, Func <TEntity, string> getValues, bool identityInsert = true) { // 1000 is the max size for batched inserts double chunkSize = 1000; // var chunkedInserts = rows .Select((i, index) => new { row = i, index }) .GroupBy(i => Math.Floor(i.index / chunkSize), i => i.row) .Select(g => { var sb = new StringBuilder(); sb.AppendLine($"INSERT INTO {tableName} ({columns}) VALUES "); foreach (var row in g) { sb.AppendLine($"({getValues(row)}),"); } sb.Remove(sb.Length - 3, 3); return(sb.ToString()); }); if (identityInsert && context.Database.CurrentTransaction == null) { throw new ArgumentNullException("Transaction is required to execute batched inserts"); } if (identityInsert) { context.Database.ExecuteSqlRaw($"SET IDENTITY_INSERT {tableName} ON "); } foreach (var insert in chunkedInserts) { context.Database.ExecuteSqlRaw(insert); } if (identityInsert) { context.Database.ExecuteSqlRaw($"SET IDENTITY_INSERT {tableName} OFF "); } }
public UserService( IAuthorizationDataService authData, IMapper mapper, IRepository <Olma.User> userRepo, ICustomersService customersService, IPostingAccountsService postingAccountsService, IPermissionsService permissionsService, IServiceProvider serviceProvider, IGraphFactory graphFactory, OlmaDbContext olmaDbContext, IRepository <Olma.Customer> customerRepo, IRepository <Olma.UserCustomerRelation> userCustomerRelationRepo) : base(authData, mapper) { _authData = authData; _userRepo = userRepo; _customersService = customersService; _postingAccountsService = postingAccountsService; _permissionsService = permissionsService; _serviceProvider = serviceProvider; _graphFactory = graphFactory; _olmaDbContext = olmaDbContext; _customerRepo = customerRepo; _userCustomerRelationRepo = userCustomerRelationRepo; _mapper = mapper; }
public OlmaRepository(OlmaDbContext repositoryContext) : base(repositoryContext) { this.Context.Database.SetCommandTimeout(300); }
public static void ResetDates(DbContextOptions <OlmaDbContext> options, IServiceProvider serviceProvider) { using var context = new OlmaDbContext(options, serviceProvider); context.Database.EnsureCreated(); var initialDate = context.Organizations .IgnoreQueryFilters().Min(a => a.CreatedAt); var timeSpanToAdd = (TimeSpan)(DateTime.UtcNow - initialDate); var weeksToAdd = timeSpanToAdd.Days / 7; if (weeksToAdd == 0) { Console.WriteLine($"Nothing to do. TimeSpan to short: {timeSpanToAdd.ToString()}"); return; } Console.WriteLine($"Add {weeksToAdd} weeks to each DateTime."); var entityTypes = context.Model.GetEntityTypes(); foreach (var entityType in entityTypes) { var properties = entityType.GetProperties(); var datePropertiesToUpdate = (from propertyInfo in properties let type = Nullable.GetUnderlyingType(propertyInfo.ClrType) ?? propertyInfo.ClrType where type == typeof(DateTime) select propertyInfo).ToList(); //Skip Exceptions, DateTimes witch should not be reset RemoveDateTimePropertyExceptionsToReset(datePropertiesToUpdate, entityType); if (datePropertiesToUpdate.Count > 0) { switch (entityType.Name) { case "Dpl.B2b.Dal.Models.Address": UpdateAllDateProperties <Address>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.PostingAccount": UpdateAllDateProperties <PostingAccount>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.PostingRequest": UpdateAllDateProperties <PostingRequest>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.Customer": UpdateAllDateProperties <Customer>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.CustomerDivision": UpdateAllDateProperties <CustomerDivision>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.CustomerPartner": UpdateAllDateProperties <CustomerPartner>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.ExpressCode": UpdateAllDateProperties <ExpressCode>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.PostingAccountPreset": UpdateAllDateProperties <PostingAccountPreset>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.LoadCarrier": UpdateAllDateProperties <LoadCarrier>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.LoadingLocation": UpdateAllDateProperties <LoadingLocation>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.Partner": UpdateAllDateProperties <Partner>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.Permission": UpdateAllDateProperties <Permission>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.Organization": UpdateAllDateProperties <Organization>(datePropertiesToUpdate, context, weeksToAdd); break; //case "Dpl.B2b.Dal.Models.User": // UpdateAllDateProperties<User>(datePropertiesToUpdate, context, timeSpanToAdd); // break; case "Dpl.B2b.Dal.Models.AdditionalField": UpdateAllDateProperties <AdditionalField>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.AdditionalFieldValue": UpdateAllDateProperties <AdditionalFieldValue>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.BusinessHour": UpdateAllDateProperties <BusinessHour>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.BusinessHourException": UpdateAllDateProperties <BusinessHourException>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.CalculatedBalance": UpdateAllDateProperties <CalculatedBalance>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.CalculatedBalancePosition": UpdateAllDateProperties <CalculatedBalancePosition>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.CustomerDivisionDocumentSetting": UpdateAllDateProperties <CustomerDivisionDocumentSetting>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.CustomerDocumentSetting": UpdateAllDateProperties <CustomerDocumentSetting>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.OrganizationPartnerDirectory": UpdateAllDateProperties <OrganizationPartnerDirectory>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.CustomerPartnerDirectoryAccess": UpdateAllDateProperties <CustomerPartnerDirectoryAccess>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.PartnerPreset": UpdateAllDateProperties <PartnerPreset>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.CustomerSortingWorker": UpdateAllDateProperties <CustomerSortingWorker>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.DeliveryNote": UpdateAllDateProperties <DeliveryNote>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.Document": UpdateAllDateProperties <Document>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.DocumentNumberSequence": UpdateAllDateProperties <DocumentNumberSequence>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.File": UpdateAllDateProperties <File>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.LoadCarrierReceipt": UpdateAllDateProperties <LoadCarrierReceipt>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.Order": UpdateAllDateProperties <Order>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.OrderCondition": UpdateAllDateProperties <OrderCondition>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.OrderMatch": UpdateAllDateProperties <OrderMatch>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.OrderSerie": UpdateAllDateProperties <OrderSerie>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.OrderGroup": UpdateAllDateProperties <OrderGroup>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.PartnerDirectory": UpdateAllDateProperties <PartnerDirectory>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.PartnerDirectoryAccess": UpdateAllDateProperties <PartnerDirectoryAccess>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.Person": UpdateAllDateProperties <Person>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.SortingInterruption": UpdateAllDateProperties <SortingInterruption>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.SortingShiftLog": UpdateAllDateProperties <SortingShiftLog>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.SortingShiftLogPosition": UpdateAllDateProperties <SortingShiftLogPosition>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.SortingWorker": UpdateAllDateProperties <SortingWorker>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.Submission": UpdateAllDateProperties <Submission>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.SubmitterProfile": UpdateAllDateProperties <SubmitterProfile>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.Transport": UpdateAllDateProperties <Transport>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.TransportBid": UpdateAllDateProperties <TransportBid>(datePropertiesToUpdate, context, weeksToAdd); break; case "Dpl.B2b.Dal.Models.Voucher": UpdateAllDateProperties <Voucher>(datePropertiesToUpdate, context, weeksToAdd); break; } //if (entityType.Name == typeof(PostingAccount).FullName) //{ // .GetMethod(nameof(UpdateAllDateProperties)).MakeGenericMethod(entityType.ClrType).Invoke(new object[] // {datePropertiesToUpdate,context,timeSpanToAdd}); // //UpdateAllDateProperties<t>(datePropertiesToUpdate, context, timeSpanToAdd); //} } } }
public DbContextsWrapper(OlmaDbContext olma) { Olma = olma; }
public static LtmsAccountFactory Instance(OlmaDbContext dbContext) { return(new LtmsAccountFactory(dbContext)); }
public LtmsAccountFactory(OlmaDbContext dbContext) { this.dbContext = dbContext; Data = new DataContainer(); }
public LoadCarrierSortingService( IAuthorizationDataService authData, IMapper mapper, IRepository <Olma.LoadCarrier> olmaLoadCarrierRepo, IRepository <Olma.LoadCarrierReceipt> olmaLoadCarrierReceiptRepo, IRepository <Olma.LoadCarrierSorting> olmaLoadCarrierSortingRepo, OlmaDbContext olmaDbContext, IPostingRequestsService postingRequestsService) : base(authData, mapper) { _olmaLoadCarrierRepo = olmaLoadCarrierRepo; _olmaLoadCarrierReceiptRepo = olmaLoadCarrierReceiptRepo; _olmaLoadCarrierSortingRepo = olmaLoadCarrierSortingRepo; _olmaDbContext = olmaDbContext; _postingRequestsService = postingRequestsService; }
public static LtmsBookingFactory Instance(OlmaDbContext dbContext) { return(new LtmsBookingFactory()); }