Esempio n. 1
0
        private static KeyValuePair <string, object>?GetD8FieldAndValue(PropertyInfo prop, object sourceObj)
        {
            var attr = FindThisAttribute(prop);

            if (attr == null)
            {
                return(null);
            }

            var key    = $"field_{GetFieldName(attr)}";
            var objVal = prop.GetValue(sourceObj);

            Func <object, object> func;

            if (_typFunctions.TryGetValue(prop.PropertyType, out func))
            {
                return(new KeyValuePair <string, object>
                           (key, D8HALJson.ValueField(func(objVal))));
            }
            else
            {
                return(new KeyValuePair <string, object>
                           (key, D8HALJson.ValueField(objVal)));
            }
        }
Esempio n. 2
0
        public async Task <NodeReply> PatchNode <T>(T node, CancellationToken cancelTkn, string revisionLog)
            where T : ID8Node
        {
            var url = string.Format(D8.NODE_X_FORMAT_HAL, node.nid);
            //var url  = string.Format(D8.NODE_X_REV_Y_FMT_HAL, node.nid, node.vid);
            var mapd = D8NodeMapper.Cast(node, BaseURL);

            if (!revisionLog.IsBlank())
            {
                var now = DateTime.Now.ToString("d MMM yyyy, h:mmtt");
                var log = $"[{Creds.Username}, {now}] {revisionLog}";
                mapd.Add("revision_log", D8HALJson.ValueField(log));
            }


            Dictionary <string, object> dict;

            try
            {
                dict = await BasicAuthPATCH
                       <Dictionary <string, object> >(url, mapd, cancelTkn);

                return(new NodeReply(dict));
            }
            catch (Exception ex)
            {
                return(NodeReply.Fail(ex));
            }
        }
Esempio n. 3
0
        private Mock <IR2RestClient> MockClientReturning(params R2PackagePart[] parts)
        {
            var moq = new Mock <IR2RestClient>();

            moq.Setup(x => x.List <R2PackagePart, PartsByPkgHash1>(Any.Tkn, Any.Text, Any.Text))
            .ReturnsAsync(parts.ToList());

            var dict = new Dictionary <string, object>();

            dict.Add("nid", Json.Serialize(D8HALJson.ValueField(123)));

            moq.Setup(x => x.PostNode(Any.Node, Any.Tkn))
            .ReturnsAsync(new NodeReply(dict));

            return(moq);
        }
Esempio n. 4
0
 internal static List <Dictionary <string, object> > ToD8Field <T>(T sourceObj) where T : ID8Node
 => D8HALJson.ValueField(GetPropertyValue(sourceObj)?.ToString());