public async Task <TagResponse> Handle(CreateTagRequest request) { if (!Enum.IsDefined(typeof(UserRole), request.Bound.ToUpper())) { throw new ArgumentOutOfRangeException("User role has wrong value"); } var tagBoundToRole = Enum.Parse <UserRole>(request.Bound.ToUpper()); var tag = new Tag(request.Name, tagBoundToRole); _tagRepository.Create(tag); await _tagRepository.PersistChanges(); return(tag.Adapt <TagResponse>()); }