Esempio n. 1
0
        public async Task <bool> PersonalTraceOrder(string FirstName, string Surname, string IDNumber, string ProductID, string AddressLine1, string AddressLine2,
                                                    string Suburb, string DateOfBirth, string ContactNo)
        {
            result = false;
            UserModel user   = Session["User"] as UserModel;
            string    userID = user.UserID.ToString();

            TransunionRequest.IndividualTraceSearchRequest request = new TransunionRequest.IndividualTraceSearchRequest
            {
                Forename     = FirstName,
                Surname      = Surname,
                IDNo         = IDNumber,
                AddressLine1 = AddressLine1,
                AddressLine2 = AddressLine2,
                Suburb       = Suburb,
                DateOfBirth  = DateOfBirth
                               //CellNo = ContactNo
            };

            result = await new TransUnionConsumer().IndividualTraceSearchAsync(request, userID, 2);
            SaveAudit("You requested a Personal Trace report.", user.UserID);

            return(result);
        }
        public async Task <bool> IndividualTraceSearchAsync(TransunionRequest.IndividualTraceSearchRequest Request, string UserID, int ProductID)
        {
            startDate = DateTime.Now;

            log = new Logger();
            try
            {
                var config = new MapperConfiguration(
                    cfg =>
                {
                    cfg.CreateMap <IndividualTraceSearchRequest, IndividualTraceSearchInput>()
                    .ForMember(x => x.TicketNumber, y => y.MapFrom(z => z.TicketNo))
                    .ForMember(x => x.ReportNumber, y => y.MapFrom(z => z.ReportNo))
                    .ForMember(x => x.UserEmail, y => y.MapFrom(z => z.Email))
                    .ForMember(x => x.ConsumerNumber, y => y.MapFrom(z => z.ConsumerNo))
                    .ForMember(x => x.TelephoneAreaCode, y => y.MapFrom(z => z.PhoneCode))
                    .ForMember(x => x.TelephoneNumber, y => y.MapFrom(z => z.TelNo))
                    .ForMember(x => x.CellNumber, y => y.MapFrom(z => z.CellNo))
                    .ForMember(x => x.AddressStreetNumber, y => y.MapFrom(z => z.StreetAddress))
                    .ForMember(x => x.AddressSuburb, y => y.MapFrom(z => z.Suburb))
                    .ForMember(x => x.AddressTown, y => y.MapFrom(z => z.Town))
                    .ForMember(x => x.AddressPostalCode, y => y.MapFrom(z => z.PostalCode))
                    .ForMember(x => x.IdentityNumber, y => y.MapFrom(z => z.IDNo))
                    .ForMember(x => x.DateOfBirth, y => y.MapFrom(z => z.DateOfBirth));;
                }
                    );

                var mapper = config.CreateMapper();

                var individualTrace = mapper.Map <IndividualTraceSearchInput>(Request);
                individualTrace.SubscriberCode = subNo;
                individualTrace.SecurityCode   = securityCode;
                individualTrace.SearchType     = "01";
                individualTrace.SearchReason   = "61";

                /* Begin Proxy code*/
                //BasicHttpBinding binding = new BasicHttpBinding("ConsumerSoap");
                //binding.Security.Mode = BasicHttpSecurityMode.Transport;
                //binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.Basic;
                //binding.UseDefaultWebProxy = false;
                //binding.ProxyAddress = new Uri("http://proxy.ntcweb.co.za:8080");
                //EndpointAddress endpoint = new EndpointAddress("https://securetest.transunion.co.za/TUBureau118/Consumer.asmx");
                //ConsumerSoapClient soap = new ConsumerSoapClient(binding, endpoint);
                //soap.ClientCredentials.UserName.UserName = "******";
                //soap.ClientCredentials.UserName.Password = "******";
                //var response = await soap.ProcessRequestIndividualTraceSearchInputAsync(individualTrace);
                /*End Proxy Code*/

                var response = await client.ProcessRequestIndividualTraceSearchInputAsync(individualTrace);


                result = response.ErrorCode == null ? true : false;

                if (result)
                {
                    string ticketno   = string.Empty;
                    string consumerno = string.Empty;
                    if (response.TraceInformationTI != null)
                    {
                        ticketno = response.TraceInformationTI[0].OTicketNumber;
                    }

                    if (response.TraceDetailsTD != null)
                    {
                        consumerno = response.TraceDetailsTD[0].OConsumerNumber;
                    }

                    TransunionRequest.TraceOrder68Request trace68 = new TraceOrder68Request
                    {
                        TicketNo     = ticketno,
                        ConsumerNo   = consumerno,
                        IDNo1        = individualTrace.IdentityNumber,
                        AddressLine1 = individualTrace.AddressLine1,
                        AddressLine2 = individualTrace.AddressLine2,
                        Suburb       = individualTrace.AddressSuburb,
                        CellNo       = Request.CellNo
                    };

                    var products = await PersonalTraceOrder(trace68, UserID, ProductID);
                }
                else
                {
                    log.LogError(UserID, "DataSolutions.Services", "TransunionAPIController.IndividualTraceSearchAsync", response.ErrorCode + " " + response.ErrorMessage);
                }


                //Save Transaction
                endDate   = DateTime.Now;
                transData = new TransactionModel.TransactionData
                {
                    EndDate      = endDate,
                    IsSuccessful = result,
                    Message      = response.ErrorMessage,
                    ProductID    = ProductID,
                    StartDate    = startDate,
                    UserID       = Convert.ToInt32(UserID)
                };

                SaveTransaction(transData);

                result = true;
            }
            catch (Exception ex)
            {
                log.LogError(UserID, "DataSolutions.Services", "TransunionAPIController,IndividualTraceSearchAsync", ex.Message);
            }

            return(result);
        }