public async Task <Customer> AddAsync(Customer customer) { using var uow = new UnitOfWork(_databaseContextProvider.Create()); CustomerDto newCustomer = await uow.Customers.AddAsync(customer.ToData()); await uow.SaveChangesAsync(); return(newCustomer.ToCore()); }
public async Task <Region> AddRegionAsync(Region region) { using var uow = new UnitOfWork(_contextProvider.Create()); var newRegion = region.ToEntity(); await uow.Regions.AddAsync(newRegion); await uow.SaveChangesAsync(); return(newRegion.ToCore()); }
public async Task <BillingPeriod> AddAsync(BillingPeriod item) { using (var uow = new UnitOfWork(_databaseContextProvider.Create())) { BillingPeriodDto operation = await uow.BillingPeriods.AddAsync(item.ToData()); await uow.SaveChangesAsync(); return(operation?.ToCore()); } }
public async Task <MoneyOperation> AddAsync(MoneyOperation item) { using (var uow = new UnitOfWork(_databaseContextProvider.Create())) { MoneyOperationDto operation = await uow.MoneyOperations.AddAsync(item.ToData()); await uow.SaveChangesAsync(); return(operation.ToCore()); } }
public async Task <ICollection <Receipt> > GetReceiptsInPeriodAsync(DateTime periodFrom, DateTime periodTo, long groupId) { using var uow = new UnitOfWork(_databaseContextProvider.Create()); var billingPeriods = await uow.BillingPeriods.GetListAsync(x => x.GroupId == groupId); var billingPeriodsIds = billingPeriods.Select(x => x.Id).ToHashSet(); var receipts = await uow.Receipts.GetListAsync(x => x.PurchaseTime >= periodFrom && x.PurchaseTime < periodTo && billingPeriodsIds.Contains(x.BillingPeriodId)); return(receipts.Select(x => x.ToCore()).ToList()); }
public async Task <Group> AddAsync(string chatToken, string adminToken, string chatName) { using (var uow = new UnitOfWork(_databaseContextProvider.Create())) { GroupDto newGroup = await uow.Groups.AddAsync(new GroupDto { ChatToken = chatToken, AdminToken = adminToken, ChatName = chatName, }); await uow.SaveChangesAsync(); return(newGroup.ToCore()); } }
public async Task UpdateDisappearedStatusAsync() { using var uow = new UnitOfWork(_contextProvider.Create()); var activityExpiredDate = DateTime.UtcNow - DisappearedTimeout; var apartments = await uow.Apartments .GetAsync(x => x.DisappearedDate == null && x.PublishingDate < activityExpiredDate); var apartmentsChanges = new List <ItemChangeEntity>(); foreach (var apartment in apartments) { var disappearedDate = DateTime.UtcNow; apartmentsChanges.Add(new ItemChangeEntity { Table = ApartmentEntity.TableName, ObjectId = apartment.Id, PropertyName = nameof(ApartmentEntity.DisappearedDate), PropertyTypeFullName = typeof(DateTime?).FullName, OldValueJson = JsonConvert.SerializeObject(apartment.DisappearedDate), NewValueJson = JsonConvert.SerializeObject(disappearedDate) }); apartment.DisappearedDate = disappearedDate; } if (apartments.Length > 0) { _logger.Trace($"{GetType().Name}: объявления со следующими Ids теперь помечены как устаревшие: " + string.Join(", ", apartments.Select(x => x.Id))); } await uow.Apartments.UpdateAsync(apartments); await uow.ItemsChanges.AddAsync(apartmentsChanges); await uow.SaveChangesAsync(); }