public async Task <int> UnbindRealContainersAsync(int[] realContainersId, int userId) { using (var sqlConnect = Connections.GetLM()) { sqlConnect.Open(); using (var tran = sqlConnect.BeginTransaction()) { var error = _storageTransferProxy.ContainerSet(realContainersId, userId, sqlConnect, tran); if (!string.IsNullOrWhiteSpace(error)) { throw new Exception(error); } // Если технологическая сумка, то при расформировании - удаляем ее // TODO: вынести справочники в отдельный сервис var sql = @"select top 1 idCashContainerType from dbo.vdrCashContainerType where sCode = 'CashContainerType_TechBag'"; var idCashContainerTypeTechBag = await sqlConnect.ExecuteScalarAsync <int>(sql, null, tran); var sets = (await _realRepo.GetAsync(realContainersId)) .Where(m => m.RealContainerTypeId == idCashContainerTypeTechBag) .ToList(); foreach (var m in sets) { int[] containersId = new int[] { m.RealContainerId }; await _realRepo.DeleteAsync(containersId, true, sqlConnect, tran); } var result = await _realRepo.UpdateStatusAsync( realContainersId, (int)RealContainerStatusEnum.Free, false, tran); tran.Commit(); return(result); } } }
public async Task <int> DeleteRealContainersAsync(int[] realContainersId, bool force) { return(await _realcontainerRepository.DeleteAsync(realContainersId, force)); }