Пример #1
0
 public DataResponse <string> GetLocalJson([FromBody] DataRequest <Guid> request)
 {
     if (request == null)
     {
         return(ResponseBase.InvalidInput <DataResponse <string> >("参数错误"));
     }
     try {
         IUserMineWork mineWork = WebApiRoot.MineWorkSet.GetById(request.Data);
         if (mineWork == null)
         {
             return(ResponseBase.NotExist <DataResponse <string> >());
         }
         if (!User.IsAdmin() && mineWork.LoginName != User.LoginName)
         {
             return(ResponseBase.Forbidden <DataResponse <string> >("无权操作"));
         }
         string localJsonFileFullName = SpecialPath.GetMineWorkLocalJsonFileFullName(request.Data);
         string data = string.Empty;
         if (File.Exists(localJsonFileFullName))
         {
             data = File.ReadAllText(localJsonFileFullName);
         }
         return(DataResponse <string> .Ok(data));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <string> >(e.Message));
     }
 }
Пример #2
0
        private DataResponse <TEntity> HandleDeleteRequest <TEntity>(DataRequest <TEntity> request)
            where TEntity : class, IDataEntity
        {
            bool ok = _storage.Delete <TEntity>(request.Id);

            return(!ok ? DataResponse <TEntity> .NotFound() : DataResponse <TEntity> .Ok());
        }
Пример #3
0
 public DataResponse <List <UserData> > Users([FromBody] DataRequest <Guid?> request)
 {
     if (request == null)
     {
         return(ResponseBase.InvalidInput <DataResponse <List <UserData> > >("参数错误"));
     }
     try {
         if (!request.Data.HasValue)
         {
             // request.Data是ClientId,如果未传ClientId表示是群控客户端,群控客户端获取用户表需验证身份
             if (!request.IsValid(User, Sign, Timestamp, base.ClientIp, out DataResponse <List <UserData> > response))
             {
                 return(response);
             }
         }
         var data = HostRoot.Instance.UserSet.Cast <UserData>().ToList();
         if (request.Data.HasValue)
         {
             // request.Data是ClientId,挖矿端获取用户表无需验证身份但获取到的用户表的密码是加密的和群控客户端获取到的不同的
             data = data.Select(a => new UserData(a)).ToList();
             foreach (var user in data)
             {
                 user.Password = HashUtil.Sha1(HashUtil.Sha1(user.Password) + request.Data.Value);
             }
         }
         return(DataResponse <List <UserData> > .Ok(data));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <List <UserData> > >(e.Message));
     }
 }
Пример #4
0
 public DataResponse <List <GpuName> > GpuNames([FromBody] object request)
 {
     if (request == null)
     {
         return(ResponseBase.InvalidInput <DataResponse <List <GpuName> > >("参数错误"));
     }
     return(DataResponse <List <GpuName> > .Ok(WebApiRoot.GpuNameSet.GetAllGpuNames()));
 }
Пример #5
0
        public DataResponse <MqCountData> MqCount(DataRequest <string> request)
        {
            if (request == null || string.IsNullOrEmpty(request.Data))
            {
                return(ResponseBase.InvalidInput <DataResponse <MqCountData> >("参数错误"));
            }
            MqCountData data = AppRoot.MqCountSet.GetByAppId(request.Data);

            return(DataResponse <MqCountData> .Ok(data));
        }
Пример #6
0
 internal static DataResponse <List <CalcConfigData> > DoCalcConfigs()
 {
     try {
         var data = WebApiRoot.CalcConfigSet.GetAll();
         return(DataResponse <List <CalcConfigData> > .Ok(data));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <List <CalcConfigData> > >(e.Message));
     }
 }
Пример #7
0
 public DataResponse <List <NTMinerWalletData> > NTMinerWallets([FromBody] NTMinerWalletsRequest request)
 {
     try {
         var data = HostRoot.Instance.NTMinerWalletSet.GetAll();
         return(DataResponse <List <NTMinerWalletData> > .Ok(data));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <List <NTMinerWalletData> > >(e.Message));
     }
 }
Пример #8
0
 public DataResponse <List <CalcConfigData> > CalcConfigs([FromBody] CalcConfigsRequest request)
 {
     try {
         var data = HostRoot.Instance.CalcConfigSet.GetAll();
         return(DataResponse <List <CalcConfigData> > .Ok(data));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <List <CalcConfigData> > >(e.Message));
     }
 }
Пример #9
0
 public DataResponse <List <AppSettingData> > AppSettings([FromBody] AppSettingsRequest request)
 {
     try {
         var data = VirtualRoot.LocalAppSettingSet;
         return(DataResponse <List <AppSettingData> > .Ok(data.AsEnumerable().Select(a => AppSettingData.Create(a)).ToList()));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <List <AppSettingData> > >(e.Message));
     }
 }
 public DataResponse <List <KernelOutputKeywordData> > KernelOutputKeywords(KernelOutputKeywordsRequest request)
 {
     try {
         var data = HostRoot.Instance.KernelOutputKeywordSet;
         return(DataResponse <List <KernelOutputKeywordData> > .Ok(data.Select(a => KernelOutputKeywordData.Create(a)).ToList()));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <List <KernelOutputKeywordData> > >(e.Message));
     }
 }
Пример #11
0
 public DataResponse <List <NTMinerWalletData> > NTMinerWallets()
 {
     try {
         var data = WebApiRoot.NTMinerWalletSet.GetAll();
         return(DataResponse <List <NTMinerWalletData> > .Ok(data));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <List <NTMinerWalletData> > >(e.Message));
     }
 }
Пример #12
0
 public DataResponse <List <AppSettingData> > AppSettings([FromBody] AppSettingsRequest request)
 {
     try {
         var data = HostRoot.Instance.AppSettingSet;
         return(DataResponse <List <AppSettingData> > .Ok(data.Select(a => AppSettingData.Create(a)).ToList()));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e.Message, e);
         return(ResponseBase.ServerError <DataResponse <List <AppSettingData> > >(e.Message));
     }
 }
Пример #13
0
 public DataResponse <List <OverClockData> > OverClockDatas([FromBody] OverClockDatasRequest request)
 {
     try {
         var data = HostRoot.Instance.OverClockDataSet.GetAll();
         return(DataResponse <List <OverClockData> > .Ok(data));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e.Message, e);
         return(ResponseBase.ServerError <DataResponse <List <OverClockData> > >(e.Message));
     }
 }
Пример #14
0
 public DataResponse <List <ServerMessageData> > ServerMessages(ServerMessagesRequest request)
 {
     try {
         DateTime timestamp = NTMiner.Timestamp.FromTimestamp(request.Timestamp + 1);
         var      data      = HostRoot.Instance.ServerMessageSet.GetServerMessages(timestamp);
         return(DataResponse <List <ServerMessageData> > .Ok(data));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <List <ServerMessageData> > >(e.Message));
     }
 }
Пример #15
0
 public DataResponse <AppSettingData> AppSetting([FromBody] AppSettingRequest request)
 {
     try {
         if (!VirtualRoot.LocalAppSettingSet.TryGetAppSetting(request.Key, out IAppSetting data))
         {
             data = null;
         }
         return(DataResponse <AppSettingData> .Ok(AppSettingData.Create(data)));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <AppSettingData> >(e.Message));
     }
 }
Пример #16
0
 public DataResponse <List <UserMineWorkData> > MineWorks([FromBody] object request)
 {
     if (request == null)
     {
         return(ResponseBase.InvalidInput <DataResponse <List <UserMineWorkData> > >("参数错误"));
     }
     try {
         var data = WebApiRoot.MineWorkSet.GetsByLoginName(User.LoginName);
         return(DataResponse <List <UserMineWorkData> > .Ok(data));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <List <UserMineWorkData> > >(e.Message));
     }
 }
Пример #17
0
 public DataResponse <LoginedUser> Login([FromBody] object request)
 {
     if (request == null)
     {
         return(ResponseBase.InvalidInput <DataResponse <LoginedUser> >("参数错误"));
     }
     try {
         var userAppSettings = AppRoot.UserAppSettingSet.GetAppSettings(User.LoginName);
         return(DataResponse <LoginedUser> .Ok(User.ToLoginedUserData(userAppSettings)));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <LoginedUser> >(e.Message));
     }
 }
Пример #18
0
 public DataResponse<List<PoolData>> Pools([FromBody]SignRequest request) {
     if (request == null) {
         return ResponseBase.InvalidInput<DataResponse<List<PoolData>>>("参数错误");
     }
     try {
         if (!request.IsValid(User, Sign, Timestamp, base.ClientIp, out DataResponse<List<PoolData>> response)) {
             return response;
         }
         var data = HostRoot.Instance.PoolSet.GetAll();
         return DataResponse<List<PoolData>>.Ok(data);
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return ResponseBase.ServerError<DataResponse<List<PoolData>>>(e.Message);
     }
 }
Пример #19
0
        public DataResponse <MqAppIds> MqAppIds()
        {
            var         appIds      = AppRoot.MqCountSet.GetAppIds();
            var         appId       = appIds.FirstOrDefault();
            MqCountData mqCountData = null;

            if (!string.IsNullOrEmpty(appId))
            {
                mqCountData = AppRoot.MqCountSet.GetByAppId(appId);
            }
            return(DataResponse <MqAppIds> .Ok(new MqAppIds {
                AppIds = appIds,
                AppId = appId,
                MqCountData = mqCountData
            }));
        }
Пример #20
0
 internal static DataResponse <List <ServerMessageData> > DoServerMessages(ServerMessagesRequest request)
 {
     if (request == null ||
         request.Timestamp < 0 /*早于1970年*/ ||
         request.Timestamp > Timestamp.GetTimestamp(DateTime.Now.AddDays(1)) /*晚于明天*/)
     {
         return(ResponseBase.InvalidInput <DataResponse <List <ServerMessageData> > >("参数错误"));
     }
     try {
         DateTime timestamp = Timestamp.FromTimestamp(request.Timestamp + 1);
         var      data      = WebApiRoot.ServerMessageSet.GetServerMessages(timestamp);
         return(DataResponse <List <ServerMessageData> > .Ok(data));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <List <ServerMessageData> > >(e.Message));
     }
 }
Пример #21
0
 public DataResponse <string> GetNodeAddress([FromBody] GetNodeAddressRequest request)
 {
     if (request == null || request.ClientId == Guid.Empty || string.IsNullOrEmpty(request.UserId))
     {
         return(ResponseBase.InvalidInput <DataResponse <string> >("参数错误"));
     }
     try {
         var user = WebApiRoot.UserSet.GetUser(UserId.Create(request.UserId));
         if (user == null)
         {
             return(ResponseBase.InvalidInput <DataResponse <string> >("用戶不存在"));
         }
         return(DataResponse <string> .Ok(WebApiRoot.WsServerNodeSet.GetTargetNode(request.ClientId)));
     }
     catch (Exception e) {
         return(ResponseBase.ServerError <DataResponse <string> >(e.Message));
     }
 }
Пример #22
0
 public DataResponse <List <ColumnsShowData> > ColumnsShows([FromBody] SignatureRequest request)
 {
     if (request == null)
     {
         return(ResponseBase.InvalidInput <DataResponse <List <ColumnsShowData> > >("参数错误"));
     }
     try {
         if (!request.IsValid(HostRoot.Instance.UserSet.GetUser, ClientIp, out DataResponse <List <ColumnsShowData> > response))
         {
             return(response);
         }
         var data = HostRoot.Instance.ColumnsShowSet.GetAll();
         return(DataResponse <List <ColumnsShowData> > .Ok(data));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <List <ColumnsShowData> > >(e.Message));
     }
 }
Пример #23
0
 public DataResponse <List <UserAppSettingData> > AppSettings([FromBody] DataRequest <string> request)
 {
     if (request == null || string.IsNullOrEmpty(request.Data))
     {
         return(ResponseBase.InvalidInput <DataResponse <List <UserAppSettingData> > >("参数错误"));
     }
     try {
         if (!IsValidUser(request, out DataResponse <List <UserAppSettingData> > response))
         {
             return(response);
         }
         var data = WebApiRoot.UserAppSettingSet;
         return(DataResponse <List <UserAppSettingData> > .Ok(data.GetAppSettings(request.Data).Select(a => UserAppSettingData.Create(a)).ToList()));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <List <UserAppSettingData> > >(e.Message));
     }
 }
Пример #24
0
 public DataResponse <List <UserMinerGroupData> > MinerGroups([FromBody] SignRequest request)
 {
     if (request == null)
     {
         return(ResponseBase.InvalidInput <DataResponse <List <UserMinerGroupData> > >("参数错误"));
     }
     try {
         if (!IsValidUser(request, out DataResponse <List <UserMinerGroupData> > response, out UserData user))
         {
             return(response);
         }
         var data = WebApiRoot.MinerGroupSet.GetsByLoginName(user.LoginName);
         return(DataResponse <List <UserMinerGroupData> > .Ok(data));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <List <UserMinerGroupData> > >(e.Message));
     }
 }
Пример #25
0
        public DataResponse <List <ClientData> > RefreshClients([FromBody] MinerIdsRequest request)
        {
            if (request == null || request.ObjectIds == null)
            {
                return(ResponseBase.InvalidInput <DataResponse <List <ClientData> > >("参数错误"));
            }
            if (!HostRoot.Instance.HostConfig.IsPull)
            {
                return(ResponseBase.InvalidInput <DataResponse <List <ClientData> > >("服务端配置为不支持刷新"));
            }
            try {
                if (!request.IsValid(User, Sign, Timestamp, base.ClientIp, out DataResponse <List <ClientData> > response))
                {
                    return(response);
                }

                var data = HostRoot.Instance.ClientSet.RefreshClients(request.ObjectIds);
                return(DataResponse <List <ClientData> > .Ok(data));
            }
            catch (Exception e) {
                Logger.ErrorDebugLine(e);
                return(ResponseBase.ServerError <DataResponse <List <ClientData> > >(e.Message));
            }
        }
Пример #26
0
 public DataResponse <string> GetLocalJson([FromBody] DataRequest <Guid> request)
 {
     if (request == null)
     {
         return(ResponseBase.InvalidInput <DataResponse <string> >("参数错误"));
     }
     try {
         if (!request.IsValid(User, Sign, Timestamp, base.ClientIp, out DataResponse <string> response))
         {
             return(response);
         }
         string localJsonFileFullName = SpecialPath.GetMineWorkLocalJsonFileFullName(request.Data);
         string data = string.Empty;
         if (File.Exists(localJsonFileFullName))
         {
             data = File.ReadAllText(localJsonFileFullName);
         }
         return(DataResponse <string> .Ok(data));
     }
     catch (Exception e) {
         Logger.ErrorDebugLine(e);
         return(ResponseBase.ServerError <DataResponse <string> >(e.Message));
     }
 }
Пример #27
0
        public DataResponse <MqCountData[]> MqCounts()
        {
            var data = AppRoot.MqCountSet.GetAll();

            return(DataResponse <MqCountData[]> .Ok(data));
        }
Пример #28
0
 /// <summary>
 /// 获取给定币种列表的收益计算器数据的目的是为了消减自动获取时的数据尺寸从而消减带宽,
 /// 因为阿里云的带宽收费是阶梯递增的。
 /// </summary>
 /// <param name="coinCodes"></param>
 /// <returns></returns>
 internal static DataResponse <List <CalcConfigData> > DoCalcConfigs(string coinCodes)
 {
     return(DataResponse <List <CalcConfigData> > .Ok(AppRoot.CalcConfigSet.Gets(coinCodes)));
 }