private KycStatus GetTierStatus(KycStatus status) { switch (status) { case KycStatus.Pending: case KycStatus.ReviewDone: case KycStatus.JumioInProgress: case KycStatus.JumioOk: case KycStatus.JumioFailed: return(KycStatus.Pending); case KycStatus.NeedToFillData: return(KycStatus.NeedToFillData); case KycStatus.Ok: return(KycStatus.Ok); case KycStatus.Rejected: return(KycStatus.Rejected); case KycStatus.RestrictedArea: return(KycStatus.RestrictedArea); case KycStatus.Complicated: return(status); default: return(status); } }
public KycEntity(Guid userId, KycStatus status) { Id = Guid.NewGuid(); UserId = userId; Status = status; RequestDate = DateTime.UtcNow; }
public static KycEntity Create(string clientId, KycStatus status) { return(new KycEntity { PartitionKey = GeneratePartitionKey(status), RowKey = GenerateRowKey(clientId) }); }
/// <summary> /// Initializes a new instance of the UserInfoResponseModel class. /// </summary> /// <param name="kycStatus">Possible values include: 'NeedToFillData', /// 'Pending', 'ReviewDone', 'Ok', 'Rejected', 'RestrictedArea', /// 'Complicated', 'JumioInProgress', 'JumioOk', 'JumioFailed'</param> public UserInfoResponseModel(string email, string firstName, string lastName, KycStatus kycStatus) { Email = email; FirstName = firstName; LastName = lastName; KycStatus = kycStatus; CustomInit(); }
public async Task <D3KycStatus> GetKycStatusAsync(string irohaUsername) { ID3User user = await GetUserAsync(irohaUsername); KycStatus kycStatus = await _kycStatusService.GetKycStatusAsync(user.ClientId); return(kycStatus.GetKycStatus()); }
public static KycEntity Create(string clientId, KycStatus status) { return new KycEntity { PartitionKey = GeneratePartitionKey(status), RowKey = GenerateRowKey(clientId) }; }
public async Task UpdateKycStatusAsync(string clientId, KycStatus status) { var documents = (await _kycDocumentsRepository.GetAsync(clientId)).ToArray(); if ((status == KycStatus.NeedToFillData) && documents.HasAllTypes()) { await _srvKycManager.ChangeKycStatus(clientId, KycStatus.Pending, RecordChanger.Client); } }
public KycStatusLogRecord(string clientId, KycStatus statusCurrent, KycStatus statusPrevious, DateTime date, string kycOfficer, string partnerName) { ClientId = clientId; StatusCurrent = statusCurrent; StatusPrevious = statusPrevious; Date = date; KycOfficer = kycOfficer; PartnerName = partnerName; }
public async Task AddAsync(string clientId, AccountTier tier, KycStatus status, string comment = null, DateTime?date = null) { var item = TierUpgradeRequestEntity.Create(clientId, tier, status, comment, date); await _tableStorage.InsertOrReplaceAsync(item); if (status == KycStatus.Pending) { var indexEntity = AzureIndex.Create(PendingRequestsIndex, GetPendingRequestIndexRk(clientId, tier), item); await _index.InsertOrMergeAsync(indexEntity); } }
public async Task SetStatusAsync(string clientId, KycStatus status) { var rowKey = KycEntity.GenerateRowKey(clientId); var entity = (await _tableStorage.GetDataRowKeyOnlyAsync(rowKey)).FirstOrDefault(); if (entity != null) await _tableStorage.DeleteAsync(entity); if (status == KycEntity.DefaultStatus) return; entity = KycEntity.Create(clientId, status); await _tableStorage.InsertOrReplaceAsync(entity); }
public async Task AddAsync(string clientId, AccountTier tier, KycStatus status, string changer) { ITierUpgradeRequest currentTierRequest = await GetAsync(clientId, tier); DateTime?requestDate = null; if (currentTierRequest != null && status != KycStatus.Pending) { requestDate = currentTierRequest.Date; await _repository.DeletePendingRequestIndexAsync(clientId, currentTierRequest.Tier); } await _repository.AddAsync(clientId, tier, status, date : requestDate); await _auditLogRepository.InsertRecordAsync(clientId, new AuditLogData { BeforeJson = GetStatus(tier, currentTierRequest).ToJson(), AfterJson = (currentTierRequest?.KycStatus == status ? $"{tier}:{status} (updated)" : $"{tier}:{status}").ToJson(), CreatedTime = DateTime.UtcNow, RecordType = AuditRecordType.TierUpgradeRequest, Changer = changer }); switch (status) { case KycStatus.Ok: await _clientAccountClient.ClientAccount.ChangeAccountTierAsync(clientId, new AccountTierRequest { Tier = tier }); break; case KycStatus.Rejected: case KycStatus.RestrictedArea: await _kycStatusService.ChangeKycStatusAsync(clientId, status, nameof(TierUpgradeService)); break; } if (currentTierRequest?.KycStatus != status) { CqrsEngine.PublishEvent(new TierUpgradeRequestChangedEvent { ClientId = clientId, Tier = tier, OldStatus = currentTierRequest?.KycStatus, NewStatus = status }, TierBoundedContext.Name); } }
public async Task <bool> ChangeKycStatus(string clientId, KycStatus kycStatus, string changer) { var currentStatus = await _kycRepository.GetKycStatusAsync(clientId); if (currentStatus != kycStatus) { await _kycRepository.SetStatusAsync(clientId, kycStatus); await _auditLogRepository.AddAuditRecordAsync(clientId, currentStatus, kycStatus, AuditRecordType.KycStatus, changer); await UpdateKycBadge(); return(true); } return(false); }
public static D3KycStatus GetKycStatus(this KycStatus status) { switch (status) { case KycStatus.NeedToFillData: return(D3KycStatus.Pending); case KycStatus.Pending: return(D3KycStatus.Processing); case KycStatus.ReviewDone: case KycStatus.Ok: return(D3KycStatus.Ok); default: return(D3KycStatus.Failed); } }
public async Task SetStatusAsync(string clientId, KycStatus status) { var rowKey = KycEntity.GenerateRowKey(clientId); var entity = (await _tableStorage.GetDataRowKeyOnlyAsync(rowKey)).FirstOrDefault(); if (entity != null) { await _tableStorage.DeleteAsync(entity); } if (status == KycEntity.DefaultStatus) { return; } entity = KycEntity.Create(clientId, status); await _tableStorage.InsertOrReplaceAsync(entity); }
public static KycStatus ToApiModel(this KycStatus status) { switch (status) { case KycStatus.NeedToFillData: return(KycStatus.NeedToFillData); case KycStatus.Ok: case KycStatus.ReviewDone: return(KycStatus.Ok); case KycStatus.RestrictedArea: return(KycStatus.RestrictedArea); default: return(KycStatus.Pending); } }
internal static string ToSerializedValue(this KycStatus value) { switch (value) { case KycStatus.NeedToFillData: return("NeedToFillData"); case KycStatus.Pending: return("Pending"); case KycStatus.ReviewDone: return("ReviewDone"); case KycStatus.Ok: return("Ok"); case KycStatus.Rejected: return("Rejected"); case KycStatus.RestrictedArea: return("RestrictedArea"); case KycStatus.Complicated: return("Complicated"); case KycStatus.JumioInProgress: return("JumioInProgress"); case KycStatus.JumioOk: return("JumioOk"); case KycStatus.JumioFailed: return("JumioFailed"); } return(null); }
public Task UpdateCountsAsync(string clientId, AccountTier tier, KycStatus?oldStatus, KycStatus newStatus) { if (newStatus == KycStatus.Ok && oldStatus.HasValue) { return(DecrementCountAsync(tier)); } if (!oldStatus.HasValue) { return(IncrementCountAsync(tier)); } return(Task.CompletedTask); }
/// <summary> /// send a single email of a customer that their kyc statsu need to be verify /// </summary> /// <param name="customerEmail">email of customer</param> /// <returns>single customer kyc status</returns> public KycStatus GetKycStatus(string customerEmail) { var kyc = new KycStatus(); return(kyc); }
public async Task <IEnumerable <string> > GetClientsByStatus(KycStatus kycStatus) { var partitionKey = KycEntity.GeneratePartitionKey(kycStatus); return((await _tableStorage.GetDataAsync(partitionKey)).Select(itm => itm.GetClientId())); }
public async Task ChangeKycStatus(string clientId, KycStatus kycStatus) { await _kycRepository.SetStatusAsync(clientId, kycStatus); await UpdateKycBadge(); }
public static string GeneratePartitionKey(KycStatus kycStatus) { return(kycStatus.ToString()); }
public static KycInformationStatusChangeEntity Create(Guid partnerId, Guid adminId, DateTime timestamp, string comment, KycStatus?oldStatus, KycStatus newStatus) { return(new KycInformationStatusChangeEntity { PartnerId = partnerId, AdminUserId = adminId, Comment = comment, Timestamp = timestamp, NewKycStatus = newStatus, OldKycStatus = oldStatus, }); }
public static TierUpgradeRequestEntity Create(string clientId, AccountTier tier, KycStatus status, string comment, DateTime?date = null) { return(new TierUpgradeRequestEntity { PartitionKey = GeneratePk(tier), RowKey = GenerateRk(clientId), ClientId = clientId, Tier = tier, KycStatus = status, Date = date ?? DateTime.UtcNow, Comment = comment }); }
public async Task<IEnumerable<string>> GetClientsByStatus(KycStatus kycStatus) { var partitionKey = KycEntity.GeneratePartitionKey(kycStatus); return (await _tableStorage.GetDataAsync(partitionKey)).Select(itm => itm.GetClientId()); }
public static string GeneratePartitionKey(KycStatus kycStatus) { return kycStatus.ToString(); }