public GitHubUserViewModel ToGitHubUserViewModel(GitUser gitUser, IEnumerable <GitRepository> gitRepository) { var gitHubUserViewModel = new GitHubUserViewModel { UserName = gitUser.login, AvatarUrl = gitUser.avatar_url, Location = gitUser.location, RepositoryList = gitRepository.Select(i => GetGitHubRepositoryViewModel(i)) }; return(gitHubUserViewModel); }
public HttpResponseMessage GetUser([FromBody] User user) { var vm = new GitHubUserViewModel(); var msg = new JsonMsg(); var formatter = new JsonMediaTypeFormatter(); try { if (string.IsNullOrEmpty(user.UserName)) { throw new ArgumentNullException("UserName", "Username cannot be empty"); } var gitHubUser = new UserService(new ApiHelper()); var reposToDisplay = Convert.ToInt32(ConfigurationManager.AppSettings["UserReposToDisplay"]); GitHubUserModel userDetails = gitHubUser.GetUserDetails(user.UserName); vm.UserName = userDetails.UserName; vm.AvatarUrl = userDetails.AvatarUrl; vm.Location = userDetails.Location; vm.GitHubRepositories = gitHubUser.GetTopXRepos(userDetails.GitHubRepositories, reposToDisplay) .Select(item => new GitHubRepoViewModel() { RepositoryName = item.RepositoryName, RepositoryUrl = item.RepositoryUrl, StarGazersCount = item.StarGazersCount }).ToList(); msg.result = !string.IsNullOrEmpty(vm.UserName); msg.data = vm; return(Request.CreateResponse(HttpStatusCode.OK, msg, formatter)); } catch (Exception ex) { Log.Error(ex); var errorMessage = ex.InnerException.ToString(); return(Request.CreateResponse(errorMessage.Contains("404") ? HttpStatusCode.OK : HttpStatusCode.BadRequest, msg, formatter)); } }