Beispiel #1
0
        public void SaveHeader(Type248Header header)
        {
            logger.Trace("Start inserting header.");

            var headerKey = marketDataAccess.InsertHeader(header);

            logger.InfoFormat("Inserted Header \"{0}\".", headerKey);

            foreach (var detail in header.Details)
            {
                detail.HeaderKey = headerKey;
                var detailKey = marketDataAccess.InsertDetail(detail);
                logger.DebugFormat("Inserted Detail \"{0}\" for Header \"{1}\".", detailKey, headerKey);
            }

            logger.Trace("Completed inserted header.");
        }
Beispiel #2
0
        public int InsertHeader(Type248Header model)
        {
            using (var connection = new SqlConnection(connectionString))
                using (var command = connection.CreateCommand("csp248HeaderInsert"))
                {
                    SqlParameter keyParameter;

                    command.AddWithValue("@MarketFileId", model.MarketFileId)
                    .AddIfNotEmptyOrDbNull("@ControlNbr", model.ControlNbr)
                    .AddIfNotEmptyOrDbNull("@StructureCode", model.StructureCode)
                    .AddIfNotEmptyOrDbNull("@TransactionSetPurposeCode", model.TransactionSetPurposeCode)
                    .AddIfNotEmptyOrDbNull("@TransactionReferenceNbr", model.TransactionReferenceNbr)
                    .AddIfNotEmptyOrDbNull("@TransactionDate", model.TransactionDate)
                    .AddIfNotEmptyOrDbNull("@TransactionTypeCode", model.TransactionTypeCode)
                    .AddIfNotEmptyOrDbNull("@CrDuns", model.CrDuns)
                    .AddIfNotEmptyOrDbNull("@CrName", model.CrName)
                    .AddIfNotEmptyOrDbNull("@LDCDuns", model.LDCDuns)
                    .AddIfNotEmptyOrDbNull("@LDCName", model.LDCName)
                    .AddIfNotEmptyOrDbNull("@SegmentCount", model.SegmentCount)
                    .AddWithValue("@Direction", true)
                    .AddWithValue("@ProcessFlag", DBNull.Value)
                    .AddWithValue("@ProcessDate", DBNull.Value)
                    .AddOutParameter("@Key", SqlDbType.Int, out keyParameter);

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

                    command.ExecuteNonQuery();

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

                    var headerKey = (int)keyParameter.Value;
                    model.HeaderKey = headerKey;

                    return(headerKey);
                }
        }
Beispiel #3
0
        public Type248Header ParseHeader(XElement element, IDictionary <string, XNamespace> namespaces)
        {
            XNamespace empty;

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

            var model = new Type248Header
            {
                ControlNbr                = element.GetChildText(empty + "ControlNbr"),
                CrDuns                    = element.GetChildText(empty + "CrDuns"),
                CrName                    = element.GetChildText(empty + "CrName"),
                LDCDuns                   = element.GetChildText(empty + "LDCDuns"),
                LDCName                   = element.GetChildText(empty + "LDCName"),
                SegmentCount              = element.GetChildText(empty + "SegmentCount"),
                StructureCode             = element.GetChildText(empty + "StructureCode"),
                TransactionDate           = element.GetChildText(empty + "TransactionDate"),
                TransactionReferenceNbr   = element.GetChildText(empty + "TransactionReferenceNbr"),
                TransactionSetPurposeCode = element.GetChildText(empty + "TransactionSetPurposeCode"),
                TransactionTypeCode       = element.GetChildText(empty + "TransactionTypeCode"),
            };

            var detailLoopElement = element.Element(empty + "DetailLoop");

            if (detailLoopElement != null)
            {
                var nameElements = detailLoopElement.Elements(empty + "Detail");
                foreach (var nameElement in nameElements)
                {
                    var detailModel = ParseDetail(nameElement, namespaces);
                    model.AddDetail(detailModel);
                }
            }

            return(model);
        }
Beispiel #4
0
 public void AddHeader(Type248Header item)
 {
     headers.Add(item);
 }
Beispiel #5
0
 public void SaveHeader(Type248Header header, int marketFileId)
 {
     header.MarketFileId = marketFileId;
     SaveHeader(header);
 }