public Task <PeriodicBillingSetting> SaveAsync(PeriodicBillingSetting setting, CancellationToken token = default(CancellationToken)) { #region query var query = @" MERGE INTO [PeriodicBillingSetting] target USING ( SELECT @Id [Id] ) source ON (target.Id = source.Id ) WHEN MATCHED THEN UPDATE SET [Name] = @Name , CurrencyId = @CurrencyId , CustomerId = @CustomerId , DestinationId = @DestinationId , DepartmentId = @DepartmentId , StaffId = @StaffId , CollectCategoryId = @CollectCategoryId , BilledCycle = @BilledCycle , BilledDay = @BilledDay , StartMonth = @StartMonth , EndMonth = @EndMonth , InvoiceCode = @InvoiceCode , SetBillingNote1 = @SetBillingNote1 , SetBillingNote2 = @SetBillingNote2 , UpdateBy = @UpdateBy , UpdateAt = GETDATE() WHEN NOT MATCHED THEN INSERT ( CompanyId, [Name] , CurrencyId, CustomerId, DestinationId, DepartmentId, StaffId, CollectCategoryId , BilledCycle, BilledDay, StartMonth, EndMonth , InvoiceCode, SetBillingNote1, SetBillingNote2 , CreateBy, CreateAt, UpdateBy, UpdateAt ) VALUES ( @CompanyId, @Name , @CurrencyId, @CustomerId, @DestinationId, @DepartmentId, @StaffId, @CollectCategoryId , @BilledCycle, @BilledDay, @StartMonth, @EndMonth , @InvoiceCode, @SetBillingNote1, @SetBillingNote2 , @CreateBy, GETDATE(), @UpdateBy, GETDATE() ) OUTPUT inserted.* ;"; #endregion return(dbHelper.ExecuteAsync <PeriodicBillingSetting>(query, setting, token)); }
public async Task <PeriodicBillingSetting> SaveAsync(PeriodicBillingSetting setting, CancellationToken token = default(CancellationToken)) { using (var scope = transactionScopeBuilder.Create()) { var result = await addPeriodicBillingSettingQueryProcessor.SaveAsync(setting, token); if (setting.Id != 0L) { await deletePeriodicBillingSettingDetailQueryProcessor.DeleteAsync(setting.Id, token); } foreach (var detail in setting.Details.Select((detail, index) => { detail.DisplayOrder = index + 1; return(detail); })) { detail.PeriodicBillingSettingId = result.Id; result.Details.Add(await addPeriodicBillingSettingDetailQueryProcessor.SaveAsync(detail, token)); } scope.Complete(); return(result); } }
public async Task <ActionResult <PeriodicBillingSetting> > Save(PeriodicBillingSetting setting, CancellationToken token) => await periodicBillingSettingProcessor.SaveAsync(setting, token);
public async Task <PeriodicBillingSettingResult> SaveAsync(string sessionKey, PeriodicBillingSetting setting) => await authorizationProcessor.DoAuthorizeAsync(sessionKey, async token => { var result = await periodicBillingSettingProcessor.SaveAsync(setting, token); return(new PeriodicBillingSettingResult { ProcessResult = new ProcessResult { Result = true }, PeriodicBillingSetting = result, }); }, logger);