public JsonData GetUsers(UserFilter filter)
        {
            try
            {
                using (var db = new DataContext())
                {
                    var roles = db.Roles.ToDictionary(x => x.Id);
                    var data = filter.BuildQuery(db.Users).Include(x => x.Roles).ToList().OrderBy(x => x.Updated);
                    if (!data.Any()) return DataHelpers.ReturnJsonData(null, false, "No Data Found", 0);
                    var users = data.Select(myUser => new UserViewModel
                    {
                        UserName = myUser.UserName,
                        FullName = myUser.FullName,
                        Created = myUser.Created,
                        Email = myUser.Email,
                        PhoneNumber = myUser.PhoneNumber,
                        DateOfBirth = myUser.DateOfBirth,
                        Id = myUser.Id,
                        IsActive = myUser.IsActive,
                        Updated = myUser.Updated,
                        Roles = roles.First(x => x.Key == myUser.Roles.First().RoleId).Value.Name
                    }).ToList();

                    return users.Any() ? DataHelpers.ReturnJsonData(users, true, "Loaded successfully", users.Count()) : DataHelpers.ReturnJsonData(users, false, "No Data Found", 0);
                }
            }
            catch (Exception e)
            {
                return DataHelpers.ExceptionProcessor(e);
            }
        }
        public JsonData Get(string userId)
        {
            try
            {
                var filter = new UserFilter { UserId = userId };
                using (var db = new DataContext())
                {
                    var roles = db.Roles.ToDictionary(x => x.Id);

                    var data = filter.BuildQuery(db.Users).Include(x => x.Roles).First();

                    if (data == null) return DataHelpers.ReturnJsonData(null, false, "No Data Found", 0);
                    var activeUser = new UserViewModel
                    {
                        UserName = data.UserName,
                        FullName = data.FullName,
                        Created = data.Created,
                        Email = data.Email,
                        PhoneNumber = data.PhoneNumber,
                        DateOfBirth = data.DateOfBirth,
                        Id = data.Id,
                        IsActive = data.IsActive,
                        Updated = data.Updated,
                        Roles = roles.First(x => x.Key == data.Roles.First().RoleId).Value.Name
                    };
                    return DataHelpers.ReturnJsonData(activeUser, true, "Loaded successfully", 1);
                }
            }
            catch (Exception e)
            {
                return DataHelpers.ExceptionProcessor(e);
            }
        }
 public JsonData GetUsers(int page, int size)
 {
     var filter = new UserFilter { Pager = { Page = page, Size = size } };
     return new UserRepo().GetUsers(filter);
 }