Exemplo n.º 1
0
        private List <TransactionInfo> SearchDoNotCallTransaction(InquireDoNotCallRequest request)
        {
            _doNotCallFacade = new DoNotCallFacade();
            var cardNo = request.CardNo;

            var searchFilter = new DoNotCallListSearchFilter
            {
                CardNo      = cardNo,
                Telephone   = request.PhoneNo,
                Email       = request.Email,
                PageNo      = 1,
                PageSize    = request.DataLimit,
                ProductCode = request.ProductCode
            };

            if (!string.IsNullOrWhiteSpace(cardNo))
            {
                string code = request.SubscriptionTypeCode;
                int?   subscriptionTypeId = _commonFacade.GetSubscriptTypeByCode(code)?.SubscriptTypeId;
                if (!subscriptionTypeId.HasValue)
                {
                    throw new NullReferenceException($"Subscription Type Code: {code} not found.");
                }
                else
                {
                    searchFilter.SubscriptionTypeId = subscriptionTypeId.Value;
                }
            }

            List <TransactionInfo> result = _doNotCallFacade.SearchExactDoNotCallTransaction(searchFilter);

            return(result);
        }
Exemplo n.º 2
0
        private bool ExportDataToTOT(string executeTime, ExportFileResponse response)
        {
            var now = DateTime.Now;

            _doNotCallFacade = new DoNotCallFacade();
            List <DoNotCallUpdatePhoneNoModel> newDataList = _doNotCallFacade.GetDoNotCallPhoneNoListByExecuteTime(executeTime);
            int itemCount = newDataList.Count;

            if (itemCount > 0)
            {
                // Generate file
                byte[] fileByte = _doNotCallFacade.GenerateDoNotCallPhoneListAttachment(newDataList);
                // Send email
                _mailSender = CSMMailSender.GetCSMMailSender();
                int    activeCount        = newDataList.Count(x => x.Status == Constants.DNC.Block);
                int    inactiveCount      = newDataList.Count(x => x.Status == Constants.DNC.Unblock);
                string fileName           = now.FormatDateTime(Constants.DateTimeFormat.ExportDateTime);
                string attachmentFileName = $"{fileName}.csv";
                bool   success            = _mailSender.ExpportUpdatePhoneStatusToTOT(now, executeTime, activeCount, inactiveCount, fileByte, attachmentFileName);
                // generate file
                _doNotCallFacade.GenerateDoNotCallPhoneListFile(fileByte, fileName, success);

                response.ExportDataCount = success ? itemCount : 0;
                return(success);
            }
            return(true);
        }
Exemplo n.º 3
0
        public InsertOrUpdateDoNotCallPhoneResponse InsertOrUpdateDoNotCallPhone(InsertOrUpdateDoNotCallPhoneRequest request)
        {
            string methodName = $"{nameof(DoNotCallInterfaceService)}.{nameof(InsertOrUpdateDoNotCallPhone)}";
            var    response   = new InsertOrUpdateDoNotCallPhoneResponse();
            bool   success    = false;
            string detail     = string.Empty;

            try
            {
                _doNotCallFacade = new DoNotCallFacade();
                // Validate input data
                DoNotCallInterfaceValidateResult validateResult = ValidateInsertUpdatePhoneRequest(request);
                if (!validateResult.IsValid)
                {
                    response.ResponseStatusInfo = GetInvalidInputResponse <InsertResponseStatusInfo>(validateResult.ErrorMessage);
                    _logger.DebugFormat("-- XMLResponse --\n{0}", response.SerializeObject());
                    detail = validateResult.ErrorMessage;
                    return(response);
                }

                response.Header = GetResponseHeader(request.Header, methodName);

                // Authenticate user
                if (!ValidateServiceRequest(request.Header))
                {
                    response.ResponseStatusInfo = GetInvalidLoginResponse <InsertResponseStatusInfo>();
                    detail = "Invalid login";
                    return(response);
                }
                _logger.DebugFormat("-- XMLRequest --\n{0}", request.SerializeObject());

                // Map model to insert
                DoNotCallByTelephoneEntity entity = MapTelephoneEntity(request, validateResult);
                // Insert data

                int transactionId = _doNotCallFacade.SavePhone(entity);
                if (transactionId > 0)
                {
                    response.ResponseStatusInfo = GetSuccessResponseStatusInfo <InsertResponseStatusInfo>();
                    response.ResponseStatusInfo.TransactionId = transactionId;
                    success = true;
                }

                return(response);
            }
            catch (Exception ex)
            {
                response.ResponseStatusInfo = GetErrorResponse <InsertResponseStatusInfo>(ex);
                detail = ex.Message;
                return(response);
            }
            finally
            {
                InsertAuditLog(methodName, success, detail ?? response.ResponseStatusInfo.ResponseMessage);
            }
        }
Exemplo n.º 4
0
        private void ExportUpdateData(ExportFileResponse response)
        {
            _doNotCallFacade = new DoNotCallFacade();
            // Update expired items and get update data list
            List <DoNotCallUpdatePhoneNoModel> newDataList = _doNotCallFacade.GetUpdatedDoNotCallPhoneNoList();
            int dataCount = newDataList?.Count ?? 0;

            if (dataCount > 0)
            {
                // Export new data to csv file
                response.ExportDataCount = dataCount;
                _doNotCallFacade.ExportDoNotCallUpdateFile(newDataList);
                response.Description = $"Exported data count: {dataCount}";
            }
            else
            {
                response.Description = "File not created. No new update data";
            }
        }