add viewmodel validation logic
used mapping to create post data, rather than access each element value