Example #1
0
        public void ParseDetail(Prism810Context context, string[] marketFields)
        {
            var current = context.Current;

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

            var header = current as Type810Header;

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

            var model = new Type810Detail
            {
                AssignedId             = marketFields.AtIndex(2),
                ServiceTypeCode        = "SV",
                ServiceType            = marketFields.AtIndex(3),
                ServiceClassCode       = "C3",
                ServiceClass           = marketFields.AtIndex(4),
                RateClass              = marketFields.AtIndex(11),
                RateSubClass           = marketFields.AtIndex(13),
                ServicePeriodStartDate = marketFields.AtIndex(6),
                ServicePeriodEndDate   = marketFields.AtIndex(7),
            };

            header.AddDetail(model);
            context.PushModel(model);
        }
Example #2
0
        public Type810Detail[] ListDetails(int headerKey)
        {
            using (var connection = new SqlConnection(connectionString))
                using (var command = connection.CreateCommand("esp_810DetailList"))
                {
                    command.AddWithValue("@HeaderKey", headerKey);

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

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

                            reader.TryGetString("AssignedId", x => item.AssignedId             = x);
                            reader.TryGetString("ServiceTypeCode", x => item.ServiceTypeCode   = x);
                            reader.TryGetString("ServiceType", x => item.ServiceType           = x);
                            reader.TryGetString("ServiceClassCode", x => item.ServiceClassCode = x);
                            reader.TryGetString("ServiceClass", x => item.ServiceClass         = x);
                            reader.TryGetString("RateClass", x => item.RateClass       = x);
                            reader.TryGetString("RateSubClass", x => item.RateSubClass = x);
                            reader.TryGetString("ServicePeriodStartDate", x => item.ServicePeriodStartDate = x);
                            reader.TryGetString("ServicePeriodEndDate", x => item.ServicePeriodEndDate     = x);
                            reader.TryGetString("MeterNumber", x => item.MeterNumber                   = x);
                            reader.TryGetString("BillCycle", x => item.BillCycle                       = x);
                            reader.TryGetString("GasPoolId", x => item.GasPoolId                       = x);
                            reader.TryGetString("ServiceAgreement", x => item.ServiceAgreement         = x);
                            reader.TryGetString("ServiceTypeCode2", x => item.ServiceTypeCode2         = x);
                            reader.TryGetString("ServiceType2", x => item.ServiceType2                 = x);
                            reader.TryGetString("ServiceTypeCode3", x => item.ServiceTypeCode3         = x);
                            reader.TryGetString("ServiceType3", x => item.ServiceType3                 = x);
                            reader.TryGetString("ServiceDeliveryPoint", x => item.ServiceDeliveryPoint = x);
                            reader.TryGetString("OldAccountNumber", x => item.OldAccountNumber         = x);
                            reader.TryGetString("RateCode", x => item.RateCode               = x);
                            reader.TryGetString("OldMeterNumber", x => item.OldMeterNumber   = x);
                            reader.TryGetString("TransferredDate", x => item.TransferredDate = x);
                            reader.TryGetString("InvoicePeriodStartDate", x => item.InvoicePeriodStartDate = x);
                            reader.TryGetString("InvoicePeriodEndDate", x => item.InvoicePeriodEndDate     = x);
                            reader.TryGetString("SupplierContractId", x => item.SupplierContractId         = x);
                            reader.TryGetString("UtilityContractId", x => item.UtilityContractId           = x);

                            collection.Add(item);
                        }

                        return(collection.ToArray());
                    }
                }
        }
Example #3
0
        public Type810Detail ParseDetail(XElement element, IDictionary <string, XNamespace> namespaces)
        {
            XNamespace empty;

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

            var model = new Type810Detail
            {
                AssignedId             = element.GetChildText(empty + "AssignedId"),
                ServiceTypeCode        = element.GetChildText(empty + "ServiceTypeCode"),
                ServiceType            = element.GetChildText(empty + "ServiceType"),
                ServiceClassCode       = element.GetChildText(empty + "ServiceClassCode"),
                ServiceClass           = element.GetChildText(empty + "ServiceClass"),
                RateClass              = element.GetChildText(empty + "RateClass"),
                RateSubClass           = element.GetChildText(empty + "RateSubClass"),
                ServicePeriodStartDate = element.GetChildText(empty + "ServicePeriodStartDate"),
                ServicePeriodEndDate   = element.GetChildText(empty + "ServicePeriodEndDate"),
                MeterNumber            = element.GetChildText(empty + "MeterNumber"),
                BillCycle              = element.GetChildText(empty + "BillCycle"),
                GasPoolId              = element.GetChildText(empty + "GasPoolId"),
                ServiceAgreement       = element.GetChildText(empty + "ServiceAgreement"),
                RateCode             = element.GetChildText(empty + "RateCode"),
                SupplierContractId   = element.GetChildText(empty + "SupplierContractID"),
                UtilityContractId    = element.GetChildText(empty + "UtilityContractID"),
                ServiceDeliveryPoint = element.GetChildText(empty + "ServiceDeliveryPoint"),
            };

            var itemLoopElement = element.Element(empty + "DetailItemLoop");

            if (itemLoopElement != null)
            {
                var itemElements = itemLoopElement.Elements(empty + "DetailItem");
                foreach (var itemElement in itemElements)
                {
                    var itemModel = ParseDetailItem(itemElement, namespaces);
                    model.AddItem(itemModel);
                }
            }

            var taxLoopElement = element.Element(empty + "DetailTaxLoop");

            if (taxLoopElement != null)
            {
                var taxElements = taxLoopElement.Elements(empty + "DetailTax");
                foreach (var taxElement in taxElements)
                {
                    var taxModel = ParseDetailTax(taxElement, namespaces);
                    model.AddTax(taxModel);
                }
            }

            return(model);
        }
Example #4
0
        public int InsertDetail(Type810Detail model)
        {
            using (var connection = new SqlConnection(connectionString))
                using (var command = connection.CreateCommand("csp810DetailInsert"))
                {
                    SqlParameter keyParameter;

                    command.AddWithValue("@810_Key", model.HeaderKey)
                    .AddWithValue("@AssignedId", model.AssignedId)
                    .AddWithValue("@ServiceTypeCode", model.ServiceTypeCode)
                    .AddWithValue("@ServiceType", model.ServiceType)
                    .AddWithValue("@ServiceClassCode", model.ServiceClassCode)
                    .AddWithValue("@ServiceClass", model.ServiceClass)
                    .AddWithValue("@RateClass", model.RateClass)
                    .AddWithValue("@RateSubClass", model.RateSubClass)
                    .AddWithValue("@ServicePeriodStartDate", model.ServicePeriodStartDate)
                    .AddWithValue("@ServicePeriodEndDate", model.ServicePeriodEndDate)
                    .AddWithValue("@MeterNumber", model.MeterNumber)
                    .AddWithValue("@BillCycle", model.BillCycle)
                    .AddWithValue("@GasPoolId", model.GasPoolId)
                    .AddWithValue("@ServiceAgreement", model.ServiceAgreement)
                    .AddWithValue("@RateCode", model.RateCode)
                    .AddWithValue("@SupplierContractID", model.SupplierContractId)
                    .AddWithValue("@UtilityContractID", model.UtilityContractId)
                    .AddOutParameter("@Detail_Key", SqlDbType.Int, out keyParameter);

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

                    command.ExecuteNonQuery();

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

                    var detailKey = (int)keyParameter.Value;
                    model.DetailKey = detailKey;

                    return(detailKey);
                }
        }
Example #5
0
        public Type810Detail[] ListDetails(int headerKey)
        {
            using (var connection = new SqlConnection(connectionString))
                using (var command = connection.CreateCommand("csp810ExportDetail"))
                {
                    command.AddWithValue("@810Key", headerKey);

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

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

                            reader.TryGetString("AssignedId", x => item.AssignedId             = x);
                            reader.TryGetString("ServiceTypeCode", x => item.ServiceTypeCode   = x);
                            reader.TryGetString("ServiceType", x => item.ServiceType           = x);
                            reader.TryGetString("ServiceClassCode", x => item.ServiceClassCode = x);
                            reader.TryGetString("ServiceClass", x => item.ServiceClass         = x);
                            reader.TryGetString("RateClass", x => item.RateClass       = x);
                            reader.TryGetString("RateSubClass", x => item.RateSubClass = x);
                            reader.TryGetString("ServicePeriodStartDate", x => item.ServicePeriodStartDate = x);
                            reader.TryGetString("ServicePeriodEndDate", x => item.ServicePeriodEndDate     = x);
                            reader.TryGetString("SupplierContractId", x => item.SupplierContractId         = x);
                            reader.TryGetString("UtilityContractId", x => item.UtilityContractId           = x);

                            collection.Add(item);
                        }

                        return(collection.ToArray());
                    }
                }
        }
Example #6
0
        public int InsertDetail(Type810Detail model)
        {
            using (var connection = new SqlConnection(connectionString))
                using (var command = connection.CreateCommand("csp810DetailInsert"))
                {
                    SqlParameter keyParameter;

                    // this differs from other imports as the import
                    // specifies the parameters that should be used
                    // the stored procedure takes many more parameters but...
                    command.AddWithValue("@810_Key", model.HeaderKey)
                    .AddWithValue("@AssignedId", model.AssignedId)
                    .AddWithValue("@ServiceTypeCode", model.ServiceTypeCode)
                    .AddWithValue("@ServiceType", model.ServiceType)
                    .AddWithValue("@ServiceClassCode", model.ServiceClassCode)
                    .AddWithValue("@ServiceClass", model.ServiceClass)
                    .AddWithValue("@RateClass", model.RateClass)
                    .AddWithValue("@RateSubClass", model.RateSubClass)
                    .AddWithValue("@ServicePeriodStartDate", model.ServicePeriodStartDate)
                    .AddWithValue("@ServicePeriodEndDate", model.ServicePeriodEndDate)
                    .AddOutParameter("@Detail_Key", SqlDbType.Int, out keyParameter);

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

                    command.ExecuteNonQuery();

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

                    var detailKey = (int)keyParameter.Value;
                    model.DetailKey = detailKey;

                    return(detailKey);
                }
        }