Beispiel #1
0
        public void When_Saving_Header_With_Any_Names_Then_Insert_Name_Is_Called()
        {
            // arrange
            const int headerKey = 1;

            var name = new Type814Name {
                EntityIdCode = "mock",
            };

            var header = new Type814Header();

            header.AddName(name);

            dataAccess.Stub(x => x.InsertHeader(Arg.Is(header)))
            .Return(headerKey);

            dataAccess.Expect(x => x.InsertName(Arg.Is(name)))
            .Return(1);

            // act
            concern.SaveHeader(header);

            // assert
            Assert.AreEqual(headerKey, name.HeaderKey);
            dataAccess.VerifyAllExpectations();
        }
Beispiel #2
0
        public int InsertName(Type814Name model)
        {
            using (var connection = new SqlConnection(connectionString))
                using (var command = connection.CreateCommand("csp814NameInsert"))
                {
                    SqlParameter keyParameter;

                    command.AddWithValue("@814_Key", model.HeaderKey)
                    .AddWithValue("@EntityIdType", model.EntityIdType)
                    .AddIfNotEmptyOrDbNull("@EntityName", model.EntityName)
                    .AddIfNotEmptyOrDbNull("@EntityName2", model.EntityName2)
                    .AddIfNotEmptyOrDbNull("@EntityName3", model.EntityName3)
                    .AddIfNotEmptyOrDbNull("@EntityDuns", model.EntityDuns)
                    .AddIfNotEmptyOrDbNull("@EntityIdCode", model.EntityIdCode)
                    .AddIfNotEmptyOrDbNull("@Address1", model.Address1)
                    .AddIfNotEmptyOrDbNull("@Address2", model.Address2)
                    .AddIfNotEmptyOrDbNull("@City", model.City)
                    .AddIfNotEmptyOrDbNull("@State", model.State)
                    .AddIfNotEmptyOrDbNull("@PostalCode", model.PostalCode)
                    .AddIfNotEmptyOrDbNull("@CountryCode", model.CountryCode)
                    .AddWithValue("@County", model.County)
                    .AddWithValue("@ContactCode", model.ContactCode)
                    .AddIfNotEmptyOrDbNull("@ContactName", model.ContactName)
                    .AddIfNotEmptyOrDbNull("@ContactPhoneNbr1", model.ContactPhoneNbr1)
                    .AddWithValue("@ContactPhoneNbr2", model.ContactPhoneNbr2)
                    .AddWithValue("@ContactPhoneNbr3", model.ContactPhoneNbr3)
                    .AddWithValue("@EntityFirstName", model.EntityFirstName)
                    .AddWithValue("@EntityLastName", model.EntityLastName)
                    .AddWithValue("@EntityEmail", model.EntityEmail)
                    .AddWithValue("@CustType", model.CustType)
                    .AddWithValue("@TaxingDistrict", model.TaxingDistrict)
                    .AddWithValue("EntityMiddleName", model.EntityMiddleName)
                    .AddOutParameter("@Name_Key", SqlDbType.Int, out keyParameter);

                    if (connection.State != ConnectionState.Open)
                    {
                        connection.Open();
                    }

                    command.ExecuteNonQuery();

                    if (keyParameter.Value == null)
                    {
                        throw new Exception();
                    }

                    var nameKey = (int)keyParameter.Value;
                    model.NameKey = nameKey;

                    return(nameKey);
                }
        }
Beispiel #3
0
        public Type814Name[] ListNames(int headerKey)
        {
            using (var connection = new SqlConnection(connectionString))
                using (var command = connection.CreateCommand("esp_814NameList"))
                {
                    command.AddWithValue("@HeaderKey", headerKey);

                    if (connection.State != ConnectionState.Open)
                    {
                        connection.Open();
                    }

                    var collection = new List <Type814Name>();
                    using (var reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var item = new Type814Name
                            {
                                NameKey   = reader.GetInt32("Name_Key"),
                                HeaderKey = headerKey,
                            };

                            reader.TryGetString("EntityIdType", x => item.EntityIdType = x);
                            reader.TryGetString("EntityName", x => item.EntityName     = x);
                            reader.TryGetString("EntityName2", x => item.EntityName2   = x);
                            reader.TryGetString("EntityName3", x => item.EntityName3   = x);
                            reader.TryGetString("Address1", x => item.Address1         = x);
                            reader.TryGetString("Address2", x => item.Address2         = x);
                            reader.TryGetString("City", x => item.City                         = x);
                            reader.TryGetString("State", x => item.State                       = x);
                            reader.TryGetString("PostalCode", x => item.PostalCode             = x);
                            reader.TryGetString("CountryCode", x => item.CountryCode           = x);
                            reader.TryGetString("ContactName", x => item.ContactName           = x);
                            reader.TryGetString("ContactPhoneNbr1", x => item.ContactPhoneNbr1 = x);
                            reader.TryGetString("ContactPhoneNbr2", x => item.ContactPhoneNbr2 = x);
                            reader.TryGetString("ContactPhoneNbr3", x => item.ContactPhoneNbr3 = x);
                            reader.TryGetString("EntityFirstName", x => item.EntityFirstName   = x);
                            reader.TryGetString("EntityLastName", x => item.EntityLastName     = x);
                            reader.TryGetString("CustType", x => item.CustType                 = x);
                            reader.TryGetString("TaxingDistrict", x => item.TaxingDistrict     = x);
                            reader.TryGetString("EntityMiddleName", x => item.EntityMiddleName = x);
                            reader.TryGetString("County", x => item.County                     = x);

                            collection.Add(item);
                        }

                        return(collection.ToArray());
                    }
                }
        }
Beispiel #4
0
        public Type814Name[] ListNames(int headerKey)
        {
            using (var connection = new SqlConnection(connectionString))
                using (var command = connection.CreateCommand("csp814ExportListNameRecords"))
                {
                    command.AddWithValue("@814Key", headerKey);

                    if (connection.State != ConnectionState.Open)
                    {
                        connection.Open();
                    }

                    var collection = new List <Type814Name>();
                    using (var reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            var item = new Type814Name
                            {
                                HeaderKey = headerKey,
                            };

                            reader.TryGetString("EntityIdType", x => item.EntityIdType = x);
                            reader.TryGetString("EntityName", x => item.EntityName     = x);
                            reader.TryGetString("EntityName2", x => item.EntityName2   = x);
                            reader.TryGetString("EntityName3", x => item.EntityName3   = x);
                            reader.TryGetString("Address1", x => item.Address1         = x);
                            reader.TryGetString("Address2", x => item.Address2         = x);
                            reader.TryGetString("City", x => item.City                         = x);
                            reader.TryGetString("State", x => item.State                       = x);
                            reader.TryGetString("PostalCode", x => item.PostalCode             = x);
                            reader.TryGetString("CountryCode", x => item.CountryCode           = x);
                            reader.TryGetString("ContactName", x => item.ContactName           = x);
                            reader.TryGetString("ContactPhoneNbr1", x => item.ContactPhoneNbr1 = x);
                            reader.TryGetString("ContactPhoneNbr2", x => item.ContactPhoneNbr2 = x);
                            reader.TryGetString("EntityIdCode", x => item.EntityIdCode         = x);
                            reader.TryGetString("EntityEmail", x => item.EntityEmail           = x);

                            collection.Add(item);
                        }

                        return(collection.ToArray());
                    }
                }
        }
Beispiel #5
0
        public Type814Name ParseName(XElement element, IDictionary <string, XNamespace> namespaces)
        {
            XNamespace empty;

            if (!namespaces.TryGetValue(string.Empty, out empty))
            {
                empty = XNamespace.None;
            }

            var model = new Type814Name
            {
                EntityIdType     = element.GetChildText(empty + "EntityIdType"),
                EntityName       = element.GetChildText(empty + "EntityName"),
                EntityName2      = element.GetChildText(empty + "EntityName2"),
                EntityName3      = element.GetChildText(empty + "EntityName3"),
                EntityDuns       = element.GetChildText(empty + "EntityDuns"),
                EntityIdCode     = element.GetChildText(empty + "EntityIdCode"),
                Address1         = element.GetChildText(empty + "Address1"),
                Address2         = element.GetChildText(empty + "Address2"),
                City             = element.GetChildText(empty + "City"),
                State            = element.GetChildText(empty + "State"),
                PostalCode       = element.GetChildText(empty + "PostalCode"),
                CountryCode      = element.GetChildText(empty + "CountryCode"),
                County           = element.GetChildText(empty + "County"),
                ContactCode      = element.GetChildText(empty + "ContactCode"),
                ContactName      = element.GetChildText(empty + "ContactName"),
                ContactPhoneNbr1 = element.GetChildText(empty + "ContactPhoneNbr1"),
                ContactPhoneNbr2 = element.GetChildText(empty + "ContactPhoneNbr2"),
                ContactPhoneNbr3 = element.GetChildText(empty + "ContactPhoneNbr3"),
                EntityFirstName  = element.GetChildText(empty + "EntityFirstName"),
                EntityLastName   = element.GetChildText(empty + "EntityLastName"),
                CustType         = element.GetChildText(empty + "CustType"),
                TaxingDistrict   = element.GetChildText(empty + "TaxingDistrict"),
                EntityMiddleName = element.GetChildText(empty + "EntityMiddleName"),
            };

            return(model);
        }
Beispiel #6
0
        public void ParseName(Prism814Context context, string[] marketFields)
        {
            var current = context.Current;

            if (current == null || current.ModelType != Type814Types.Header)
            {
                throw new InvalidOperationException();
            }

            var header = current as Type814Header;

            if (header == null)
            {
                throw new InvalidOperationException();
            }

            var model = new Type814Name
            {
                EntityIdType     = marketFields.AtIndex(2),
                EntityName2      = marketFields.AtIndex(5),
                EntityName3      = marketFields.AtIndex(6),
                Address1         = marketFields.AtIndex(7),
                Address2         = marketFields.AtIndex(8),
                City             = marketFields.AtIndex(9),
                State            = marketFields.AtIndex(10),
                PostalCode       = marketFields.AtIndex(11),
                ContactName      = marketFields.AtIndex(16),
                ContactPhoneNbr1 = marketFields.AtIndex(14),
                CountryCode      = marketFields.AtIndex(12),
                ContactPhoneNbr2 = marketFields.AtIndex(15),
            };

            marketFields.TryAtIndex(3, x => model.EntityName = x);

            header.AddName(model);
        }
Beispiel #7
0
        public void Should_Produce_The_Same_Content_As_A_Sample_File()
        {
            const string expectedContent =
                @"SH|SELTX183529049ENR|2276133|D|O|
01|SELTX183529049ENR|TX|Q|2276133||957877905|CENTERPOINT ENERGY|148055531|STARTEX POWER||20130309|||||24|ERCOT|183529049|
05|SELTX183529049ENR|8R|COTTONWOOD CAPITAL PROPERTY MANAGEMENT II LLC AS AGENT FOR T||||12700 STAFFORD RD BS2||STAFFORD|TX|77477|||2815648277|2815648277|FRANK MILLER||||||
10|SELTX183529049ENR|EL|CE|MVO|1|D|||||||||||||||||||||||||||||||||||||1008901023817063480105||||||||||||||||
11|SELTX183529049ENR|||||||||||||||20130312||||
TL|1";

            // arrange
            var port = new CspDunsPortModel
            {
                CspDunsId        = 1,
                CspDunsPortId    = 1,
                Duns             = "148055531",
                LdcDuns          = string.Empty,
                LdcShortName     = string.Empty,
                TradingPartnerId = "SELTX{DUNS}",
                ProviderId       = 1,
                FileType         = string.Empty,
            };

            var header = new Type814Header
            {
                HeaderKey = 3893482,
                TransactionSetPurposeCode = "Q",
                TransactionNbr            = "2276133",
                TransactionDate           = "20130309",
                ActionCode             = "24",
                TdspDuns               = "957877905",
                TdspName               = "Centerpoint Energy",
                CrDuns                 = "148055531",
                CrName                 = "StarTex Power",
                TransactionTypeId      = 13,
                MarketId               = 1,
                ProviderId             = 1,
                TransactionQueueTypeId = 1,
                ReferenceNbr           = string.Empty,
            };

            var name = new Type814Name
            {
                HeaderKey        = 3893482,
                NameKey          = 2470182,
                EntityIdType     = "8R",
                EntityName       = "COTTONWOOD CAPITAL PROPERTY MANAGEMENT II LLC AS AGENT FOR T",
                EntityName2      = string.Empty,
                EntityName3      = string.Empty,
                Address1         = "12700 STAFFORD RD BS2",
                Address2         = string.Empty,
                City             = "STAFFORD",
                State            = "TX",
                PostalCode       = "77477",
                ContactName      = "FRANK MILLER",
                ContactPhoneNbr1 = "281-564-8277",
                ContactPhoneNbr2 = string.Empty,
                EntityFirstName  = string.Empty,
                EntityLastName   = "Cottonwood Capital Property Management II LLC as ",
                EntityEmail      = string.Empty,
            };

            var service = new Type814Service
            {
                HeaderKey           = 3893482,
                ServiceKey          = 3892992,
                ServiceTypeCode1    = "SH",
                ServiceType1        = "EL",
                ServiceTypeCode2    = "SH",
                ServiceType2        = "CE",
                ServiceTypeCode3    = "SH",
                ServiceType3        = "MVO",
                MaintenanceTypeCode = "002",
                EsiId = "1008901023817063480105",
                SpecialNeedsIndicator = "N",
                SpecialReadSwitchDate = "20130312",
                EspAccountNumber      = "291920",
                PaymentOption         = "N",
            };

            clientDataAccess.Expect(x => x.ListCspDunsPort())
            .Return(new[] { port });

            clientDataAccess.Expect(x => x.IdentifyMarket(Arg <string> .Is.Anything))
            .Return(1);

            exportDataAccess.Expect(x => x.ListUnprocessed(Arg <string> .Is.Anything, Arg <string> .Is.Anything, Arg.Is(1)))
            .Return(new[] { header });

            exportDataAccess.Expect(x => x.ListNames(Arg <int> .Is.Anything))
            .Return(new[] { name });

            exportDataAccess.Expect(x => x.ListServices(Arg <int> .Is.Anything))
            .Return(new[] { service });

            exportDataAccess.Stub(x => x.ListServiceStatuses(Arg <int> .Is.Anything))
            .Return(new Type814ServiceStatus[0]);

            exportDataAccess.Stub(x => x.ListServiceRejects(Arg <int> .Is.Anything))
            .Return(new Type814ServiceReject[0]);

            exportDataAccess.Stub(x => x.ListServiceMeters(Arg <int> .Is.Anything))
            .Return(new Type814ServiceMeter[0]);

            // act
            var results = concern.Export(CancellationToken.None);

            // assert
            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Length);

            var result = results[0];

            Assert.IsNotNull(result);

            Assert.AreEqual(1, result.HeaderCount);
            CollectionAssert.Contains(result.HeaderKeys, 3893482);

            result.FinalizeDocument(1);
            Assert.AreEqual(expectedContent, result.Content);
        }