public AppActionResult Run(CurrentUserDto user, IEnumerable <Order> orders) { var shippingDbSet = _dataService.GetDbSet <Shipping>(); var poolingInfo = "Эту перевозку можно отправить в Pooling"; var shipping = new Shipping { Status = ShippingState.ShippingCreated, PoolingState = ShippingPoolingState.PoolingAvailable, PoolingInfo = poolingInfo, Id = Guid.NewGuid(), ShippingNumber = ShippingNumberProvider.GetNextShippingNumber(), ProviderId = user.ProviderId, ShippingCreationDate = DateTime.UtcNow }; _historyService.Save(shipping.Id, "shippingSetCreated", shipping.ShippingNumber); shipping.DeliveryType = DeliveryType.Delivery; shipping.TarifficationType = _shippingTarifficationTypeDeterminer.GetTarifficationTypeForOrders(orders); shippingDbSet.Add(shipping); UnionOrderInShipping(orders, orders, shipping, _historyService); var changes = _dataService.GetChanges <Shipping>().FirstOrDefault(x => x.Entity.Id == shipping.Id); var changeTracker = _changeTrackerFactory.CreateChangeTracker() .TrackAll <Shipping>() .Remove <Shipping>(x => x.Id); changeTracker.LogTrackedChanges(changes); return(new AppActionResult { IsError = false, Message = "shippingSetCreated".Translate(user.Language, shipping.ShippingNumber) }); }
private static void InitDatabase(IServiceCollection services, IConfiguration configuration, bool migrateDb) { var connectionString = configuration.GetConnectionString("DefaultDatabase"); var buildServiceProvider = services.AddEntityFrameworkNpgsql() .AddDbContext <AppDbContext>(options => { options.UseNpgsql(connectionString); }) .BuildServiceProvider(); var appDbContext = buildServiceProvider.GetService <AppDbContext>(); if (migrateDb) { //appDbContext.DropDb(); appDbContext.Migrate(connectionString); } var shippingsCount = appDbContext.Shippings.Count(); ShippingNumberProvider.InitLastNumber(shippingsCount); }
public AppActionResult Run(CurrentUserDto user, IEnumerable <Order> orders) { var shippingDbSet = _dataService.GetDbSet <Shipping>(); var shipping = new Shipping { Status = ShippingState.ShippingCreated, PoolingState = ShippingPoolingState.PoolingAvailable, Id = Guid.NewGuid(), ShippingNumber = ShippingNumberProvider.GetNextShippingNumber(), ProviderId = orders.FirstOrDefault()?.ProviderId ?? user.ProviderId, ShippingCreationDate = DateTime.UtcNow, UserCreatorId = user.Id.Value }; _historyService.Save(shipping.Id, "shippingSetCreated", shipping.ShippingNumber); shipping.DeliveryType = DeliveryType.Delivery; shippingDbSet.Add(shipping); UnionOrderInShipping(orders, orders, shipping, _historyService); var changes = _dataService.GetChanges <Shipping>().FirstOrDefault(x => x.Entity.Id == shipping.Id); var changeTracker = _changeTrackerFactory.CreateChangeTracker() .TrackAll <Shipping>() .Remove <Shipping>(x => x.Id); changeTracker.LogTrackedChanges(changes); UpdateShippingFromIntegrations(shipping); return(new AppActionResult { IsError = false, Message = "shippingSetCreated".Translate(user.Language, shipping.ShippingNumber) }); }