/// <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);
        }
Exemple #5
0
        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));
        }
Exemple #6
0
        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);
        }
Exemple #8
0
 /// <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);
 }
Exemple #9
0
        /// <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);
        }
Exemple #10
0
        /// <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);
        }
Exemple #12
0
        public async Task <bool> ValidateUserSecurityQAs([FromBody] List <SecurityQuestionAnswersBO> securityQuestionAnswers)
        {
            var auditLogBO = new AuditLogBO();
            var response   = await _resetPasswordService.ValidateUserSecurityQAs(securityQuestionAnswers, auditLogBO);

            return(response);
        }
Exemple #13
0
        public async Task <bool> SendPasswordResetConfirmationEmail(string userName, DateTime PasswordResetDateTime)
        {
            var auditLogBO = new AuditLogBO();
            var response   = await _resetPasswordService.SendPasswordResetConfirmationEmail(userName, PasswordResetDateTime, auditLogBO);

            return(response);
        }
Exemple #14
0
        public async Task <IEnumerable <SecurityQuestionsBO> > GetUserSecurityQuestions(string userName)
        {
            var auditLogBO = new AuditLogBO();
            var response   = await _resetPasswordService.GetUserSecurityQuestions(userName, auditLogBO);

            return(response);
        }
Exemple #15
0
        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;
        }
Exemple #16
0
 /// <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));
 }
Exemple #17
0
        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));
        }
Exemple #18
0
        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));
        }
Exemple #19
0
        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));
        }
Exemple #20
0
 /// <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));
 }
Exemple #21
0
 /// <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));
 }
Exemple #23
0
        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));
        }
Exemple #26
0
        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));
        }
Exemple #30
0
 /// <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));
 }