/// <summary> /// Creates the Multicode. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> public async Task <APIResponse> CreateMultiCode(CreateMulticodeIdentityRequest request) { try { var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName); var param = JsonConvert.SerializeObject(request); HttpContent contentPost = new StringContent(param, Encoding.UTF8, "application/json"); var response = await client.PostAsync(servicesConfig.Wallet + IdentityServiceOperation.CreateMultiCode(), contentPost); if (response.IsSuccessStatusCode) { var multicode = JsonConvert.DeserializeObject <MultiCodeResponse>(await response.Content.ReadAsStringAsync()); return(new APIResponse(multicode, HttpStatusCode.Created)); } return(new APIResponse(response.StatusCode)); } catch (Exception ex) { logger.Error(ex, "Exception in method 'CreateMultiCode()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
/// <summary> /// Gets the Multicode. /// </summary> /// <param name="multicodeParameter">The Multicode parameter request.</param> /// <returns></returns> //public async Task<APIResponse> GetAllMultiCodes(MulticodeParameter multicodeParameter) //{ // try // { // string serializedMulticode; // List<MultiCodeResponse> multicode; // var encodedMulticode = await distributedCache.GetAsync(IdentityServiceOperation.GetWalletCacheName); // if (encodedMulticode != null) // { // serializedMulticode = Encoding.UTF8.GetString(encodedMulticode); // multicode = JsonConvert.DeserializeObject<List<MultiCodeResponse>>(serializedMulticode); // } // else // { // var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName); // UriBuilder url = new UriBuilder(servicesConfig.Wallet + IdentityServiceOperation.GetAllMultiCodes()); // url.Query = QueryStringHelper.ConvertToQueryString(multicodeParameter); // var response = await client.GetAsync(url.ToString()); // multicode = JsonConvert.DeserializeObject<List<MultiCodeResponse>>(await response.Content.ReadAsStringAsync()); // serializedMulticode = JsonConvert.SerializeObject(multicode); // encodedMulticode = Encoding.UTF8.GetBytes(serializedMulticode); // var options = new DistributedCacheEntryOptions() // .SetSlidingExpiration(TimeSpan.FromMinutes(1)) // .SetAbsoluteExpiration(DateTime.Now.AddHours(1)); // await distributedCache.SetAsync(IdentityServiceOperation.GetWalletCacheName, encodedMulticode, options); // } // return new APIResponse(multicode, HttpStatusCode.OK); // } // catch (Exception ex) // { // logger.Error(ex, "Exception in method 'GetAllMultiCodes()'"); // var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; // return new APIResponse(exMessage, HttpStatusCode.InternalServerError); // } //} public async Task <APIResponse> GetAllMultiCodes(MulticodeParameter multicodeParameter) { try { var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName); UriBuilder url = new UriBuilder(servicesConfig.Wallet + IdentityServiceOperation.GetMultiCodes()); url.Query = QueryStringHelper.ConvertToQueryString(multicodeParameter); var response = await client.GetAsync(url.ToString()); if (response.IsSuccessStatusCode) { var multicode = JsonConvert.DeserializeObject <List <MultiCodeResponse> >(await response.Content.ReadAsStringAsync()); return(new APIResponse(multicode, HttpStatusCode.OK)); } return(new APIResponse(response.StatusCode)); } catch (Exception ex) { logger.Error(ex, "Exception in method 'GetAllMultiCodes()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
/// <summary> /// Updates the user. /// </summary> /// <param name="details">The details.</param> /// <param name="request">The request.</param> /// <returns></returns> public async Task <APIResponse> UpdateUser(UserIdDetails details, UpdateUserRequest request) { try { var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName); var param = JsonConvert.SerializeObject(request); HttpContent contentPost = new StringContent(param, Encoding.UTF8, "application/json"); var response = await client.PutAsync(servicesConfig.Identity + IdentityServiceOperation.UpdateUser(details.UserId), contentPost); if (response.StatusCode == HttpStatusCode.NoContent) { var user = new User { Id = details.UserId, FirstName = request.FirstName, LastName = request.LastName }; usernameUpdateSender.SendUserName(user); } return(JsonConvert.DeserializeObject <APIResponse>(await response.Content.ReadAsStringAsync())); } catch (Exception ex) { logger.Error(ex, "Exception in method 'UpdateUser()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
/// <summary> /// Gets the kyc datas. /// </summary> /// <param name="profileId">The profile identifier.</param> /// <returns></returns> public async Task <APIResponse> GetKYCDatas(int profileId) { try { var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName); var response = await client.GetAsync(servicesConfig.Identity + IdentityServiceOperation.GetKYCDatas(profileId)); if (response.IsSuccessStatusCode) { var kYCDetailResponses = JsonConvert.DeserializeObject <List <KYCDetailResponse> >(await response.Content.ReadAsStringAsync()); foreach (var item in kYCDetailResponses) { var kycDoc = item.Kycdetails; foreach (var item1 in kycDoc) { byte[] b = System.IO.File.ReadAllBytes(item1.KycdocPath); item1.KycdocPath = Convert.ToBase64String(b); } } return(new APIResponse(kYCDetailResponses, HttpStatusCode.OK)); } return(new APIResponse(response.StatusCode)); } catch (Exception ex) { logger.Error(ex, "Exception in method 'GetKYCDatas()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
/// <summary> /// Check if requirement has been handled /// </summary> protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, UserIdRequirement requirement) { try { var claimsIdentity = context.User.Identity as ClaimsIdentity; if (claimsIdentity != null) { var userIdClaim = claimsIdentity.FindFirst(c => c.Type == requirement.UserIdClaim && c.Issuer == authorizationConfig.Issuer); if (!string.IsNullOrEmpty(userIdClaim?.Value)) { var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName); //var response = client.GetAsync(servicesConfig.Blog + IdentityServiceOperation.GetUser(Convert.ToInt32(userIdClaim?.Value))).Result; var response = client.GetAsync(servicesConfig.Identity + IdentityServiceOperation.GetUser(Convert.ToInt32(userIdClaim?.Value))).Result; var result = JsonConvert.DeserializeObject <APIResponse>(response.Content.ReadAsStringAsync().Result); if (result.Code == HttpStatusCode.OK) { context.Succeed(requirement); } } } return(Task.CompletedTask); } catch (Exception ex) { logger.LogError(ex, "UserIdExistsRequirement::HandleRequirementAsync"); return(Task.CompletedTask); } }
/// <summary> /// Adds the health checks. /// </summary> /// <param name="services">The services.</param> /// <param name="configuration">The configuration.</param> /// <returns></returns> public static IServiceCollection AddHealthChecks(this IServiceCollection services, IConfiguration configuration) { var servicesConfig = configuration.GetSection("ServicesConfig").Get <ServicesConfig>(); services.AddHealthChecks() .AddUrlGroup(new Uri(servicesConfig.Identity + IdentityServiceOperation.GetHealth()), name: "Identity Service") .AddUrlGroup(new Uri(servicesConfig.Blog + BlogServiceOperation.GetHealth()), name: "Blogs Service"); return(services); }
/// <summary> /// Gets the user. /// </summary> /// <param name="details">The details.</param> /// <returns></returns> public async Task <APIResponse> GetUser(UserIdDetails details) { try { var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName); var response = await client.GetAsync(servicesConfig.Identity + IdentityServiceOperation.GetUser(details.UserId)); return(JsonConvert.DeserializeObject <APIResponse>(await response.Content.ReadAsStringAsync())); } catch (Exception ex) { logger.Error(ex, "Exception in method 'GetUser()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
/// <summary> /// Deletes the Multicode. /// </summary> /// <param name="details">The details.</param> /// <returns></returns> public async Task <APIResponse> DeleteMultiCode(MulticodeIdDetails details) { try { var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName); var response = await client.DeleteAsync(servicesConfig.Wallet + IdentityServiceOperation.DeleteMultiCode(details.Code)); return(new APIResponse(response.StatusCode)); } catch (Exception ex) { logger.Error(ex, "Exception in method 'DeleteMultiCode()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
/// <summary> /// Updates the user. /// </summary> /// <param name="details">The details.</param> /// <param name="request">The request.</param> /// <returns></returns> public async Task <APIResponse> UpdateUserProfile(ProfileIdDetails details, UpdateUserProfileRequest request) { try { string filename = ""; var folderName = Path.Combine("UserProfiles"); var pathToSave = Path.Combine("D:", "HappyWedding", folderName); if (request.ProfilePhoto.Length > 0) { string format = System.IO.Path.GetExtension(request.ProfilePhoto.FileName); filename = request.UserId + "_UserProfiles_" + DateTime.Now + format; string filenme = filename.Replace(":", "."); var filePath = Path.Combine(pathToSave, filenme); using var fileStream = new FileStream(filePath, FileMode.Create); request.ProfilePhoto.CopyTo(fileStream); request.Photo = filePath; request.ProfilePhoto = null; } var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName); var param = JsonConvert.SerializeObject(request); HttpContent contentPost = new StringContent(param, Encoding.UTF8, "application/json"); var response = await client.PutAsync(servicesConfig.Identity + IdentityServiceOperation.UpdateUser(details.ProfileId), contentPost); if (response.StatusCode == HttpStatusCode.NoContent) { var user = new User { Id = details.ProfileId, FirstName = request.FirstName, LastName = request.LastName }; usernameUpdateSender.SendUserName(user); } return(JsonConvert.DeserializeObject <APIResponse>(await response.Content.ReadAsStringAsync())); } catch (Exception ex) { logger.Error(ex, "Exception in method 'UpdateUser()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
/// <summary> /// Verifies the otp. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> public async Task <APIResponse> VerifyOtp(ProfileIdDetails details, VerifyOtpRequest request) { try { var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName); var param = JsonConvert.SerializeObject(request); HttpContent contentPost = new StringContent(param, Encoding.UTF8, "application/json"); var response = await client.PostAsync(servicesConfig.Identity + IdentityServiceOperation.VerifyOtp(details.ProfileId), contentPost); return(new APIResponse(response.StatusCode)); } catch (Exception ex) { logger.Error(ex, "Exception in method 'VerifyOtp()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
/// <summary> /// Gets the Multicode. /// </summary> /// <param name="details">The details.</param> /// <returns></returns> public async Task <APIResponse> GetMultiCode(MulticodeIdDetails details) { try { var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName); var response = await client.GetAsync(servicesConfig.Wallet + IdentityServiceOperation.GetMultiCodeById(details.Code)); if (response.IsSuccessStatusCode) { var multicode = JsonConvert.DeserializeObject <MulticodeResponseDetails>(await response.Content.ReadAsStringAsync()); return(new APIResponse(multicode, HttpStatusCode.OK)); } return(new APIResponse(response.StatusCode)); } catch (Exception ex) { logger.Error(ex, "Exception in method 'GetMultiCodeById()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
/// <summary> /// Updates the kyc portion. /// </summary> /// <param name="profileId">The profile identifier.</param> /// <param name="request">The request.</param> /// <returns></returns> public async Task <APIResponse> UpdateKYCPortion(int profileId, UpdateKYCPortionRequest request) { try { var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName); var param = JsonConvert.SerializeObject(request); HttpContent contentPost = new StringContent(param, Encoding.UTF8, "application/json"); var response = await client.PutAsync(servicesConfig.Identity + IdentityServiceOperation.UpdateKYCPortion(profileId), contentPost); if (response.StatusCode == HttpStatusCode.NoContent) { } return(JsonConvert.DeserializeObject <APIResponse>(await response.Content.ReadAsStringAsync())); } catch (Exception ex) { logger.Error(ex, "Exception in method 'UpdateKYCPortion()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
/// <summary> /// Creates the kyc data. /// </summary> /// <param name="profileId">The profile identifier.</param> /// <param name="request">The request.</param> /// <returns></returns> public async Task <APIResponse> CreateKYCData(int profileId, CreateKYCDataRequest request) { try { string filename = ""; var folderName = Path.Combine("KYCData"); var pathToSave = Path.Combine("D:", "HappyWedding", folderName); foreach (var item in request.KYCData) { if (item.Kycdoc != null) { item.KYCDetails = new List <Core.DTO.Identity.KYCData.KYCDetails>(); foreach (var kycPic in item.Kycdoc) { if (kycPic.Length > 0) { string format = System.IO.Path.GetExtension(kycPic.FileName); filename = profileId + "_Kycdoc_" + DateTime.Now + format; string filenme = filename.Replace(":", "."); var filePath = Path.Combine(pathToSave, filenme); using var fileStream = new FileStream(filePath, FileMode.Create); kycPic.CopyTo(fileStream); item.KYCDetails.Add(new Core.DTO.Identity.KYCData.KYCDetails { KycdocPath = filePath }); } } item.Kycdoc = null; } if (item.Proofdocument != null) { item.KYCDetails = new List <Core.DTO.Identity.KYCData.KYCDetails>(); foreach (var kycPic in item.Proofdocument) { if (kycPic.Length > 0) { string format = System.IO.Path.GetExtension(kycPic.FileName); filename = profileId + "_Proofdocument_" + DateTime.Now + format; string filenme = filename.Replace(":", "."); var filePath = Path.Combine(pathToSave, filenme); using var fileStream = new FileStream(filePath, FileMode.Create); kycPic.CopyTo(fileStream); item.KYCDetails.Add(new Core.DTO.Identity.KYCData.KYCDetails { KycdocPath = filePath }); } } item.Proofdocument = null; } if (item.Gstdocument != null) { item.GSTDetails = new List <Core.DTO.Identity.KYCData.GSTDetails>(); var gst = JsonConvert.DeserializeObject <Core.DTO.Identity.KYCData.GSTDetails>(item.GSTDetailString); foreach (var kycPic in item.Gstdocument) { if (kycPic.Length > 0) { string format = System.IO.Path.GetExtension(kycPic.FileName); filename = profileId + "_Gstdocument_" + DateTime.Now + format; string filenme = filename.Replace(":", "."); var filePath = Path.Combine(pathToSave, filenme); using var fileStream = new FileStream(filePath, FileMode.Create); kycPic.CopyTo(fileStream); item.GSTDetails.Add(new Core.DTO.Identity.KYCData.GSTDetails { Address = gst.Address, BusinessName = gst.BusinessName, Gstcity = gst.Gstcity, Gstnumber = gst.Gstnumber, Gststate = gst.Gststate, Gstdocument = filePath }); } } item.Gstdocument = null; } } var client = httpClientFactory.CreateClient(IdentityServiceOperation.serviceName); var param = JsonConvert.SerializeObject(request); HttpContent contentPost = new StringContent(param, Encoding.UTF8, "application/json"); var response = await client.PostAsync(servicesConfig.Identity + IdentityServiceOperation.CreateKYCData(profileId), contentPost); var kycdetails = JsonConvert.DeserializeObject <KYCDetailResponse>(await response.Content.ReadAsStringAsync()); return(new APIResponse(kycdetails, HttpStatusCode.Created)); } catch (Exception ex) { logger.Error(ex, "Exception in method 'CreateKYCData()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }