Exemplo n.º 1
0
        private CreditSafeNonLtdBaseData Save(CreditSafeNonLtdBaseData data)
        {
            if (data == null)
            {
                return(null);
            }

            Log.Info("Saving NonLtdCreditSafe consumer data into DB...");

            var con = DB.GetPersistent();

            con.BeginTransaction();
            try
            {
                var id = DB.ExecuteScalar <long>(
                    con,
                    "SaveCreditSafeNonLtdBaseData",
                    CommandSpecies.StoredProcedure,
                    DB.CreateTableParameter <CreditSafeNonLtdBaseData>("Tbl", new List <CreditSafeNonLtdBaseData> {
                    data
                })
                    );
                if (data.Tels.Any())
                {
                    foreach (var tel in data.Tels)
                    {
                        tel.CreditSafeNonLtdBaseDataID = id;
                    }
                    DB.ExecuteNonQuery(
                        con,
                        "SaveCreditSafeNonLtdBaseDataTel",
                        CommandSpecies.StoredProcedure,
                        DB.CreateTableParameter <CreditSafeNonLtdBaseDataTel>("Tbl", data.Tels)
                        );
                }
                if (data.Faxs.Any())
                {
                    foreach (var fax in data.Faxs)
                    {
                        fax.CreditSafeNonLtdBaseDataID = id;
                    }
                    DB.ExecuteNonQuery(
                        con,
                        "SaveCreditSafeNonLtdBaseDataFax",
                        CommandSpecies.StoredProcedure,
                        DB.CreateTableParameter <CreditSafeNonLtdBaseDataFax>("Tbl", data.Faxs)
                        );
                }
                if (data.Ratings.Any())
                {
                    foreach (var rating in data.Ratings)
                    {
                        rating.CreditSafeNonLtdBaseDataID = id;
                    }
                    DB.ExecuteNonQuery(
                        con,
                        "SaveCreditSafeNonLtdRatings",
                        CommandSpecies.StoredProcedure,
                        DB.CreateTableParameter <CreditSafeNonLtdRatings>("Tbl", data.Ratings)
                        );
                }
                if (data.Limits.Any())
                {
                    foreach (var limit in data.Limits)
                    {
                        limit.CreditSafeNonLtdBaseDataID = id;
                    }
                    DB.ExecuteNonQuery(
                        con,
                        "SaveCreditSafeNonLtdLimits",
                        CommandSpecies.StoredProcedure,
                        DB.CreateTableParameter <CreditSafeNonLtdLimits>("Tbl", data.Limits)
                        );
                }
                if (data.MatchedCcj.Any())
                {
                    foreach (var matched in data.MatchedCcj)
                    {
                        matched.CreditSafeNonLtdBaseDataID = id;
                    }
                    DB.ExecuteNonQuery(
                        con,
                        "SaveCreditSafeNonLtdMatchedCCJ",
                        CommandSpecies.StoredProcedure,
                        DB.CreateTableParameter <CreditSafeNonLtdMatchedCCJ>("Tbl", data.MatchedCcj)
                        );
                }
                if (data.PossibleCcj.Any())
                {
                    foreach (var possible in data.PossibleCcj)
                    {
                        possible.CreditSafeNonLtdBaseDataID = id;
                    }
                    DB.ExecuteNonQuery(
                        con,
                        "SaveCreditSafeNonLtdPossibleCCJ",
                        CommandSpecies.StoredProcedure,
                        DB.CreateTableParameter <CreditSafeNonLtdPossibleCCJ>("Tbl", data.PossibleCcj)
                        );
                }
                if (data.Events.Any())
                {
                    foreach (var ev in data.Events)
                    {
                        ev.CreditSafeNonLtdBaseDataID = id;
                    }
                    DB.ExecuteNonQuery(
                        con,
                        "SaveCreditSafeNonLtdEvents",
                        CommandSpecies.StoredProcedure,
                        DB.CreateTableParameter <CreditSafeNonLtdEvents>("Tbl", data.Events)
                        );
                }
            }
            catch (Exception ex)
            {
                Log.Warn(ex, "Failed to save NonLtdCreditSafe consumer");
                con.Rollback();
                return(null);
            }

            con.Commit();
            Log.Info("Saving NonLtdCreditSafe consumer data into DB complete.");
            return(data);
        }
Exemplo n.º 2
0
        public CreditSafeNonLtdBaseData Build(CreditSafeNonLtdResponse response, DateTime?insertDate = null, string companyRefNum = null, long?serviceLogId = null)
        {
            CreditSafeNonLtdBaseData data = new CreditSafeNonLtdBaseData();

            data.EzbobCompanyID = companyRefNum ?? "0";
            data.InsertDate     = insertDate ?? new DateTime();
            data.ServiceLogID   = serviceLogId ?? 0;

            xmlresponsecompanyBody item = (xmlresponsecompanyBody)response.Items[1];
            var company            = item.companies[0];
            var baseInfo           = company.baseinformation[0];
            var matchedccjsummary  = company.matchedccjsummary[0];
            var possibleccjsummary = company.possiblematchedccjsummary[0];
            var seniorexecutive    = company.seniorexecutive[0];

            TryRead(() =>
            {
                TryRead(() => data.Number   = baseInfo.number, "BaseInfoNumber");
                TryRead(() => data.Name     = baseInfo.name, "BaseInfoName");
                TryRead(() => data.Address1 = baseInfo.address1, "BaseInfoAddress1");
                TryRead(() => data.Address2 = baseInfo.address2, "BaseInfoAddress2");
                TryRead(() => data.Address3 = baseInfo.address3, "BaseInfoAddress3");
                TryRead(() => data.Address4 = baseInfo.address4, "BaseInfoAddress4");
                TryRead(() => data.PostCode = baseInfo.postcode, "BaseInfoPostcode");
                TryRead(() =>
                {
                    if (baseInfo.mpsregistered == "N")
                    {
                        data.MpsRegistered = false;
                    }
                    else
                    {
                        data.MpsRegistered = true;
                    }
                }, "BaseInfoMpsRegistered");
                data.AddressDate = TryReadDate(baseInfo.addressdate, "BaseInfoAddressDate");
                TryRead(() => data.AddressReason = baseInfo.addressreason, "BaseInfoAddressReason");
                TryRead(() => data.PremiseType   = baseInfo.premisestype, "BaseInfoPremiseType");
                TryRead(() => data.Activities    = baseInfo.activities, "BaseInfoActivities");
                TryRead(() => data.Employees     = Convert.ToInt32(baseInfo.employees), "BaseInfoCompanyType");
                TryRead(() => data.Website       = baseInfo.website, "BaseInfoWebsite");
                TryRead(() => data.Email         = baseInfo.email, "BaseInfoEmail");

                TryRead(() => data.MatchedCcjValue  = Convert.ToInt32(matchedccjsummary.value), "BaseInfoMatchedCcjValue");
                TryRead(() => data.MatchedCcjNumber = Convert.ToInt32(matchedccjsummary.number), "BaseInfoMatchedCcjNumber");
                data.MatchedCcjDateFrom             = TryReadDate(matchedccjsummary.datefrom, "BaseInfoMatchedCcjDateFrom");
                data.MatchedCcjDateTo = TryReadDate(matchedccjsummary.dateto, "BaseInfoMatchedCcjDateTo");

                TryRead(() => data.PossibleCcjValue  = Convert.ToInt32(possibleccjsummary.value), "BaseInfoPossibleCcjValue");
                TryRead(() => data.PossibleCcjNumber = Convert.ToInt32(possibleccjsummary.number), "BaseInfoPossibleCcjNumber");
                data.PossibleCcjDateFrom             = TryReadDate(possibleccjsummary.datefrom, "BaseInfoPossibleCcjDateFrom");
                data.PossibleCcjDateTo = TryReadDate(possibleccjsummary.dateto, "BaseInfoPossibleCcjDateTo");

                TryRead(() => data.ExecutiveName     = seniorexecutive.name, "BaseInfoExecutiveName");
                TryRead(() => data.ExecutivePosition = seniorexecutive.position, "BaseInfoExecutivePosition");
                TryRead(() => data.ExecutiveEmail    = seniorexecutive.email, "BaseInfoExecutiveEmail");
            }, "BaseInfo");

            TryRead(() => {
                foreach (var tel in baseInfo.telephonenumbers)
                {
                    CreditSafeNonLtdBaseDataTel newTel = new CreditSafeNonLtdBaseDataTel();
                    TryRead(() => newTel.Telephone     = tel.telephone, "TelTelephone");
                    TryRead(() => {
                        if (tel.tpsregistered == "N")
                        {
                            newTel.TpsRegistered = false;
                        }
                        else
                        {
                            newTel.TpsRegistered = true;
                        }
                    }, "TelTpsRegistered");
                    TryRead(() => {
                        if (tel.main == "N")
                        {
                            newTel.Main = false;
                        }
                        else
                        {
                            newTel.Main = true;
                        }
                    }, "TelMain");
                    data.Tels.Add(newTel);
                }
            }, "baseInfo.telephonenumbers");

            TryRead(() => {
                foreach (var fax in baseInfo.faxnumbers)
                {
                    CreditSafeNonLtdBaseDataFax newFax = new CreditSafeNonLtdBaseDataFax();
                    TryRead(() => newFax.Fax           = fax.fax, "FaxFaxNumber");
                    TryRead(() => {
                        if (fax.fpsregistered == "N")
                        {
                            newFax.FpsRegistered = false;
                        }
                        else
                        {
                            newFax.FpsRegistered = true;
                        }
                    }, "FaxFpsRegistered");
                    TryRead(() => {
                        if (fax.main == "N")
                        {
                            newFax.Main = false;
                        }
                        else
                        {
                            newFax.Main = true;
                        }
                    }, "FaxMain");
                    data.Faxs.Add(newFax);
                }
            }, "baseInfo.faxnumbers");

            TryRead(() => {
                foreach (var rating in company.ratings)
                {
                    CreditSafeNonLtdRatings newRating = new CreditSafeNonLtdRatings();
                    newRating.Date = TryReadDate(rating.date, "RatingsDate");
                    TryRead(() => newRating.Score       = Convert.ToInt32(rating.score), "RatingsScore");
                    TryRead(() => newRating.Description = rating.description, "RatingsDescription");
                    data.Ratings.Add(newRating);
                }
            }, "company.ratings");

            TryRead(() => {
                foreach (var limit in company.limits)
                {
                    CreditSafeNonLtdLimits newLimit = new CreditSafeNonLtdLimits();
                    TryRead(() => newLimit.Limit    = Convert.ToInt32(limit.limit), "LimitLimit");
                    newLimit.Date = TryReadDate(limit.date, "LimitDate");
                    data.Limits.Add(newLimit);
                }
            }, "company.limits");

            TryRead(() => {
                foreach (var matched in company.matchedrecordofpayments)
                {
                    CreditSafeNonLtdMatchedCCJ newMatched = new CreditSafeNonLtdMatchedCCJ();
                    TryRead(() => newMatched.CaseNr       = matched.casenr, "MatchedCaseNr");
                    newMatched.CcjDate                 = TryReadDate(matched.ccjdate, "MatchedCcjDate");
                    newMatched.CcjDatePaid             = TryReadDate(matched.ccjdatepaid, "MatchedCcjDatePaid");
                    TryRead(() => newMatched.Court     = matched.court, "MatchedCourt");
                    TryRead(() => newMatched.CcjStatus = matched.ccjstatus, "MatchedCcjStatus");
                    TryRead(() => newMatched.CcjAmount = Convert.ToInt32(matched.ccjamount), "MatchedCcjAmount");
                    TryRead(() => newMatched.Against   = matched.against, "MatchedAgainst");
                    TryRead(() => newMatched.Address   = matched.address, "MatchedAddress");
                    data.MatchedCcj.Add(newMatched);
                }
            }, "MatchedCCJ");

            TryRead(() => {
                foreach (var possible in company.possiblematchedrecordofpayments)
                {
                    CreditSafeNonLtdPossibleCCJ newPossible = new CreditSafeNonLtdPossibleCCJ();
                    TryRead(() => newPossible.CaseNr        = possible.casenr, "PossibleCaseNr");
                    newPossible.CcjDate                 = TryReadDate(possible.ccjdate, "PossibleCcjDate");
                    newPossible.CcjDatePaid             = TryReadDate(possible.ccjdatepaid, "PossibleCcjDatePaid");
                    TryRead(() => newPossible.Court     = possible.court, "PossibleCourt");
                    TryRead(() => newPossible.CcjStatus = possible.ccjstatus, "PossibleCcjStatus");
                    TryRead(() => newPossible.CcjAmount = Convert.ToInt32(possible.ccjamount), "PossibleCcjAmount");
                    TryRead(() => newPossible.Against   = possible.against, "PossibleAgainst");
                    TryRead(() => newPossible.Address   = possible.address, "PossibleAddress");
                    data.PossibleCcj.Add(newPossible);
                }
            }, "PossibleCCJ");

            TryRead(() => {
                foreach (var events in company.events)
                {
                    CreditSafeNonLtdEvents newEvent = new CreditSafeNonLtdEvents();
                    newEvent.Date = TryReadDate(events.date, "EventsDate");
                    TryRead(() => newEvent.Text = events.text, "EventsText");
                    data.Events.Add(newEvent);
                }
            }, "company.events");

            if (HasParsingError)
            {
                data.HasParsingError = true;
                data.Error           = Errors;
            }
            else
            {
                data.HasParsingError = false;
            }
            return(data);
        }