/// <summary> /// 审核申请隧道,写入文本数据 /// </summary> /// <param name="tunnel"></param> /// <param name="user"></param> /// <param name="path"></param> /// <param name="port"></param> /// <returns></returns> public static async Task WriteTunnel(TunnelsEntity tunnel, UsersEntity user, string path, int port) { var list = new List <string>(); var exist = false; var contentList = await ReadFile(path); if (contentList != null) { foreach (var item in contentList) { var row = item.ToString().Split("|"); var authToken = row[0]; var subDomains = row[1]; var remotePorts = row[2]; var userName = row[3]; if (user.AuthToken == authToken) { subDomains += "," + tunnel.SubDomain; remotePorts += "," + port; exist = true; } var _item = authToken + "|" + subDomains + "|" + remotePorts + "|" + userName; list.Add(_item); } } if (!exist) { list.Add(user.AuthToken + "|" + tunnel.SubDomain + "|" + port + "|" + user.UserName); } WriteFile(path, list); }
public async Task <ResponseViewModel <bool> > AddTunnel(int userId, AdminTunnelsViewModel vm) { var data = new ResponseViewModel <bool>(); if (await _tunnelProvider.GetTunnelBySubDomail(vm.SubDomain) != null) { data.Code = 1; data.Msg = _localizer["add_tunnel.msg"]; return(data); } var tunnelId = GuidUtil.GenerateGuid(); if (await _tunnelProvider.GetTunnel(tunnelId) != null) { data.Code = 1; data.Msg = _localizer["add_tunnel.error"]; return(data); } var tunnel = new TunnelsEntity { TunnelId = tunnelId, UserId = userId, TunnelProtocol = vm.TunnelProtocol, TunnelName = vm.TunnelName, SubDomain = vm.SubDomain, LocalPort = vm.LocalPort, Status = (int)TunnelStatusEnum.Pass, CreateTime = DateTime.Now, OpenTime = DateTime.Now, ExpiredTime = vm.ExpiredTime, FullUrl = vm.FullUrl }; var user = await _usersProvider.GetUserInfo(userId); try { await FileUtil.WriteTunnel(tunnel, user, _tunnelConfig.FilePath, vm.RemotePort); } catch (Exception e) { data.Code = 1; data.Msg = e.Message; return(data); } data.Data = await _tunnelProvider.Create(tunnel); return(data); }
/// <summary> /// 编辑隧道 /// </summary> /// <param name="tunnel"></param> /// <returns></returns> public async Task <bool> Edit(TunnelsEntity tunnel) { var _tunnel = await _content.Tunnels.FirstOrDefaultAsync(t => t.TunnelId == tunnel.TunnelId); if (_tunnel != null) { _tunnel = tunnel; return(await _content.SaveChangesAsync() > 0); } else { return(false); } }
public async Task <ResponseViewModel <bool> > AddTunnel(TunnelsViewModel vm) { var data = new ResponseViewModel <bool>(); var userId = HttpContext.User.FindFirst(u => u.Type == ClaimTypes.NameIdentifier).Value; if (await _tunnelProvider.GetTunnelBySubDomail(vm.SubDomain) != null) { data.Code = 1; data.Msg = _localizer["add_tunnel.msg"]; return(data); } var tunnelId = GuidUtil.GenerateGuid(); if (await _tunnelProvider.GetTunnel(tunnelId) != null) { data.Code = 1; data.Msg = _localizer["add_tunnel.error"]; return(data); } var tunnel = new TunnelsEntity { TunnelId = tunnelId, UserId = Convert.ToInt32(userId), TunnelProtocol = vm.TunnelProtocol, TunnelName = vm.TunnelName, SubDomain = vm.SubDomain, LocalPort = vm.LocalPort, FullUrl = vm.FullUrl, Status = (int)TunnelStatusEnum.Audit, CreateTime = DateTime.Now }; data.Data = await _tunnelProvider.Create(tunnel); return(data); }
/// <summary> /// 开通隧道 /// </summary> /// <param name="tunnel"></param> /// <returns></returns> public async Task <bool> Create(TunnelsEntity tunnel) { await _content.Tunnels.AddAsync(tunnel); return(await _content.SaveChangesAsync() > 0); }
/// <summary> /// 编辑隧道 /// </summary> /// <param name="tunnel"></param> /// <returns></returns> public Task <bool> Edit(TunnelsEntity tunnel) { return(_data.Edit(tunnel)); }
/// <summary> /// 开通隧道 /// </summary> /// <param name="tunnel"></param> /// <returns></returns> public Task <bool> Create(TunnelsEntity tunnel) { return(_data.Create(tunnel)); }