public async Task <ResponseViewModel <List <UserTunnelsViewModel> > > Tunnels(int page, int limit) { var tunnels = new List <UserTunnelsViewModel>(); var userId = HttpContext.User.FindFirst(u => u.Type == ClaimTypes.NameIdentifier).Value; var list = await _tunnelProvider.Tunnels(Convert.ToInt32(userId)); var curList = list.ToList().Skip(limit * (page - 1)).Take(limit).ToList(); curList.ForEach(x => { var status = (x.Status == 1 && x.ExpiredTime <= DateTime.Now && x.ExpiredTime != null) ? 9 : x.Status; var vm = new UserTunnelsViewModel { TunnelId = x.TunnelId, UserId = x.UserId, TunnelProtocol = x.TunnelProtocol, TunnelName = x.TunnelName, SubDomain = x.SubDomain, LocalPort = x.LocalPort, Status = status, CreateTime = x.CreateTime.ToLongDateString(), OpenTime = x.OpenTime == null ? null : Convert.ToDateTime(x.OpenTime).ToLongDateString(), ExpiredTime = x.ExpiredTime == null ? null : Convert.ToDateTime(x.ExpiredTime).ToLongDateString(), FullUrl = x.FullUrl }; tunnels.Add(vm); }); var result = new ResponseViewModel <List <UserTunnelsViewModel> > { Count = list.ToList().Count, Data = tunnels }; return(result); }