public void FromXmlTest() { /* * Assume: ToXml(string) is correct. */ var kycRequest = new KycRequest(); var xml = XElement.Parse(File.ReadAllText(Data.KycRequestXml)).Elements().ToArray(); // Validate null argument. Assert.Throws <ArgumentNullException>("element", () => kycRequest.FromXml(null)); // XML must be same after loading and deserializing it. foreach (var element in xml) { kycRequest.FromXml(element); Assert.True(XNode.DeepEquals(element, kycRequest.ToXml("Kyc"))); } }
public static async Task <Models.ApiViewModels.ApiAccountKycRequest> CreateKycRequest(ILogger logger, ApplicationDbContext context, UserManager <ApplicationUser> userManager, KycSettings kycSettings, string applicationUserId, string email) { // check request does not already exist var kycReq = context.KycRequests.Where(r => r.ApplicationUserId == applicationUserId).FirstOrDefault(); if (kycReq != null) { return(await CheckKycRequest(logger, context, userManager, kycSettings, applicationUserId, kycReq.Token)); } // call kyc server to create request var token = Utils.CreateToken(); var jsonBody = JsonConvert.SerializeObject(new { api_key = kycSettings.KycServerApiKey, token = token, email = email }); var response = RestUtils.ServiceRequest(kycSettings.KycServerUrl, "request", kycSettings.KycServerApiSecret, jsonBody); if (response.IsSuccessful) { var json = JsonConvert.DeserializeObject <Dictionary <string, string> >(response.Content); if (json.ContainsKey("status")) { var status = json["status"]; // save to database var date = DateTimeOffset.Now.ToUnixTimeSeconds(); kycReq = new KycRequest { ApplicationUserId = applicationUserId, Date = date, Token = token }; context.KycRequests.Add(kycReq); context.SaveChanges(); // return to user var model = new viafront3.Models.ApiViewModels.ApiAccountKycRequest { Token = token, ServiceUrl = $"{kycSettings.KycServerUrl}/request/{token}", Status = status, }; return(model); } } else { logger.LogError($"kyc request ({kycSettings.KycServerUrl}) failed with http statuscode: {response.StatusCode}"); } return(null); }
public ActionResult <MessageModel <Object> > ChangeUserKyc([FromBody] KycRequest kycRequest, [FromRoute, SwaggerParameter("使用者ID", Required = true)] long userId) { UserArc userArc = userService.GetUserArcById(userId); if (userArc == null) { return(BadRequest(new MessageModel <Object> { Status = (int)HttpStatusCode.BadRequest, Success = false, Msg = "User does not exist" }));; } var result = new MessageModel <Object> { Status = (int)HttpStatusCode.BadRequest, Success = false, Msg = "Fail to Operate" }; if (userService.ChangeKycStatusByUserId((KycStatusEnum)kycRequest.KycStatus, userId)) { if ((KycStatusEnum)kycRequest.KycStatus == KycStatusEnum.PASSED_KYC_FORMAL_MEMBER) { notificationService.SaveAndSendNotification((int)userId, "Successful Registration", "Your registration have been confirmed", "en-US"); } if ((KycStatusEnum)kycRequest.KycStatus == KycStatusEnum.FAILED_KYC) { notificationService.SaveAndSendNotification((int)userId, "Unsuccessful Registration", "You do not pass The KYC procedure", "en-US"); } result.Status = (int)HttpStatusCode.OK; result.Success = true; result.Msg = "Successful Operation"; return(Ok(result)); } return(BadRequest(result)); }