private async Task <ApiResponse> SendShortLinkinMail(List <int> userIds, string firebaseUrl, string webApiKey, string fbDomainUriPrefix, string androidPkgName, string iosBndlId) { try { var usersDetail = await _userRepository.GetUserByIdWithProgramDetail(userIds); FirebaseDynamicLinkResponseModel response = new FirebaseDynamicLinkResponseModel(); if (usersDetail.Count > 0) { foreach (var userObj in usersDetail) { try { FirebaseDynamicLinkModel fbModel = new FirebaseDynamicLinkModel { dynamicLinkInfo = new Dynamiclinkinfo { domainUriPrefix = fbDomainUriPrefix, link = fbDomainUriPrefix + "?studentID=" + userObj.Id + "&programID=" + userObj.ProgramCode, androidInfo = new Androidinfo { androidPackageName = androidPkgName }, iosInfo = new Iosinfo { iosBundleId = iosBndlId } } }; HttpClient client = new HttpClient(); client.BaseAddress = new Uri(firebaseUrl); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); response = await SendShortLinkInMailRefactor(webApiKey, response, userObj, fbModel, client); } catch (Exception ex) { HttpContext.RiseError(new Exception(string.Concat("API := (ImportUser := SendShortLinkinMail - Inner Catch)", ex.Message, " Stack Trace : ", ex.StackTrace, " Inner Exception : ", ex.InnerException))); } } } return(new ApiResponse(Microsoft.AspNetCore.Http.StatusCodes.Status200OK, true, MessagesConstants.UserSuccessfulRegistration, response)); } catch (Exception ex) { HttpContext.RiseError(new Exception(string.Concat("API := (Account := SendShortLinkinMail)", ex.Message, " Stack Trace : ", ex.StackTrace, " Inner Exception : ", ex.InnerException))); return(new ApiResponse(Microsoft.AspNetCore.Http.StatusCodes.Status200OK, false, MessagesConstants.SomeIssueInProcessing)); } }
private async Task <FirebaseDynamicLinkResponseModel> SendShortLinkInMailRefactor(string webApiKey, FirebaseDynamicLinkResponseModel response, UserDto userObj, FirebaseDynamicLinkModel fbModel, HttpClient client) { HttpResponseMessage resp = client.PostAsJsonAsync("shortLinks?key=" + webApiKey, fbModel).Result; switch (resp.StatusCode) { case System.Net.HttpStatusCode.OK: response = resp.Content.ReadAsAsync <FirebaseDynamicLinkResponseModel>().Result; var emailSMSSettings = (await _setting.GetGeneratSettingValueByKeyGroup(Constants.SMTPConstants.SMSEmail)).FirstOrDefault(); if (emailSMSSettings != null) { if (emailSMSSettings.Value == "1") { var template = await _emailService.GetEmailTemplateByName(EmailTemplates.MagicLink); template.Body = template.Body.Replace("{LogoImage}", string.Concat(_configuration["ServiceAPIURL"], "Images", "/email-logo.png").ToString()) .Replace("{Name}", string.Concat(userObj.FirstName, " ", userObj.LastName)) .Replace("{link}", response.shortLink).Replace("{UserCode}", userObj.UserCode); await _emailService.SendEmail(userObj.EmailAddress, template.Subject, template.Body, template.CCEmail, template.BCCEmail); } else { try { var smstemplate = await _sMSService.GetSMSTemplateByName(SMSTemplates.MagicLink); smstemplate.body = smstemplate.body.Replace("{Name}", string.Concat(userObj.FirstName, " ", userObj.LastName)).Replace("{link}", response.shortLink); await _sMSService.SendSMS(_configuration["accountSID"], _configuration["authToken"], userObj.PhoneNumber, smstemplate.body); } catch (Exception ex) { HttpContext.RiseError(new Exception(string.Concat("API := (ImportUser := SendShortLinkinMail)", ex.Message, " Stack Trace : ", ex.StackTrace, " Inner Exception : ", ex.InnerException))); } } } var userData = await _userRepository.GetDataByIdAsync(new { id = userObj.Id }); if (userData != null) { userData.InvitationStatus = 2; await _userRepository.AddUpdateUserInvitationStatus(userData); } break; default: break; } return(response); }