Example #1
0
        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);
        }
Example #2
0
        public async Task <ResponseViewModel <List <UserTunnelsViewModel> > > Tunnels(int page, int limit, string userName, string email, int status, string subDomain)
        {
            var tunnels = new List <UserTunnelsViewModel>();

            var list = await _tunnelProvider.Tunnels(userName, email, status, subDomain);

            var curList = list.ToList().Skip(limit * (page - 1)).Take(limit).ToList();

            curList.ForEach(x =>
            {
                var vm = new UserTunnelsViewModel
                {
                    TunnelId       = x.TunnelId,
                    UserName       = x.UserName,
                    Email          = x.Email,
                    AuthToken      = x.AuthToken,
                    TunnelProtocol = x.TunnelProtocol,
                    TunnelName     = x.TunnelName,
                    SubDomain      = x.SubDomain,
                    LocalPort      = x.LocalPort,
                    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,
                    Status         = x.Status,
                    UserId         = x.UserId
                };
                tunnels.Add(vm);
            });

            var data = new ResponseViewModel <List <UserTunnelsViewModel> >
            {
                Count = list.Count(),
                Data  = tunnels
            };

            return(data);
        }