using RMDataManagerLibrary.DataAcccess; using System.Collections.Generic; using System.Web.Http; using RMDataManagerLibrary.Models; using System.Web; using Microsoft.AspNet.Identity; using System.Linq; using Microsoft.AspNet.Identity.EntityFramework; using RMDataManager.Models; namespace RMDataManager.Controllers { [Authorize] public class UserController : ApiController { [HttpGet] public UserModel GetById() { string userId = RequestContext.Principal.Identity.GetUserId(); UserData data = new UserData(); return data.GetUserById(userId).First(); } [Authorize(Roles = "Admin")] [HttpGet] [Route("api/User/Admin/GetAllUsers")] public List GetAllUsers() { List output = new List(); using (var context = new ApplicationDbContext()) { var userStore = new UserStore(context); var userManager = new UserManager(userStore); var users = userManager.Users.ToList(); var roles = context.Roles.ToList(); foreach (var user in users) { ApplicationUserModel u = new ApplicationUserModel { Id = user.Id, EmailAddress = user.Email }; foreach (var role in user.Roles) { u.Roles.Add(role.RoleId, roles.Where(x => x.Id == role.RoleId).First().Name); } output.Add(u); } } return output; } } }