public void WhenIBuildTheExpectedResponseForItem(int p0)
        {
            bool   singleResponse = (string)context[constants.responseScope] == constants.resultSingle;
            string json           = "";

            if (singleResponse)
            {
                string    uri           = context.GetUri(p0 - 1);
                _DataItem requestedItem = context.GetDataItems()[p0 - 1];

                json = JsonConvert.SerializeObject(requestedItem.model);

                json = AddLinksToJson(json, requestedItem);
            }
            else
            {
                JArray newArray = new JArray();
                string jsonItem = "";
                // assume for now that all data items are of the requested type
                foreach (var item in context.GetDataItems())
                {
                    jsonItem = JsonConvert.SerializeObject(item.model);
                    //TODO remove properties that aren't in expected summary
                    //FORNOW assume it is going to be a sharecontent item and just remove "content"
                    jsonItem = JsonHelper.RemovePropertyFromJsonString(jsonItem, "Content");
                    newArray.Add(new JObject(JObject.Parse(jsonItem)));
                }
                json = newArray.ToString();
            }
            context["expectedResult"] = json;
        }
        public void GivenICreateAnItemOfInTheGraphRelatedByToItemWithTheFollowingData(string type, string graph, string relationship, int itemRef, Table dataTable)
        {
            // assume non zero based index is supplied
            string contentTypeName = context.ReplaceTokensInString(type);
            var    item            = InsertSharedContent(contentTypeName, dataTable, graph);

            _DataItem parentItem = context.GetDataItems()[itemRef - 1];

            AddRelationship(context.GetUri(itemRef - 1), context.GetLatestUri(), relationship, graph);
            context.RelateDataItems(itemRef - 1, context.GetNumberOfStoredUris() - 1, item.Title, relationship);
        }
コード例 #3
0
        public static void TestHNLYFLKToMes()
        {
            MessageSerialXml messageSerialXml = new MessageSerialXml();
            MessageSerialXml obj = new MessageSerialXml();

            _FieldItem[] headFieldItems = new _FieldItem[7];
            for (int i = 0; i < 7; i++)
            {
                headFieldItems[i] = new _FieldItem();
            }
            #region 添加头部headFieldItems信息
            headFieldItems[0].isPrimaryKey = "True";
            headFieldItems[0].Remark       = "必传(外键,复合主键)";
            headFieldItems[0].FieldLength  = "30";
            headFieldItems[0].FieldType    = "CHAR";
            headFieldItems[0].Caption      = "工单号";
            headFieldItems[0].FieldName    = "WO_NO";

            headFieldItems[1].isPrimaryKey = "False";
            headFieldItems[1].Remark       = "必传(格式:yyyy-MM-dd)";
            headFieldItems[1].FieldLength  = "19";
            headFieldItems[1].FieldType    = "DATE";
            headFieldItems[1].Caption      = "生产日期";
            headFieldItems[1].FieldName    = "PRODUCTION_DATE";

            headFieldItems[2].isPrimaryKey = "False";
            headFieldItems[2].Remark       = "必传(1:夜,2:白,3:中)";
            headFieldItems[2].FieldLength  = "25";
            headFieldItems[2].FieldType    = "CHAR";
            headFieldItems[2].Caption      = "班次";
            headFieldItems[2].FieldName    = "SHIFT_CD";

            headFieldItems[3].isPrimaryKey = "False";
            headFieldItems[3].Remark       = "必传(1:甲,2:乙,3:丙,4:丁)";
            headFieldItems[3].FieldLength  = "25";
            headFieldItems[3].FieldType    = "CHAR";
            headFieldItems[3].Caption      = "班组";
            headFieldItems[3].FieldName    = "TEAM_CD";

            headFieldItems[4].isPrimaryKey = "False";
            headFieldItems[4].Remark       = "必传";
            headFieldItems[4].FieldLength  = "25";
            headFieldItems[4].FieldType    = "CHAR";
            headFieldItems[4].Caption      = "机台";
            headFieldItems[4].FieldName    = "MACHINE_CD";

            headFieldItems[5].isPrimaryKey = "False";
            headFieldItems[5].Remark       = "必传";
            headFieldItems[5].FieldLength  = "25";
            headFieldItems[5].FieldType    = "CHAR";
            headFieldItems[5].Caption      = "牌号";
            headFieldItems[5].FieldName    = "MAT_CD";

            headFieldItems[6].isPrimaryKey = "False";
            headFieldItems[6].Remark       = "必传(格式:yyyy-MM-dd hh24:mi:ss)";
            headFieldItems[6].FieldLength  = "19";
            headFieldItems[6].FieldType    = "DATE";
            headFieldItems[6].Caption      = "工单开始时间";
            headFieldItems[6].FieldName    = "WO_START_DATETIME";
            #endregion
            obj.Head                        = new _Head();
            obj.Head.DataDefine             = new _DataDefine();
            obj.Head.DataDefine.TableSet    = new _Table[1];
            obj.Head.DataDefine.TableSet[0] = new _Table();
            obj.Head.DataDefine.TableSet[0].FieldItemSet = headFieldItems;

            _DataItem[] dataFieldItems = new _DataItem[7];
            for (int i = 0; i < 7; i++)
            {
                dataFieldItems[i] = new _DataItem();
            }
            #region 添加数据dataFieldItems
            dataFieldItems[0].FieldName  = "MACHINE_CD";
            dataFieldItems[0].FieldValue = "";
            dataFieldItems[1].FieldName  = "MAT_CD";
            dataFieldItems[1].FieldValue = "";
            dataFieldItems[2].FieldName  = "PRODUCTION_DATE";
            dataFieldItems[2].FieldValue = "";
            dataFieldItems[3].FieldName  = "WO_NO";
            dataFieldItems[3].FieldValue = "";
            dataFieldItems[4].FieldName  = "TEAM_CD";
            dataFieldItems[4].FieldValue = "";
            dataFieldItems[5].FieldName  = "SHIFT_CD";
            dataFieldItems[5].FieldValue = "";
            dataFieldItems[6].FieldName  = "WO_END_DATETIME";
            dataFieldItems[6].FieldValue = "";
            dataFieldItems[6].FieldName  = "WO_START_DATETIME";
            dataFieldItems[6].FieldValue = "";
            #endregion
            obj.Data = new _Data();
            obj.Data.DataTableSet                                 = new _DataTable[1];
            obj.Data.DataTableSet[0]                              = new _DataTable();
            obj.Data.DataTableSet[0].RowSet                       = new _Row[1];
            obj.Data.DataTableSet[0].RowSet[0]                    = new _Row();
            obj.Data.DataTableSet[0].RowSet[0].Header             = new _Header();
            obj.Data.DataTableSet[0].RowSet[0].Header.DataItemSet = dataFieldItems;

            obj.Head.InterfaceCode        = "HNZY_ESB_AYMES_JBSC_SCGL_GDKS";
            obj.Head.InterfaceDescription = "工单开始";
            obj.Head.MsgID           = "CC14702D-B610-470D-B267-4474A5D8D7DD";
            obj.Head.Source          = "AYJBSC";
            obj.Head.MsgMark         = "HNZY_ESB_AYMES_JBSC";
            obj.Head.WsMethod        = "JBSC_SCGL_GDKS";
            obj.Head.Date            = DateTime.Now.ToString();
            obj.Head.User            = "******";
            obj.Head.StateCode       = "600";
            obj.Head.StateDesription = "正常发送";


            var reqXml = (new XMLUtils()).serialXml <MessageSerialXml>(obj);
            Console.WriteLine("<Result:");
            Console.WriteLine(reqXml);
        }
        public string AddLinksToJson(string json, _DataItem item)
        {
            int    count = item.Uri.Count(f => f == '/');
            string curie = GetNth(item.Uri, '/', count - 1);
            string id    = item.Uri.Substring(item.Uri.LastIndexOf("/") + 1);


            JObject linkDetails = new JObject();

            var groups = item.linkedItems.Select(x => x.RelationshipType)
                         .GroupBy(r => r)
                         .Select(g => new { Name = g.Key.ToString(), Count = g.Count() })
                         .OrderBy(o => o.Name);

            if (groups.Count() > 0)
            {
                linkDetails.Add(new JProperty("self", item.Uri));
                linkDetails.Add(new JProperty("curies",
                                              new JArray(
                                                  new JObject(
                                                      new JProperty("name", "cont"),
                                                      new JProperty("href", curie)
                                                      )
                                                  )
                                              )
                                );
            }

            foreach (var group in groups)
            {
                bool       asArray      = group.Count > 1;
                JContainer groupMembers = linkDetails;
                if (asArray)
                {
                    groupMembers = new JArray();
                }

                foreach (var linkItem in item.linkedItems.Where(x => x.RelationshipType == group.Name).OrderByDescending(x => x.Title))
                {
                    JObject link = new JObject(
                        new JProperty("href", linkItem.RelatedItem.Uri.Replace(curie, string.Empty)),
                        new JProperty("title", linkItem.Title),
                        new JProperty("contentType", linkItem.RelatedItem.TypeName)
                        );
                    if (asArray)
                    {
                        groupMembers.Add(link);
                    }
                    else
                    {
                        groupMembers.Add(new JProperty($"cont:{linkItem.RelationshipType}", link));
                    }
                }
                if (asArray)
                {
                    linkDetails.Add(new JProperty($"cont:{group.Name}", groupMembers));
                }
            }
            json = JsonHelper.AddPropertyToJsonString(json, "id", id);
            json = JsonHelper.AddPropertyToJsonString(json, "_links", linkDetails);
            return(json);
        }