Exemplo n.º 1
0
        public void Delete(ProviderOrganization providerOrganization, User user)
        {
            user.CheckPermission(Permission.ProviderOrganization_Delete);

            CheckPossibilityToDeleteProviderOrganization(providerOrganization, user);

            // Удаляем все расчетные счета из организации
            var bankAccountList = new List <RussianBankAccount>(providerOrganization.RussianBankAccounts);

            foreach (var bankAccount in bankAccountList)
            {
                providerOrganization.DeleteRussianBankAccount(bankAccount);
            }

            // Удаляем организацию из всех поставщиков, где она фигурировала
            var providerOrganizationContractorList = new List <Contractor>(providerOrganization.Contractors);

            foreach (var contractor in providerOrganizationContractorList)
            {
                Provider provider = contractor.As <Provider>();
                provider.RemoveContractorOrganization(providerOrganization);
            }

            // Удаляем саму организацию
            providerOrganizationRepository.Delete(providerOrganization);
        }