Example #1
0
        public async Task <bool> DeleteUnitAsync(int unitId, CancellationToken cancellationToken = default(CancellationToken))
        {
            var unit = await _unitsRepository.GetByIdAsync(unitId);

            if (unit != null)
            {
                var states = await _unitStatesRepository.GetAllStatesByUnitIdAsync(unitId);

                if (states != null && states.Any())
                {
                    foreach (var unitState in states)
                    {
                        await _unitStatesRepository.DeleteAsync(unitState, cancellationToken);
                    }
                }

                await _unitsRepository.DeleteAsync(unit, cancellationToken);

                _eventAggregator.SendMessage <DepartmentSettingsUpdateEvent>(new DepartmentSettingsUpdateEvent()
                {
                    DepartmentId = unit.DepartmentId
                });

                return(true);
            }

            return(false);
        }