public override Task <RegisterProfileUseCaseResponse> Handle(RegisterProfileUseCaseRequest request, CancellationToken cancellationToken = default)
        {
            IProfile profile = m_profileFactory.CreateProfile(request.Name, request.Email, request.Address);

            m_profileRepository.Add(profile);
            return(Task.FromResult(new RegisterProfileUseCaseResponse(profile.Id)));
        }
        public static ProfileCollection FromRootConfiguration(RootConfiguration config, IProfileFactory factory)
        {
            var     profiles    = new Dictionary <string, Profile>(StringComparer.OrdinalIgnoreCase);
            Profile menuProfile = null;

            foreach (var profileCfg in config.Profiles)
            {
                var profile = factory.CreateProfile(profileCfg);
                if (string.Equals(profile.Name, "menu", StringComparison.OrdinalIgnoreCase))
                {
                    menuProfile = profile;
                }
                else
                {
                    profiles[profile.Name] = profile;
                }
            }

            return(new ProfileCollection(profiles, menuProfile));
        }