Example #1
0
 /// <summary>
 /// Updates the digital document identifier.
 /// </summary>
 /// <param name="digitalDoc">The digital document.</param>
 /// <param name="auditLogBO">The audit log bo.</param>
 /// <returns></returns>
 /// <exception cref="CustomException">MasterServiceUpdateDigitalDocumentIdInputEmptyErrorCode</exception>
 public async Task <bool> UpdateDigitalDocumentId(DigitalDocumentBO digitalDoc, AuditLogBO auditLogBO)
 {
     if (digitalDoc == null)
     {
         throw new CustomException(nameof(MemberConstants.MasterServiceUpdateDigitalDocumentIdInputEmptyErrorCode));
     }
     return(await _masterDa.UpdateDigitalDocumentId(digitalDoc, auditLogBO));
 }
Example #2
0
        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));
        }
Example #3
0
        /// <summary>
        /// Updates the digital document identifier.
        /// </summary>
        /// <param name="digitalDoc">The digital document.</param>
        /// <param name="auditLogBO">The audit log bo.</param>
        /// <returns></returns>
        /// <exception cref="Exception">Unexpected Case</exception>
        public async Task <bool> UpdateDigitalDocumentId(DigitalDocumentBO digitalDoc, AuditLogBO auditLogBO)
        {
            var response = false;

            if (digitalDoc != null)
            {
                switch (digitalDoc.DocumentType.ToLower())
                {
                case MemberConstants.ClaimsEOB:     //Updating EOB document id in Claims table
                    var claimsRepository = _unitOfWork.GetRepository <Claims>();
                    var claim            = await claimsRepository.GetFirstOrDefaultAsync(predicate : c => Convert.ToInt64(c.ClaimsNumber) == digitalDoc.Identifier);

                    if (claim != null)
                    {
                        claim.DocumentId = digitalDoc.DocumentId;
                        claimsRepository.Update(claim);
                    }
                    break;

                case MemberConstants.ProductGuideBook:     //Updating product guidebook id in product table
                    var productRepository = _unitOfWork.GetRepository <Product>();
                    var product           = await productRepository.GetFirstOrDefaultAsync(predicate : prd => prd.ProductCode == digitalDoc.Identifier);

                    if (product != null)
                    {
                        product.DocumentId = digitalDoc.DocumentId;
                        productRepository.Update(product);
                    }
                    break;

                case MemberConstants.DigitalIDCard:     //Updating digital id card id in member/member dependent table
                    if (digitalDoc.MemberType.ToLower().Equals(MemberConstants.Self))
                    {
                        var memberRepository = _unitOfWork.GetRepository <Member>();
                        var member           = await memberRepository.GetFirstOrDefaultAsync(predicate : m => m.UserId == digitalDoc.Identifier);

                        if (member != null)
                        {
                            member.DigitalIdcardId = digitalDoc.DocumentId;
                            memberRepository.Update(member);
                        }
                    }
                    else if (digitalDoc.MemberType.ToLower().Equals(MemberConstants.Dependent))
                    {
                        var memberDependentRepository = _unitOfWork.GetRepository <MemberDependent>();
                        var memberDependent           = await memberDependentRepository.GetFirstOrDefaultAsync(predicate : m => m.MemberDetailId == digitalDoc.Identifier);

                        if (memberDependent != null)
                        {
                            memberDependent.DigitalIdcardId = digitalDoc.DocumentId;
                            memberDependentRepository.Update(memberDependent);
                        }
                    }
                    break;

                case MemberConstants.AvatarImage:      //Updating avatar image id in member details table
                    var memberDetailRepository = _unitOfWork.GetRepository <MemberDetail>();
                    if (digitalDoc.MemberType.ToLower().Equals(MemberConstants.Self))
                    {
                        var memberRepository = _unitOfWork.GetRepository <Member>();
                        var member           = await memberRepository.GetFirstOrDefaultAsync(predicate : m => m.UserId == digitalDoc.Identifier);

                        if (member != null)
                        {
                            var memberDetail = await memberDetailRepository.GetFirstOrDefaultAsync(predicate : md => md.MemberDetailId == member.MemberDetailId);

                            if (memberDetail != null)
                            {
                                memberDetail.AvatarImageId = digitalDoc.DocumentId;
                                memberDetailRepository.Update(memberDetail);
                            }
                        }
                    }
                    else if (digitalDoc.MemberType.ToLower().Equals(MemberConstants.Dependent))
                    {
                        var memberDetail = await memberDetailRepository.GetFirstOrDefaultAsync(predicate : md => md.MemberDetailId == digitalDoc.Identifier);

                        if (memberDetail != null)
                        {
                            memberDetail.AvatarImageId = digitalDoc.DocumentId;
                            memberDetailRepository.Update(memberDetail);
                        }
                    }
                    break;

                default:
                    break;
                }

                var rowsAffected = await _unitOfWork.SaveChangesAsync();

                if (rowsAffected > 0)
                {
                    response = true;
                }

                //Log audit
                await AuditMapper.AuditLogging(auditLogBO, null, AuditAction.Update, digitalDoc);
            }

            return(response);
        }