Example #1
0
        public virtual ExternalLoginProviderEntity GetExternalLoginProvidersByDynamicModule(int dynamicModuleId)
        {
            var externalLoginProvider = m_externalLoginProviderRepository.GetExternalLoginProviderByDynamicModuleId(dynamicModuleId);

            if (externalLoginProvider == null)
            {
                throw new NoResultException <ExternalLoginProviderEntity>();
            }

            return(externalLoginProvider);
        }
        public virtual void DeleteDynamicModuleWithId(int id)
        {
            try
            {
                var dynamicModule = m_dynamicModuleRepository.Load <DynamicModuleEntity>(id);

                try
                {
                    var externalLoginProvider = m_externalLoginProviderRepository.GetExternalLoginProviderByDynamicModuleId(
                        dynamicModule.Id
                        );

                    if (externalLoginProvider != null)
                    {
                        var isUsedByUsers = m_externalLoginRepository.GetExternalLoginCountByProvider(externalLoginProvider.Id);

                        if (isUsedByUsers > 0)
                        {
                            throw new NotSupportedException(
                                      $"Unable to delete dynamic module '{id}', it is used by {isUsedByUsers} user(s)");
                        }

                        m_dynamicModuleRepository.Delete(externalLoginProvider);
                    }
                }
                catch (NoResultException <ExternalLoginProviderEntity> )
                {
                    // it can be standalone dynamic module == without linked external login provider
                }

                m_dynamicModuleRepository.Delete(dynamicModule);
            }
            catch (ObjectNotFoundException)
            {
                throw new NoResultException <DynamicModuleEntity>();
            }
        }