コード例 #1
0
 public AccountService(AppDbContext appDbContext, IOptions <AppSettings> settings, IHttpContextAccessor httpContextAccessor, IOptions <EIDValidation> eidSettings, IMapper mapper, RandomStringGeneratorService randomStringGenerator, PasswordHashing hashing, IProfilePercentageCalculationService percentageCalculationService, IEmailService emailService, IUserIPAddress userIPAddress)
 {
     _appDbContext                 = appDbContext;
     _mapper                       = mapper;
     _randomStringGenerator        = randomStringGenerator;
     _hashing                      = hashing;
     _percentageCalculationService = percentageCalculationService;
     _emailService                 = emailService;
     _settings                     = settings.Value;
     _eidSettings                  = eidSettings.Value;
     _httpContextAccessor          = httpContextAccessor;
     _userIPAddress                = userIPAddress;
 }
コード例 #2
0
        public async Task <CitizinType> CheckEID(string eid)
        {
            try
            {
                var appSetting = new EIDValidation()
                {
                    user_name  = _eidSettings.user_name,
                    password   = _eidSettings.password,
                    gsb_apikey = _eidSettings.gsb_apikey,
                };

                logger.Info($"{ GetType().Name}  {  ExtensionUtility.GetCurrentMethod() }  UserName: {_eidSettings.user_name} Password: {_eidSettings.password} GSB_APIKey: {_eidSettings.gsb_apikey}");

                BasicHttpBinding binding = new BasicHttpBinding();
                binding.Name          = "CitizenVerification_bind";
                binding.Security.Mode = BasicHttpSecurityMode.Transport;
                binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None;
                binding.Security.Transport.ProxyCredentialType  = HttpProxyCredentialType.Basic;

                EndpointAddress endpoint = new EndpointAddress("https://integrate-test.gsb.government.net.ae/ws/verifyCitizenEligibility_ICA.verifyCitizenEligibility_ICAsoaphttp/1.0");



                CitizenVerification_pttClient verificationPttClient = new CitizenVerification_pttClient(binding, endpoint);
                verificationPttClient.ClientCredentials.UserName.UserName = appSetting.user_name;
                verificationPttClient.ClientCredentials.UserName.Password = appSetting.password;
                using (new OperationContextScope((IContextChannel)verificationPttClient.InnerChannel))
                {
                    HttpRequestMessageProperty requestMessageProperty = new HttpRequestMessageProperty();
                    requestMessageProperty.Headers[HttpRequestHeader.Authorization] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(verificationPttClient.ClientCredentials.UserName.UserName + ":" + verificationPttClient.ClientCredentials.UserName.Password));
                    requestMessageProperty.Headers["GSB-APIKey"] = appSetting.gsb_apikey;
                    OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = (object)requestMessageProperty;
                    CitizenVerificationResponse verificationResponse1 = new CitizenVerificationResponse();
                    try
                    {
                        CitizenVerificationResponse verificationResponse2 = verificationPttClient.CitizenVerification(new CitizenVerificationRequest()
                        {
                            EmiratesIDNumber = eid
                        });
                        if (verificationResponse2.VerificationResult == ResultType.Eligible)
                        {
                            return(CitizinType.Citizen);
                        }
                        if (verificationResponse2.VerificationResult == ResultType.NotEligible)
                        {
                            return(CitizinType.Expat);
                        }
                        if (verificationResponse2.VerificationResult == ResultType.NoDataFound)
                        {
                            return(CitizinType.NotFound);
                        }
                        throw new Exception("Unknown Verification Result received from the API.");
                    }
                    catch (Exception ex)
                    {
                        logger.Error(ex);
                        return(CitizinType.APINotWorking);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex);
                throw ex;
            }
        }