/// <summary> /// Verify if username si available through already used username /// </summary> /// <param name="username"></param> /// <param name="auditLogBO"></param> /// <returns>Returns True if username is available</returns> public async Task <bool> IsUsernameAvailable(string username, AuditLogBO auditLogBO) { var userRepo = _unitOfWork.GetRepository <Users>(); //await AuditMapper.AuditLogging(auditLogBO, null, AuditAction.Select, null); return(await userRepo.GetFirstOrDefaultAsync(a => a, predicate : b => b.UserName == username) != null); }
/// <summary> /// Sends the member account lock email. /// </summary> /// <param name="userName">The user identifier.</param> /// <param name="auditLogBO">The audit log bo.</param> /// <returns></returns> public async Task <bool> SendMemberAccountLockEmail(string userName, AuditLogBO auditLogBO) { var response = false; var userRepository = _unitOfWork.GetRepository <Users>(); var userDetails = await userRepository.GetFirstOrDefaultAsync(i => i, predicate : u => u.UserName == userName); if (userDetails != null) { var member = await _unitOfWork.GetRepository <Member>().GetFirstOrDefaultAsync(i => i, m => m.UserId == userDetails.UserId); var memberDetails = await _unitOfWork.GetRepository <MemberDetail>().GetFirstOrDefaultAsync(i => i, m => m.MemberDetailId == member.MemberDetailId); var notificaton = await _unitOfWork.GetRepository <Notification>().GetFirstOrDefaultAsync(predicate: n => n.Type == (int)EmailType.MemberAccountAccess); if (notificaton != null) { var subject = notificaton.Subject.Replace("{externalId}", member.ExternalId); var messageBody = notificaton.Content.Replace("{firstname}", memberDetails.FirstName).Replace("{lastname}", memberDetails.LastName); var emailDetails = MemberMapper.Map(memberDetails.EmailId, messageBody, subject, _appSettings, notificaton.From); //Log audit //await AuditMapper.AuditLogging(auditLogBO, userDetails.UserId, AuditAction.Select, member); response = await _emailService.SendEmailAsync(emailDetails); } } return(response); }
public async Task <bool> ValidateOtp(string externalId, int otp) { var auditLogBO = new AuditLogBO(); var response = await _memberVerifyService.ValidateOtp(externalId, otp, auditLogBO); return(response); }
public async Task <int> SendOtpToMember(MemberRegistrationBO memberInfo) { var auditLogBO = new AuditLogBO(); var response = await _memberRegistrationService.SendOtpToMember(memberInfo, auditLogBO); return(response); }
public async Task <JsonResult> GetMemberDemographics(int userId) { var jwt = await HttpContext.GetTokenAsync(BrokerConstants.TokenScheme, BrokerConstants.AccessToken); var auditLogBO = new AuditLogBO(_appSettings.Value.ApplicationName, jwt, _httpContextAccessor); var tokenObject = UtilityHelper.ParseJwt(jwt); var rolesJson = tokenObject.Claims.FirstOrDefault(c => c.Type.ToLower() == MemberConstants.Roles.ToLower()).Value; var customRoles = JsonConvert.DeserializeObject <List <CustomRolesBO> >(rolesJson); var demographicsPermissionBO = new DemographicsPermissionBO { UserId = userId, AuditLogBO = auditLogBO }; if (customRoles != null) { demographicsPermissionBO.SubscriberInfoPermission = customRoles.Any(r => r.Privileges. Any(p => p.Name.ToLower() == MemberConstants.MemberSubscriberInfoPermission.ToLower() && p.Permission.Any(pe => (int)pe.CanRead == 1))) ? 1 : 0; demographicsPermissionBO.DependentInfoPermission = customRoles.Any(r => r.Privileges. Any(p => p.Name.ToLower() == MemberConstants.MemberDependentInfoPermission.ToLower() && p.Permission.Any(pe => (int)pe.CanRead == 1))) ? 1 : 0; demographicsPermissionBO.ServiceInfoPermission = customRoles.Any(r => r.Privileges. Any(p => p.Name.ToLower() == MemberConstants.MemberServiceInfoPermission.ToLower() && p.Permission.Any(pe => (int)pe.CanRead == 1))) ? 1 : 0; demographicsPermissionBO.DigitalIdCardPermission = customRoles.Any(r => r.Privileges. Any(p => p.Name.ToLower() == MemberConstants.MemberIdCardsPermission.ToLower() && p.Permission.Any(pe => (int)pe.CanRead == 1))) ? 1 : 0; } var memberDemographics = await _demographicsService.GetMemberDemographics(demographicsPermissionBO); return(new JsonResult(memberDemographics)); }
public async Task <bool> SendMemberAccountLockEmail(string userName) { var auditLogBO = new AuditLogBO(); var response = await _resetPasswordService.SendMemberAccountLockEmail(userName, auditLogBO); return(response); }
public async Task <int> RegisterMember([FromBody] MemberRegistrationBO memberRegistration) { var auditLogBO = new AuditLogBO(); var statusCode = await _memberRegistrationService.RegisterMember(memberRegistration, auditLogBO); return(statusCode); }
/// <summary> /// Audits the logging. /// </summary> /// <param name="auditLogBO">The audit log bo.</param> /// <param name="entityTypeId">The entity type identifier.</param> /// <param name="auditAction">The audit action.</param> /// <param name="newDataModel">The new data model.</param> /// <param name="oldDataModel">The old data model.</param> /// <param name="entityType">Type of the entity.</param> /// <param name="countOfItems">The count of items.</param> /// <returns></returns> public static async Task AuditLogging(AuditLogBO auditLogBO, long?entityTypeId, AuditAction auditAction, object newDataModel, object oldDataModel = null, string entityType = null, int?countOfItems = null) { auditLogBO.EntityType = entityType ?? Enum.GetName(typeof(EntityType), EntityType.Member); auditLogBO.EntityTypeId = entityTypeId; await MapAuditAndQueue(auditLogBO, auditAction, newDataModel, oldDataModel, countOfItems); }
/// <summary> /// Gets the payment information. /// </summary> /// <param name="userId">The user identifier.</param> /// <param name="auditLogBO">The audit log bo.</param> /// <returns></returns> public async Task <PaymentInformationBO> GetPaymentInformation(int userId, AuditLogBO auditLogBO) { var memberRepo = _unitOfWork.GetRepository <Member>(); var memberDetailsRepo = _unitOfWork.GetRepository <MemberDetail>(); var memberAddressRepo = _unitOfWork.GetRepository <MemberAddress>(); var member = await memberRepo.GetFirstOrDefaultAsync(a => a, b => b.UserId == userId); var memberDetail = await memberDetailsRepo.GetFirstOrDefaultAsync(a => a, b => b.MemberDetailId == member.MemberDetailId); var memberAddress = await memberAddressRepo.GetFirstOrDefaultAsync(a => a, b => b.MemberId == member.MemberId); var memberSubscription = await _unitOfWork.GetRepository <MemberSubscription>().GetFirstOrDefaultAsync(a => a, s => s.MemberId == member.MemberId); var memberPaymentDetails = await _unitOfWork.GetRepository <MemberPaymentDetail>().GetPagedListAsync(a => a, s => s.MemberId == member.MemberId, pageIndex: BrokerConstants.PAGE_INDEX, pageSize: BrokerConstants.PAGE_SIZE); MemberPaymentDetail lastTransactionDetails = null; if (memberPaymentDetails.Items.Any()) { lastTransactionDetails = memberPaymentDetails.Items.OrderByDescending(a => a.PaidDate).Take(1).FirstOrDefault(); } var paymentInformationBO = MemberMapper.Map(memberSubscription, memberAddress, memberDetail, lastTransactionDetails); //Log audit //await AuditMapper.AuditLogging(auditLogBO, userId, AuditAction.Update, null); return(paymentInformationBO); }
/// <summary> /// Maps the audit and queue. /// </summary> /// <param name="auditLogBO">The audit log bo.</param> /// <param name="auditAction">The audit action.</param> /// <param name="newDataModel">The new data model.</param> /// <param name="oldDataModel">The old data model.</param> /// <param name="countOfItems">The count of items.</param> /// <returns></returns> public static async Task MapAuditAndQueue(AuditLogBO auditLogBO, AuditAction auditAction, object newDataModel, object oldDataModel = null, int?countOfItems = null) { auditLogBO.Action = auditAction; auditLogBO.AuditDate = DateTime.UtcNow; auditLogBO.NewValue = JsonConvert.SerializeObject(newDataModel); if (oldDataModel != null) { auditLogBO.OldValue = JsonConvert.SerializeObject(oldDataModel); } if (string.IsNullOrEmpty(auditLogBO.Comments) && newDataModel != null) { Type type; if (newDataModel.GetType().IsGenericType) { type = newDataModel.GetType().GetGenericArguments()[0]; auditLogBO.Comments = $"{Enum.GetName(typeof(AuditAction), auditAction)} action on a list of {type.Name}. {countOfItems} items have been selected."; } else { type = newDataModel.GetType(); auditLogBO.Comments = $"{Enum.GetName(typeof(AuditAction), auditAction)} action on {type.Name}"; } } var clonedAuditBO = new AuditLogBO(); clonedAuditBO = clonedAuditBO.Clone(auditLogBO); await AuditLogHelper.QueueAudits(clonedAuditBO); }
public async Task <Tuple <int, string, string> > ValidateMember([FromBody] MemberRegistrationBO memberRegBO) { var auditLogBO = new AuditLogBO(); var response = await _memberVerifyService.IsMemberValid(memberRegBO, auditLogBO); return(response); }
public async Task <bool> ValidateUserSecurityQAs([FromBody] List <SecurityQuestionAnswersBO> securityQuestionAnswers) { var auditLogBO = new AuditLogBO(); var response = await _resetPasswordService.ValidateUserSecurityQAs(securityQuestionAnswers, auditLogBO); return(response); }
public async Task <bool> SendPasswordResetConfirmationEmail(string userName, DateTime PasswordResetDateTime) { var auditLogBO = new AuditLogBO(); var response = await _resetPasswordService.SendPasswordResetConfirmationEmail(userName, PasswordResetDateTime, auditLogBO); return(response); }
public async Task <IEnumerable <SecurityQuestionsBO> > GetUserSecurityQuestions(string userName) { var auditLogBO = new AuditLogBO(); var response = await _resetPasswordService.GetUserSecurityQuestions(userName, auditLogBO); return(response); }
public void SaveSpecimenAuditLog(AuditLogBO audit) { //int rtnSaveSpecimen = 0; try { using (SqlConnection sqlCon = new SqlConnection(Constant.DBConnectionString)) { SqlCommand sqlComm = new SqlCommand("sspSaveActionAuditLog", sqlCon); sqlCon.Open(); sqlComm.CommandType = CommandType.StoredProcedure; sqlComm.Parameters.Add(new SqlParameter("@EntityType", audit.EntityType)); sqlComm.Parameters.Add(new SqlParameter("@ActionBy", audit.ActionBy)); sqlComm.Parameters.Add(new SqlParameter("@EntityID", audit.EntityID)); sqlComm.Parameters.Add(new SqlParameter("@ActionName", audit.ActionName)); sqlComm.ExecuteNonQuery(); sqlCon.Close(); } } catch (Exception ex) { _ErrMsg = ex.Message; throw; } //return rtnSaveSpecimen; }
/// <summary> /// Marks the message as read. /// </summary> /// <param name="memberMessageId">The member message identifier.</param> /// <param name="auditLogBO">The audit log bo.</param> /// <returns></returns> /// <exception cref="CustomException">MessageServiceMarkMessageAsReadInputEmptyErrorCode</exception> public async Task <int> MarkMessageAsRead(long memberMessageId, AuditLogBO auditLogBO) { if (memberMessageId == 0) { throw new CustomException(nameof(MemberConstants.MessageServiceMarkMessageAsReadInputEmptyErrorCode)); } return(await _messageDataAccess.MarkMessageAsRead(memberMessageId, auditLogBO)); }
public async Task <bool> SaveMemberFeedback(MemberFeedbackBO memberFeedbackBO) { var jwt = await HttpContext.GetTokenAsync(BrokerConstants.TokenScheme, BrokerConstants.AccessToken); var auditLogBO = new AuditLogBO(_appSettings.Value.ApplicationName, jwt, _httpContextAccessor); return(await _memberFeedbackService.SaveMemberFeedback(memberFeedbackBO, auditLogBO)); }
public async Task <IEnumerable <string> > MemberDocumentSectionList() { var jwt = await HttpContext.GetTokenAsync(BrokerConstants.TokenScheme, BrokerConstants.AccessToken); var auditLogBO = new AuditLogBO(_appSettings.Value.ApplicationName, jwt, _httpContextAccessor); return(await _memberDocumentAndFormService.GetSectionList(auditLogBO)); }
public async Task <IEnumerable <BusinessObjects.Broker.DocumentAndFormBO> > GetDocumentAndFormSearch([FromBody] BusinessObjects.Broker.DocumentAndFormFilterBO documentAndFormFilterBO) { var jwt = await HttpContext.GetTokenAsync(BrokerConstants.TokenScheme, BrokerConstants.AccessToken); var auditLogBO = new AuditLogBO(_appSettings.Value.ApplicationName, jwt, _httpContextAccessor); return(await _memberDocumentAndFormService.GetDocumentAndFormSearch(documentAndFormFilterBO, auditLogBO)); }
/// <summary> /// Deletes the message. /// </summary> /// <param name="memberMessageId">The member message identifier.</param> /// <param name="auditLogBO">The audit log bo.</param> /// <returns></returns> /// <exception cref="CustomException">MessageServiceDeleteMessageInputEmptyErrorCode</exception> public async Task <int> DeleteMessage(List <long> memberMessageId, AuditLogBO auditLogBO) { if (memberMessageId == null || memberMessageId.Count == 0) { throw new CustomException(nameof(MemberConstants.MessageServiceDeleteMessageInputEmptyErrorCode)); } return(await _messageDataAccess.DeleteMessage(memberMessageId, auditLogBO)); }
/// <summary> /// Gets the payment information. /// </summary> /// <param name="userId">The user identifier.</param> /// <param name="auditLogBO">The audit log bo.</param> /// <returns></returns> /// <exception cref="CustomException">PaymentServiceGetPaymentInformationInputEmptyErrorCode</exception> public Task <PaymentInformationBO> GetPaymentInformation(int userId, AuditLogBO auditLogBO) { if (userId <= 0) { throw new CustomException(nameof(MemberConstants.PaymentServiceGetPaymentInformationInputEmptyErrorCode)); } return(_paymentDataAccess.GetPaymentInformation(userId, auditLogBO)); }
/// <summary> /// Validates the otp. /// </summary> /// <param name="externalId">The external identifier.</param> /// <param name="otp">The otp.</param> /// <param name="auditLogBO">The audit log bo.</param> /// <returns></returns> /// <exception cref="CustomException">MemberFeedbackForSaveEmptyErrorCode</exception> public Task <bool> ValidateOtp(string externalId, int otp, AuditLogBO auditLogBO) { if (string.IsNullOrEmpty(externalId) || otp == 0) { throw new CustomException(nameof(MemberConstants.MemberFeedbackForSaveEmptyErrorCode)); } return(_memberVerifyDa.ValidateOtp(externalId, otp, auditLogBO)); }
public async Task <IEnumerable <MemberFaqBO> > MemberFAQsList([FromRoute] int categoryId) { var jwt = await HttpContext.GetTokenAsync(BrokerConstants.TokenScheme, BrokerConstants.AccessToken); var auditLogBO = new AuditLogBO(_appSettings.Value.ApplicationName, jwt, _httpContextAccessor); return(await _memberFaqService.GetFaQs(categoryId, auditLogBO)); }
public async Task <IEnumerable <SecurityQuestionAnswersBO> > GetSecurityQuestionsByUserId(long userId) { var jwt = await HttpContext.GetTokenAsync(BrokerConstants.TokenScheme, BrokerConstants.AccessToken); var auditLogBO = new AuditLogBO(_appSettings.Value.ApplicationName, jwt, _httpContextAccessor); return(await _dashboardService.GetSecurityQuestionsByUserId(userId, auditLogBO)); }
public async Task <bool> UpdateSecurityQuestionsByUserId([FromBody] List <SecurityQuestionAnswersBO> updatedSecurityQuestions) { var jwt = await HttpContext.GetTokenAsync(BrokerConstants.TokenScheme, BrokerConstants.AccessToken); var auditLogBO = new AuditLogBO(_appSettings.Value.ApplicationName, jwt, _httpContextAccessor); return(await _dashboardService.UpdateSecurityQuestionsByUserId(updatedSecurityQuestions, auditLogBO)); }
public async Task <ProviderSearchBO> GetProviderSearchURL(long userId, string planType) { var jwt = await HttpContext.GetTokenAsync(BrokerConstants.TokenScheme, BrokerConstants.AccessToken); var auditLogBO = new AuditLogBO(_appSettings.Value.ApplicationName, jwt, _httpContextAccessor); return(await _providerSearchService.GetProviderSearchUrl(userId, planType, auditLogBO)); }
/// <summary> /// Determines whether [is username available] [the specified username]. /// </summary> /// <param name="username">The username.</param> /// <param name="auditLogBO">The audit log bo.</param> /// <returns></returns> /// <exception cref="CustomException">MemberVerifyServiceIsUsernameAvailableInputEmptyErrorCode</exception> public Task <bool> IsUsernameAvailable(string username, AuditLogBO auditLogBO) { if (string.IsNullOrEmpty(username)) { throw new CustomException(nameof(MemberConstants.MemberVerifyServiceIsUsernameAvailableInputEmptyErrorCode)); } return(_memberVerifyDa.IsUsernameAvailable(username, auditLogBO)); }
public async Task <CoveredPlansBO> GetMemberPlanTypes(long userId) { var jwt = await HttpContext.GetTokenAsync(BrokerConstants.TokenScheme, BrokerConstants.AccessToken); var auditLogBO = new AuditLogBO(_appSettings.Value.ApplicationName, jwt, _httpContextAccessor); return(await _dashboardService.GetMemberPlanTypes(userId, auditLogBO)); }
public async Task <bool> UpdateDigitalDocumentId(DigitalDocumentBO digitalDoc) { var jwt = await HttpContext.GetTokenAsync(BrokerConstants.TokenScheme, BrokerConstants.AccessToken); var auditLogBO = new AuditLogBO(_appSettings.Value.ApplicationName, jwt, _httpContextAccessor); return(await _masterService.UpdateDigitalDocumentId(digitalDoc, auditLogBO)); }
/// <summary> /// Gets the unread message count. /// </summary> /// <param name="userId">The user identifier.</param> /// <param name="auditLogBO">The audit log bo.</param> /// <returns></returns> /// <exception cref="CustomException">MessageServiceGetUnreadMessageCountInputEmptyErrorCode</exception> public async Task <int> GetUnreadMessageCount(long userId, AuditLogBO auditLogBO) { if (userId <= 0) { throw new CustomException(nameof(MemberConstants.MessageServiceGetUnreadMessageCountInputEmptyErrorCode)); } return(await _messageDataAccess.GetUnreadMessageCount(userId, auditLogBO)); }