예제 #1
0
        public int InsertHeader(Type997Header model)
        {
            using (var connection = new SqlConnection(connectionString))
                using (var command = connection.CreateCommand("csp997HeaderInsert"))
                {
                    SqlParameter keyParameter;

                    command.AddWithValue("MarketFileId", model.MarketFileId)
                    .AddIfNotEmptyOrDbNull("@FunctionalGroup", model.FunctionalGroup)
                    .AddIfNotEmptyOrDbNull("@TransactionNbr", model.TransactionNbr)
                    .AddIfNotEmptyOrDbNull("@AcknowledgeCode", model.AcknowledgeCode)
                    .AddIfNotEmptyOrDbNull("@TransactionSetsIncluded", model.TransactionSetsIncluded)
                    .AddIfNotEmptyOrDbNull("@TransactionSetsReceived", model.TransactionSetsReceived)
                    .AddIfNotEmptyOrDbNull("@TransactionSetsAccepted", model.TransactionSetsAccepted)
                    .AddIfNotEmptyOrDbNull("@SyntaxErrorCode1", model.SyntaxErrorCode1)
                    .AddIfNotEmptyOrDbNull("@SyntaxErrorCode2", model.SyntaxErrorCode2)
                    .AddIfNotEmptyOrDbNull("@SyntaxErrorCode3", model.SyntaxErrorCode3)
                    .AddIfNotEmptyOrDbNull("@SyntaxErrorCode4", model.SyntaxErrorCode4)
                    .AddIfNotEmptyOrDbNull("@SyntaxErrorCode5", model.SyntaxErrorCode5)
                    .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);
                }
        }
예제 #2
0
        public Type997Header ParseHeader(XElement element, IDictionary <string, XNamespace> namespaces)
        {
            XNamespace empty;

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

            var model = new Type997Header
            {
                AcknowledgeCode         = element.GetChildText(empty + "AcknowledgeCode"),
                FunctionalGroup         = element.GetChildText(empty + "FunctionalGroup"),
                SegmentCount            = element.GetChildText(empty + "SegmentCount"),
                SyntaxErrorCode1        = element.GetChildText(empty + "SyntaxErrorCode1"),
                SyntaxErrorCode2        = element.GetChildText(empty + "SyntaxErrorCode2"),
                SyntaxErrorCode3        = element.GetChildText(empty + "SyntaxErrorCode3"),
                SyntaxErrorCode4        = element.GetChildText(empty + "SyntaxErrorCode4"),
                SyntaxErrorCode5        = element.GetChildText(empty + "SyntaxErrorCode5"),
                TransactionNbr          = element.GetChildText(empty + "TransactionNbr"),
                TransactionSetsAccepted = element.GetChildText(empty + "TransactionSetsAccepted"),
                TransactionSetsIncluded = element.GetChildText(empty + "TransactionSetsIncluded"),
                TransactionSetsReceived = element.GetChildText(empty + "TransactionSetsReceived"),
            };

            var responseLoopElement = element.Element(empty + "ResponseLoop");

            if (responseLoopElement != null)
            {
                var nameElements = responseLoopElement.Elements(empty + "Response");
                foreach (var nameElement in nameElements)
                {
                    var responseModel = ParseResponse(nameElement, namespaces);
                    model.AddResponse(responseModel);
                }
            }

            return(model);
        }
예제 #3
0
        public void SaveHeader(Type997Header header)
        {
            logger.Trace("Start inserting header.");

            var headerKey = marketDataAccess.InsertHeader(header);

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

            foreach (var response in header.Responses)
            {
                response.HeaderKey = headerKey;
                var responseKey = marketDataAccess.InsertResponse(response);
                logger.DebugFormat("Inserted Response \"{0}\" for Header \"{1}\".", responseKey, headerKey);

                foreach (var note in response.Notes)
                {
                    note.ResponseKey = responseKey;
                    var noteKey = marketDataAccess.InsertResponseNote(note);
                    logger.DebugFormat("Inserted Response Note \"{0}\" for Response \"{1}\".", noteKey, responseKey);
                }
            }

            logger.Trace("Completed inserting header.");
        }
예제 #4
0
 public void SaveHeader(Type997Header header, int marketFileId)
 {
     header.MarketFileId = marketFileId;
     SaveHeader(header);
 }
예제 #5
0
 public void AddHeader(Type997Header item)
 {
     headers.Add(item);
 }