示例#1
0
        /// <summary>
        /// 设置角色权限
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public async Task <StatusResult> SetRolePermissionAsync(SetRolePermissionInputDto dto)
        {
            var result = new StatusResult();
            var role   = await _roleRepository.Where(o => o.Id == dto.RoleId && o.Enabled).AnyAsync();

            if (!role)
            {
                result.SetErrorMessage("未获取到角色信息");
                return(result);
            }
            await _rolePermissionRepository.DeleteAsync(o => o.RoleId == dto.RoleId);

            var data = new List <RolePermissionEntity>();

            foreach (var item in dto.PermissionIds)
            {
                var model = new RolePermissionEntity()
                {
                    Id           = Snowflake.GenId(),
                    PermissionId = item,
                    RoleId       = dto.RoleId
                };
                data.Add(model);
            }
            await _rolePermissionRepository.InsertAsync(data);

            return(result);
        }
示例#2
0
        public async Task <IActionResult> Delete([FromRoute] string userNameOrId)
        {
            if (string.IsNullOrWhiteSpace(userNameOrId))
            {
                return(ErrorResult
                       .BadRequest($"The identifier '{userNameOrId}' provided in the url path is invalid.  Must be a valid email address or GUID.", ResultErrorCode.ValidationError)
                       .ActionResult());
            }

            var teamCloudInstance = await teamCloudRepository
                                    .GetAsync()
                                    .ConfigureAwait(false);

            if (teamCloudInstance is null)
            {
                return(ErrorResult
                       .NotFound($"No TeamCloud Instance was found.")
                       .ActionResult());
            }

            if (!Guid.TryParse(userNameOrId, out var userId))
            {
                var idLookup = await userService
                               .GetUserIdAsync(userNameOrId)
                               .ConfigureAwait(false);

                if (!idLookup.HasValue || idLookup.Value == Guid.Empty)
                {
                    return(ErrorResult
                           .NotFound($"A User with the email '{userNameOrId}' could not be found.")
                           .ActionResult());
                }

                userId = idLookup.Value;
            }

            var user = teamCloudInstance.Users?.FirstOrDefault(u => u.Id == userId);

            if (user is null)
            {
                return(ErrorResult
                       .NotFound($"The specified User could not be found in this TeamCloud Instance.")
                       .ActionResult());
            }

            var command = new OrchestratorTeamCloudUserDeleteCommand(CurrentUser, user);

            var commandResult = await orchestrator
                                .InvokeAsync(command)
                                .ConfigureAwait(false);

            if (commandResult.Links.TryGetValue("status", out var statusUrl))
            {
                return(StatusResult
                       .Accepted(commandResult.CommandId.ToString(), statusUrl, commandResult.RuntimeStatus.ToString(), commandResult.CustomStatus)
                       .ActionResult());
            }

            throw new Exception("This shoudn't happen, but we need to decide to do when it does.");
        }
        public async Task <ActionResult> AddManualInspection(ManualRSIModel inspectionModel)
        {
            if (!ModelState.IsValid)
            {
                //return Json(new { status = "Error" }, JsonRequestBehavior.AllowGet);
            }
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", userData.AccessToken);
            HttpResponseMessage responseMessage = await client.PostAsJsonAsync(_url + "RoadsideInspection/InsertInspectionEntry", inspectionModel);

            if (responseMessage.IsSuccessStatusCode)
            {
                var          result       = responseMessage.Content.ReadAsStringAsync().Result;
                StatusResult statusResult = JsonConvert.DeserializeObject <StatusResult>(result);
                if (statusResult.Status.Equals(Status.Success.ToString()))
                {
                    ManualRSIModel inspectionData = JsonConvert.DeserializeObject <ManualRSIModel>(statusResult.Result.ToString());
                    return(Json(new { status = statusResult.Status, inspectionData = inspectionData }, JsonRequestBehavior.AllowGet));
                }
                else if (statusResult.Status.Equals(Status.Fail.ToString()))
                {
                    return(Json(new { status = Status.Fail.ToString() }, JsonRequestBehavior.AllowGet));
                }
            }
            return(Json(new { status = "Error" }, JsonRequestBehavior.AllowGet));
        }
示例#4
0
        public void Usuario_SaveTemplate()
        {
            if (rep.iDClassSession == null)
            {
                Assert.Inconclusive("iDClass não conectado");
            }

            //UserUpdateRequest uur = new UserUpdateRequest();
            UserAddRequest uur = new UserAddRequest();

            uur.Usuario[0].PIS  = 444;
            uur.Usuario[0].Nome = "Fabio 2";
            // Digital TXAI indicador direito
            //uur.Usuario[0].Templates = new string[] { "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" };
            // Digital Fabio indicaro direito


            string template_iDX     = "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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==";
            string template_iDClass = RepCid.TemplateToiDClass(Convert.FromBase64String(template_iDX));

            uur.Usuario[0].Templates = new string[] { template_iDClass };

            StatusResult st = (StatusResult)RestJSON.SendJson(rep.IP, uur, typeof(StatusResult), rep.iDClassSession);

            if (!st.isOK)
            {
                Assert.Inconclusive(st.Status);
            }
        }
示例#5
0
        public void TestWrite()
        {
            JsonSerializerOptions           options  = new JsonSerializerOptions().SetupExtensions();
            DiscriminatorConventionRegistry registry = options.GetDiscriminatorConventionRegistry();

            registry.ClearConventions();
            registry.RegisterConvention(new DefaultDiscriminatorConvention <string>(options, "$type"));
            registry.RegisterType <MessageResult>();
            registry.RegisterType <StatusResult>();

            const string json1     = "{\"data\":{\"$type\":\"message\",\"message_id\":770,\"message_content\":1},\"id\":\"6nd28c1\",\"status\":\"ok\"}";
            Response     response1 = JsonSerializer.Deserialize <Response>(json1, options);

            Assert.NotNull(response1);
            Assert.Equal("6nd28c1", response1.Id);
            Assert.Equal("ok", response1.Status);
            Assert.NotNull(response1.Data);
            MessageResult messageResult = Assert.IsType <MessageResult>(response1.Data);

            Assert.Equal(770, messageResult.MessageId);
            Assert.Equal(1, messageResult.Content);

            const string json2     = "{\"data\":{\"$type\":\"status\",\"status_id\":12},\"id\":\"6nd28c1\",\"status\":\"ok\"}";
            Response     response2 = JsonSerializer.Deserialize <Response>(json2, options);

            Assert.NotNull(response2);
            Assert.Equal("6nd28c1", response2.Id);
            Assert.Equal("ok", response2.Status);
            Assert.NotNull(response2.Data);
            StatusResult statusResult = Assert.IsType <StatusResult>(response2.Data);

            Assert.Equal(12, statusResult.StatusId);
        }
示例#6
0
        public async Task<ActionResult> UploadDrivers()
        {
            try
            {
                CustomerProfile cProfile = new CustomerProfile();
                if (userData.Roles.Contains(Roles.AccountAdmin))
                {
                    cProfile.CompanyID = userData.CompanyId;
                    return View(cProfile);

                }
                else
                {
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", userData.AccessToken);
                    HttpResponseMessage responseMessage = await client.PostAsJsonAsync(_url + "Customer/GetCustomerProfileByUserID", "");
                    if (responseMessage.IsSuccessStatusCode)
                    {
                        var result = responseMessage.Content.ReadAsStringAsync().Result;
                        statusResult = JsonConvert.DeserializeObject<StatusResult>(result);
                        if (statusResult.Status.Equals(Status.Success.ToString()))
                        {
                            List<CustomerProfile> customerData = JsonConvert.DeserializeObject<List<CustomerProfile>>(statusResult.Result.ToString());
                            return View(BindDropDown(customerData, cProfile));
                        }
                    }
                }
                return View("Error");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#7
0
        public void Fail_Status()
        {
            var status = new StatusResult();

            status.AddError("fail:");
            TestModel.Fail(status);
        }
示例#8
0
 private async Task <StatusResult> SaveStatusAsync(Status status)
 => await ServiceProxyFactory.DoAsync(async (StatusMasterClient client) =>
 {
     StatusResult result = null;
     result = await client.SaveAsync(SessionKey, status);
     return(result);
 });
示例#9
0
 private async Task <Status> GetStatusAsync(string code)
 => await ServiceProxyFactory.DoAsync(async (StatusMasterClient client) =>
 {
     StatusResult result = null;
     result = await client.GetStatusByCodeAsync(SessionKey, CompanyId, StatusType, code);
     return(result.Status);
 });
示例#10
0
        public async Task <ActionResult> ConfirmEmail(string userId, string code)
        {
            if (userId == null || code == null)
            {
                return(View("Error"));
            }
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", userData.AccessToken);
            ResetToken token = new Models.ResetToken();

            token.UserId = userId;
            token.Code   = code;
            HttpResponseMessage responseMessage = await client.PostAsJsonAsync(_url + "Account/ConfirmEmail", token);

            if (responseMessage.IsSuccessStatusCode)
            {
                var          result       = responseMessage.Content.ReadAsStringAsync().Result;
                StatusResult statusResult = JsonConvert.DeserializeObject <StatusResult>(result);
                if (statusResult.Status.Equals(Status.Success.ToString()))
                {
                    return(RedirectToAction("Login", "Account"));
                }
                return(View("Error"));
            }
            return(View("Error"));
        }
示例#11
0
        public void ModifyPage()
        {
            // Ordered by most recent first.  --Kris
            WikiPageRevisionContainer revisions = reddit.Models.Wiki.PageRevisions("index", new SrListingInput(), testData["Subreddit"]);

            Validate(revisions);
            Assert.IsTrue(revisions.Data.Children != null && revisions.Data.Children.Count > 0);

            // Edit an existing page.  --Kris
            reddit.Models.Wiki.Edit(new WikiEditPageInput("There are only 10 types of people in this world:  Those who understand binary and those who don't.", "index",
                                                          "Because I said so.", revisions.Data.Children[0].Id), testData["Subreddit"]);

            // Hide the page.  --Kris
            StatusResult hideRes = reddit.Models.Wiki.Hide(new WikiPageRevisionInput("index", revisions.Data.Children[0].Id), testData["Subreddit"]);

            // Unhide the page.  --Kris
            StatusResult unhideRes = reddit.Models.Wiki.Hide(new WikiPageRevisionInput("index", revisions.Data.Children[0].Id), testData["Subreddit"]);

            Validate(hideRes);
            Validate(unhideRes);

            // Revert to the original page version.  --Kris
            reddit.Models.Wiki.Revert(new WikiPageRevisionInput("index", revisions.Data.Children[revisions.Data.Children.Count - 1].Id), testData["Subreddit"]);

            // Update the permissions.  --Kris
            WikiPageSettingsContainer res = reddit.Models.Wiki.UpdatePermissions("index", new WikiUpdatePermissionsInput(), testData["Subreddit"]);

            Validate(res);
        }
        /// <summary>
        /// 移除已读消息
        /// </summary>
        /// <param name="guid"></param>
        public JsonResult UpdateStatus(string guid)
        {
            var result = new StatusResult(1, null);

            _messageRepository.UpdateStatus(guid);
            return(Json(result));
        }
示例#13
0
        /// <summary>
        /// The service result for a field in an notification (the field must contain a Status object).
        /// </summary>
        public static ServiceResult GetServiceResult(IEncodeable notification, int index)
        {
            EventFieldList eventFields = notification as EventFieldList;

            if (eventFields == null)
            {
                return(null);
            }

            NotificationMessage message = eventFields.Message;

            if (message != null)
            {
                return(null);
            }

            if (index < 0 || index >= eventFields.EventFields.Count)
            {
                return(null);
            }

            StatusResult status =
                ExtensionObject.ToEncodeable(eventFields.EventFields[index].Value as ExtensionObject) as StatusResult;

            if (status == null)
            {
                return(null);
            }

            return(new ServiceResult(status.StatusCode, status.DiagnosticInfo, message.StringTable));
        }
示例#14
0
        public async Task <ActionResult> UpdateCustomer(CustomerProfile model)
        {
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", userData.AccessToken);
            HttpResponseMessage responseMessage = await client.PostAsJsonAsync(_url + "Customer/UpdateCustomer", model);

            var result = responseMessage.Content.ReadAsStringAsync().Result;

            statusResult = JsonConvert.DeserializeObject <StatusResult>(result);
            if (responseMessage.IsSuccessStatusCode)
            {
                if (statusResult.Status.Equals(Status.Success.ToString()))
                {
                    return(Json(statusResult, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(statusResult, JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                Log.Error(Logfornet.LogMessage(model.CompanyID, "UpdateCustomer", statusResult.Result, statusResult.Status));
            }
            return(View("Error"));
        }
示例#15
0
        private static void Main(string[] args)
        {
            string ipAddress = "192.168.0.123";

            // Request Status of Device
            WebRequest webReq = WebRequest.Create($"http://{ipAddress}:8080/v2/pos?Action=Status&Format=XML");

            using (WebResponse webResp = webReq.GetResponse())
            {
                using (Stream responseStream = webResp.GetResponseStream())
                {
                    // Validate XML to Genius XSD class
                    StreamReader  streamReader      = new StreamReader(responseStream);
                    XmlSerializer xmlSerializer     = new XmlSerializer(typeof(StatusResult));
                    StatusResult  transactionResult = (StatusResult)xmlSerializer.Deserialize(streamReader);
                    Console.WriteLine("Status: {0}", transactionResult.Status);
                    Console.WriteLine("Current Screen: {0}", transactionResult.CurrentScreen);
                    Console.WriteLine("Response Message: {0}", transactionResult.ResponseMessage);
                    Console.WriteLine("Serial Number: {0}", transactionResult.SerialNumber);
                    Console.WriteLine("Application Version: {0}", transactionResult.ApplicationVersion);
                }
            }

            // Close application
            Console.WriteLine("Press Any Key to Close");
            Console.ReadKey();
        }
示例#16
0
        /// <summary>
        /// 电子票发送短信
        /// </summary>
        /// <param name="orderDetails"></param>
        /// <param name="mobile"></param>
        public StatusResult Send(List <Tbl_OrderDetail> orderDetails, string mobile)
        {
            var result = new StatusResult {
                Status = true
            };
            var sendOrderDetails = orderDetails.Where(a => a.TicketCategory == 3).ToList();

            if (sendOrderDetails.Count > 0)
            {
                //发送短信
                var scenicIds   = orderDetails.Select(a => a.ScenicId).ToList();
                var tbl_Scenics = _scenicService.GetList(scenicIds);
                foreach (var detail in orderDetails)
                {
                    if (tbl_Scenics.FirstOrDefault(o => o.ScenicId == detail.ScenicId && (o.DataStatus & 1) == 0 && (o.DataStatus & 2) == 0 && o.SmsCount > 0) == null)
                    {
                        //发送退票短信失败,该景区未开启短信功能,或短信余额不足
                        result.Status = false;
                        continue;
                    }
                    var sendResult = Send(mobile, tbl_Scenics, detail);
                    if (!sendResult)
                    {
                        result.Status = false;
                    }
                }
            }
            return(result);
        }
示例#17
0
        public async Task <IActionResult> Post([FromBody] UserDefinition userDefinition)
        {
            if (userDefinition is null)
            {
                throw new ArgumentNullException(nameof(userDefinition));
            }

            var validation = new UserDefinitionValidator().Validate(userDefinition);

            if (!validation.IsValid)
            {
                return(ErrorResult
                       .BadRequest(validation)
                       .ActionResult());
            }

            var teamCloudInstance = await teamCloudRepository
                                    .GetAsync()
                                    .ConfigureAwait(false);

            if (teamCloudInstance is null)
            {
                return(ErrorResult
                       .NotFound($"No TeamCloud Instance was found.")
                       .ActionResult());
            }

            var newUser = await userService
                          .GetUserAsync(userDefinition)
                          .ConfigureAwait(false);

            if (newUser is null)
            {
                return(ErrorResult
                       .NotFound($"A User with the Email '{userDefinition.Email}' could not be found.")
                       .ActionResult());
            }

            if (teamCloudInstance.Users.Contains(newUser))
            {
                return(ErrorResult
                       .Conflict($"A User with the Email '{userDefinition.Email}' already exists on this TeamCloud Instance. Please try your request again with a unique email or call PUT to update the existing User.")
                       .ActionResult());
            }

            var command = new OrchestratorTeamCloudUserCreateCommand(CurrentUser, newUser);

            var commandResult = await orchestrator
                                .InvokeAsync(command)
                                .ConfigureAwait(false);

            if (commandResult.Links.TryGetValue("status", out var statusUrl))
            {
                return(StatusResult
                       .Accepted(commandResult.CommandId.ToString(), statusUrl, commandResult.RuntimeStatus.ToString(), commandResult.CustomStatus)
                       .ActionResult());
            }

            throw new Exception("This shouldn't happen, but we need to decide to do when it does.");
        }
示例#18
0
        /// <summary>
        /// Create Area to Location
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ActionResult> AddArea(LocationConfigurationViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new { status = "Error" }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", userData.AccessToken);
                HttpResponseMessage responseMessage = await client.PostAsJsonAsync(_url + "Location/AddLocationParent", model);

                if (responseMessage.IsSuccessStatusCode)
                {
                    var          result       = responseMessage.Content.ReadAsStringAsync().Result;
                    StatusResult statusResult = JsonConvert.DeserializeObject <StatusResult>(result);
                    if (statusResult.Status.Equals(Status.Success.ToString()))
                    {
                        LocationConfigurationViewModel locArea = JsonConvert.DeserializeObject <LocationConfigurationViewModel>(statusResult.Result.ToString());
                        return(Json(new { status = statusResult.Status, locationData = locArea }, JsonRequestBehavior.AllowGet));
                    }
                    else if (statusResult.Status.Equals(Status.Fail.ToString()))
                    {
                        return(Json(new { status = Status.Fail.ToString() }, JsonRequestBehavior.AllowGet));
                    }
                }
                return(Json(new { status = "Error" }, JsonRequestBehavior.AllowGet));
            }
        }
示例#19
0
        public async Task <IActionResult> GetStatus(string cryptoCode)
        {
            var network = GetNetwork(cryptoCode, false);
            var waiter  = Waiters.GetWaiter(network);
            var chain   = ChainProvider.GetChain(network);
            var repo    = RepositoryProvider.GetRepository(network);
            var now     = DateTimeOffset.UtcNow;


            var location = waiter.GetLocation();

            var blockchainInfoAsync = waiter.RPCAvailable ? waiter.RPC.GetBlockchainInfoAsyncEx() : null;
            var networkInfoAsync    = waiter.RPCAvailable ? waiter.RPC.GetNetworkInfoAsync() : null;
            await repo.Ping();

            var pingAfter = DateTimeOffset.UtcNow;

            GetBlockchainInfoResponse blockchainInfo = blockchainInfoAsync == null ? null : await blockchainInfoAsync;
            GetNetworkInfoResponse    networkInfo    = networkInfoAsync == null ? null : await networkInfoAsync;
            var status = new StatusResult()
            {
                NetworkType          = network.NBitcoinNetwork.NetworkType,
                CryptoCode           = network.CryptoCode,
                Version              = typeof(MainController).GetTypeInfo().Assembly.GetCustomAttribute <AssemblyFileVersionAttribute>().Version,
                SupportedCryptoCodes = Waiters.All().Select(w => w.Network.CryptoCode).ToArray(),
                RepositoryPingTime   = (pingAfter - now).TotalSeconds,
                IsFullySynched       = true
            };

            if (status.RepositoryPingTime > 30)
            {
                Logs.Explorer.LogWarning($"Repository ping exceeded 30 seconds ({(int)status.RepositoryPingTime}), please report the issue to NBXplorer developers");
            }

            if (blockchainInfo != null)
            {
                status.BitcoinStatus = new BitcoinStatus()
                {
                    IsSynched            = !waiter.IsSynchingCore(blockchainInfo),
                    Blocks               = (int)blockchainInfo.Blocks,
                    Headers              = (int)blockchainInfo.Headers,
                    VerificationProgress = blockchainInfo.VerificationProgress,
                    MinRelayTxFee        = new FeeRate(Money.Coins((decimal)networkInfo.relayfee), 1000),
                    IncrementalRelayFee  = new FeeRate(Money.Coins((decimal)networkInfo.incrementalfee), 1000),
                    Capabilities         = new NodeCapabilities()
                    {
                        CanScanTxoutSet  = waiter.RPC.Capabilities.SupportScanUTXOSet,
                        CanSupportSegwit = waiter.RPC.Capabilities.SupportSegwit
                    }
                };
                status.IsFullySynched &= status.BitcoinStatus.IsSynched;
            }
            status.ChainHeight     = chain.Height;
            status.SyncHeight      = location == null ? (int?)null : chain.FindFork(location).Height;
            status.IsFullySynched &= blockchainInfo != null &&
                                     waiter.State == BitcoinDWaiterState.Ready &&
                                     status.SyncHeight.HasValue &&
                                     blockchainInfo.Headers - status.SyncHeight.Value < 3;
            return(Json(status));
        }
示例#20
0
 public async Task<IActionResult> Index(string Username, string Experiment, string Project, StatusResult? Result)
 {
     IEnumerable<Status> ret = DB.Statuses
         .Include(x => x.Experiment)
         .Include(x => x.Project)
         .Include(x => x.User);
     if (Result.HasValue)
         ret = ret.Where(x => x.Result == Result.Value);
     if (!string.IsNullOrEmpty(Username))
     {
         var user = await UserManager.FindByNameAsync(Username);
         ret = ret.Where(x => x.UserId == user.Id);
     }
     if (!string.IsNullOrEmpty(Experiment))
     {
         var experimentIds = (from e in DB.Experiments
                              where e.Title.Contains(Experiment) || Experiment.Contains(e.Title)
                              select e.Id).ToList();
         ret = ret.Where(x => x.ExperimentId != null && experimentIds.Contains(x.ExperimentId.Value));
     }
     if (!string.IsNullOrEmpty(Project))
     {
         var experimentIds = (from e in DB.Projects
                              where e.Alias.Contains(Project) || Experiment.Contains(e.Alias)
                              select e.Id).ToList();
         ret = ret.Where(x => x.ProjectId != null && experimentIds.Contains(x.ProjectId.Value));
     }
     ret = ret
         .OrderByDescending(x => x.Time);
     return AjaxPagedView(ret, ".lst-statuses");
 }
        public StatusResult CheckCoursesPermission(Guid id)
        {
            var res = new StatusResult()
            {
                Result = BaseResult.NeedPermission
            };
            var x = CoursesRepository.FirstOrDefault(x => x.Id == id);

            if (x.CreatorId == (Guid)_currentUser.Id)
            {
                res.Result = BaseResult.Ok;
                return(res);
            }
            if (x.Password == null)
            {
                res.Result = BaseResult.Ok;
                return(res);
            }
            var y = _repository.Where(x => x.CourseId == id).Where(x => x.UserId == _currentUser.Id).FirstOrDefault();

            if (y == null)
            {
                res.Result = BaseResult.NeedPermission;
                return(res);
            }

            res.Result = BaseResult.Ok;
            return(res);
        }
        public StatusResult GetStatus(StatusRequest request)
        {
            var status = new StatusResult()
            {
                Success              = true,
                Status               = this.Status,
                IsGameOver           = this.GameOver,
                Waiting              = this.Waiting,
                CurrentTurn          = Turn,
                NextTurnStart        = endServerTurn,
                EndOfCurrentTurn     = endPlayerTurn,
                PlayerTurnLength     = (int)PLAYER_TURN_LENGTH,
                ServerTurnLength     = (int)SERVER_TURN_LENGTH,
                Planets              = Planets.Select(p => Mapper.Map <Shared.Planet>(p)).ToList(),
                Fleets               = Fleets.Select(f => Mapper.Map <Shared.Fleet>(f)).ToList(),
                PlayerA              = 1,
                PlayerAScore         = _getPlayerScore(1),
                PlayerAScoreOverTime = PlayerAScoreOverTime,
                PlayerB              = 2,
                PlayerBScore         = _getPlayerScore(2),
                PlayerBScoreOverTime = PlayerBScoreOverTime
            };

            return(status);
        }
示例#23
0
        private IActionResult GetStatusResult(ICommandResult result)
        {
            if (result is null)
            {
                return(ErrorResult
                       .NotFound($"A status for the provided Tracking Id was not found.")
                       .ActionResult());
            }

            result.Links.TryGetValue("status", out var status);

            switch (result.RuntimeStatus)
            {
            case CommandRuntimeStatus.Completed:

                if (result.Links.TryGetValue("location", out var location))
                {
                    // return 302 (found) with location to resource
                    Response.Headers.Add("Location", location);
                    return(StatusResult
                           .Success(result.CommandId.ToString(), location, result.RuntimeStatus.ToString(), result.CustomStatus)
                           .ActionResult());
                }

                // no resource location (i.e. DELETE command) return 200 (ok)
                return(StatusResult
                       .Success(result.CommandId.ToString(), result.RuntimeStatus.ToString(), result.CustomStatus)
                       .ActionResult());

            case CommandRuntimeStatus.Running:
            case CommandRuntimeStatus.ContinuedAsNew:
            case CommandRuntimeStatus.Pending:

                // command is in an active state, return 202 (accepted) so client can poll
                return(StatusResult
                       .Accepted(result.CommandId.ToString(), status, result.RuntimeStatus.ToString(), result.CustomStatus)
                       .ActionResult());

            case CommandRuntimeStatus.Canceled:
            case CommandRuntimeStatus.Terminated:
            case CommandRuntimeStatus.Failed:

                return(StatusResult
                       .Failed(result.Errors, result.CommandId.ToString(), result.RuntimeStatus.ToString(), result.CustomStatus)
                       .ActionResult());

            default:     // TODO: this probably isn't right as a default

                if (result.Errors?.Any() ?? false)
                {
                    return(StatusResult
                           .Failed(result.Errors, result.CommandId.ToString(), result.RuntimeStatus.ToString(), result.CustomStatus)
                           .ActionResult());
                }

                return(StatusResult
                       .Ok(result.CommandId.ToString(), result.RuntimeStatus.ToString(), result.CustomStatus)
                       .ActionResult());
            }
        }
示例#24
0
        public async Task <StatusResult> GetStatus()
        {
            if (_status == null)
            {
                _status = new();

                if (!string.IsNullOrWhiteSpace(applicationService.SonarrSettings?.APIURL))
                {
                    if ((await TestConnectionAsync(applicationService.SonarrSettings)).Success)
                    {
                        _status.Status  = ServiceStatus.Ready;
                        _status.Message = new("Ready");
                    }
                    else
                    {
                        _status.Status  = ServiceStatus.Partial;
                        _status.Message = new("Connection details are available, but connection cannot be completed. Check <a href=\"/options\">options</a>");
                    }
                }
                else
                {
                    _status.Status  = ServiceStatus.Incomplete;
                    _status.Message = new("Connection details are missing. Use the <a href=\"/options\">options</a> page to enter them");
                }
            }

            return(_status);
        }
示例#25
0
        internal StreamingMessage ProcessFunctionLoadRequest(StreamingMessage request)
        {
            FunctionLoadRequest functionLoadRequest = request.FunctionLoadRequest;

            // Assume success unless something bad happens
            StatusResult status = new StatusResult()
            {
                Status = StatusResult.Types.Status.Success
            };

            // Try to load the functions
            try
            {
                _functionLoader.Load(functionLoadRequest);
            }
            catch (Exception e)
            {
                status.Status    = StatusResult.Types.Status.Failure;
                status.Exception = e.ToRpcException();
            }

            return(new StreamingMessage()
            {
                RequestId = request.RequestId,
                FunctionLoadResponse = new FunctionLoadResponse()
                {
                    FunctionId = functionLoadRequest.FunctionId,
                    Result = status
                }
            });
        }
        private static string InitiateKeyedEntry(string ipAddress)
        {
            bool onSaleScreen = false;
            int  attempts     = 0;

            do
            {
                // Wait 1 Second then get the current screen
                Thread.Sleep(1000);
                Console.WriteLine("Sending Status Request.");
                StatusResult statusResult = (StatusResult)GeniusRequest($"http://{ipAddress}:8080/v2/pos?Action=Status&Format=XML", typeof(StatusResult)).Result;
                // Check the current screen and move on if we are on screen 02 or 03
                if (statusResult.CurrentScreen == "02" || statusResult.CurrentScreen == "03")
                {
                    Console.WriteLine("Terminal is ready for KeyedEntry");
                    onSaleScreen = true;
                }
                else
                {
                    Console.WriteLine("Terminal is not Ready. CurrentScreen {0}. Waiting 1 second before trying again.", statusResult.CurrentScreen);
                }
                ++attempts;
            }while (!onSaleScreen && attempts < 5);

            if (onSaleScreen)
            {
                InitiateKeyedEntryResult keyedEntryResult = (InitiateKeyedEntryResult)GeniusRequest($"http://{ipAddress}:8080/pos?Action=InitiateKeyedEntry&Format=XML", typeof(InitiateKeyedEntryResult)).Result;
                return(keyedEntryResult.Status);
            }
            else
            {
                return("Max attempts reached.");
            }
        }
示例#27
0
        internal StreamingMessage ProcessWorkerInitRequest(StreamingMessage request)
        {
            StatusResult status = new StatusResult()
            {
                Status = StatusResult.Types.Status.Success
            };

            try
            {
                _powerShellManager.InitializeRunspace();
            }
            catch (Exception e)
            {
                status.Status    = StatusResult.Types.Status.Failure;
                status.Exception = e.ToRpcException();
            }

            return(new StreamingMessage()
            {
                RequestId = request.RequestId,
                WorkerInitResponse = new WorkerInitResponse()
                {
                    Result = status
                }
            });
        }
示例#28
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="key">键值</param>
        public virtual StatusResult Delete(object key)
        {
            StatusResult statusMessage = new StatusResult();

            try
            {
                var entity = Repository.Get(key);
                if (entity == null)
                {
                    statusMessage.Status  = Status.Wrong;
                    statusMessage.Message = "数据不存在或已被删除";
                }
                var result = Repository.Delete(key);
                if (!result)
                {
                    statusMessage.Status  = Status.Wrong;
                    statusMessage.Message = "删除发生错误";
                }
            }
            catch (Exception ex)
            {
                statusMessage.Status  = Status.Error;
                statusMessage.Message = "数据访问错误";
                ExceptionHandler.LogExcetion(ex, this.GetType().FullName, System.Reflection.MethodBase.GetCurrentMethod());
            }
            return(statusMessage);
        }
示例#29
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="entity">更新的实体</param>
        public virtual StatusResult Update(TEntity entity)
        {
            StatusResult statusMessage = new StatusResult();

            try
            {
                var dbEntity = Repository.Get(entity.GetType().GetProperties().First().GetValue(entity, null));
                if (dbEntity == null)
                {
                    statusMessage.Status  = Status.Wrong;
                    statusMessage.Message = "更新的对象不存在";
                }
                var result = Repository.Update(entity);
                if (!result)
                {
                    statusMessage.Status  = Status.Wrong;
                    statusMessage.Message = "更新发送错误";
                }
            }
            catch (Exception ex)
            {
                statusMessage.Status  = Status.Error;
                statusMessage.Message = "数据访问错误";
                //ExceptionHandler.LogExcetion(ex, this.GetType().FullName, System.Reflection.MethodBase.GetCurrentMethod());
                ExceptionHandler.LogExcetion(ex);
            }
            return(statusMessage);
        }
示例#30
0
 public KetQuaChamBai(StatusResult status, float scores, KieuChamBai type)
 {
     Status  = status;
     Scores  = scores;
     Type    = type;
     Details = null;
 }
        public override void Update(StatusResult gs)
        {
            // do cool ai stuff
            Console.WriteLine($"[{DateTime.Now.ToShortTimeString()}]Current Turn: {gs.CurrentTurn}");
            Console.WriteLine($"Owned Planet Id's: {string.Join(", ", gs.Planets.Where(p => p.OwnerId == MyId).Select(p => p.Id))}");

            // find the first planet we don't own
            var targetPlanet = gs.Planets.FirstOrDefault(p => p.OwnerId != MyId);

            if (targetPlanet == null)
            {
                return;                       // WE OWN IT ALLLLLLLLL
            }
            Console.WriteLine(string.Format("Targeting planet {0} which has {1} ships", targetPlanet.Id, targetPlanet.NumberOfShips));

            // send half rounded down of our ships from each planet we do own
            foreach (var planet in gs.Planets.Where(p => p.OwnerId == MyId))
            {
                var ships = (int)Math.Floor(planet.NumberOfShips / 2.0);
                if (ships > 0)
                {
                    Console.WriteLine(string.Format("Sending {0} ships from {1}", ships, planet.Id));
                    SendFleet(planet.Id, targetPlanet.Id, ships);
                }
            }
        }
示例#32
0
 public static HtmlString ColorStatus(this IHtmlHelper self, StatusResult result)
 {
     switch(result)
     {
         case StatusResult.Building:
             return new HtmlString("<span class=\"status-building\">Building</span>");
         case StatusResult.Queued:
             return new HtmlString("<span class=\"status-queued\">Queued</span>");
         case StatusResult.Failed:
             return new HtmlString("<span class=\"status-failed\">Failed</span>");
         case StatusResult.Successful:
             return new HtmlString("<span class=\"status-successful\">Successful</span>");
         case StatusResult.Ignored:
             return new HtmlString("<span class=\"status-ignored\">Ignored</span>");
         default:
             return new HtmlString("<span>Unknown</span>");
     }
 }
示例#33
0
        public override void Update(StatusResult gs)
        {
            // do cool ai stuff
            Console.WriteLine($"[{DateTime.Now.ToShortTimeString()}]Current Turn: {gs.CurrentTurn}");
            Console.WriteLine($"My ID: {MyId}");
            Console.WriteLine($"Owned Planets: {string.Join(", ", gs.Planets.Where(p => p.OwnerId == MyId).Select(p => p.Id))}");

            // find the first planet we don't own
            var targetPlanet = gs.Planets.FirstOrDefault(p => p.OwnerId != MyId);
            if (targetPlanet == null) return; // WE OWN IT ALLLLLLLLL

            Console.WriteLine($"Target Planet: {targetPlanet.Id}:{targetPlanet.NumberOfShips}");

            // send half rounded down of our ships from each planet we do own
            foreach (var planet in gs.Planets.Where(p => p.OwnerId == MyId))
            {
                var ships = (int)Math.Floor(planet.NumberOfShips / 2.0);
                if (ships > 0)
                {
                    SendFleet(planet.Id, targetPlanet.Id, ships);
                }
            }
        }
示例#34
0
 public StatusResult GetStatus(StatusRequest request)
 {
     var status = new StatusResult()
     {
         Success = true,
         Status = this.Status,
         IsGameOver = this.GameOver,
         CurrentTurn = Turn,
         NextTurnStart = endServerTurn,
         EndOfCurrentTurn = endPlayerTurn,
         PlayerTurnLength = (int)PLAYER_TURN_LENGTH,
         ServerTurnLength = (int)SERVER_TURN_LENGTH,
         Planets = _planets.ToList().Select(p => Mapper.Map<Shared.Planet>(p)).ToList(),
         Fleets = _fleets.ToList().Select(f => Mapper.Map<Shared.Fleet>(f)).ToList(),
         PlayerA = 1,
         PlayerAScore = _getPlayerScore(1),
         PlayerAScoreOverTime = PlayerAScoreOverTime,
         PlayerB = 2,
         PlayerBScore = _getPlayerScore(2),
         PlayerBScoreOverTime = PlayerBScoreOverTime
     };
     return status;
 }
 public virtual void Update(StatusResult gs)
 {
     // override me
 }