Compare commits
5 Commits
09023ddc86
...
e28fb4bc11
| Author | SHA1 | Date | |
|---|---|---|---|
| e28fb4bc11 | |||
| ed912d20cb | |||
| c648b3c6ad | |||
| ce7dd5f949 | |||
| c0b0c70785 |
@ -1 +1 @@
|
||||
Subproject commit 2cedd6600d418723ec97f51b28cd9e1c31ff8d30
|
||||
Subproject commit 5a411ddf69be2a2f32c601fe57004e839e3805c0
|
||||
@ -304,7 +304,11 @@ namespace Mocha.Core
|
||||
// BWSR - Build Web Service Response Method - 171
|
||||
// GRE - Get Referenced Element Method - 197
|
||||
public static Guid GetRelationshipMethod { get; } = new Guid("{d53c9232-89ef-4cca-8520-261da6787450}"); // 207
|
||||
// IWS - Invoke Web Service Method - 208
|
||||
/// <summary>
|
||||
/// IWS - Invoke Web Service Method [1$208]
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static Guid InvokeWebServiceMethod { get; } = new Guid("{26d9e733-50a0-49f7-9b2c-2142934e3952}");
|
||||
public static Guid InstanceOpMethod { get; } = new Guid("{4c814982-938f-4116-bdc1-827bae6a5f71}");
|
||||
public static Guid ConditionalSelectAttributeMethod { get; } = new Guid("{d534a369-321e-4c32-bd7f-8ff2017f191e}"); // 13038
|
||||
// SSC - Conditional Select from Instance Set Method - 13039
|
||||
@ -458,6 +462,7 @@ namespace Mocha.Core
|
||||
{
|
||||
public static Guid Minimum { get; } = new Guid("{1ff7be8c-fe48-4154-9028-8ee84b7dc367}");
|
||||
public static Guid Maximum { get; } = new Guid("{dda6c31d-5bea-41a9-a6bc-0e5c189784da}");
|
||||
public static Guid First { get; } = new Guid("{4a196b8f-ca55-4f3a-a443-f960bfdb3bc6}");
|
||||
}
|
||||
public static class RelationalOperators
|
||||
{
|
||||
@ -547,5 +552,11 @@ namespace Mocha.Core
|
||||
public static Guid Complement { get; } = new Guid("{fa69b904-315b-4bb1-80a6-c71708fbfde5}");
|
||||
public static Guid Difference { get; } = new Guid("{ec67f62d-387c-4179-9b03-0d9b70195688}");
|
||||
}
|
||||
public static class WebServiceInvocationTypes
|
||||
{
|
||||
public static Guid BasicAuth { get; } = new Guid("{88372a06-7025-4e08-880e-7bc472e77003}");
|
||||
public static Guid OAuth2 { get; } = new Guid("{9e62468f-0c8e-49ad-a61b-839bdb3509ac}");
|
||||
public static Guid Microsoft { get; } = new Guid("{bd9cc03f-a0c1-4815-95b9-d7d3d21599a8}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -472,5 +472,14 @@ namespace Mocha.Core
|
||||
public static Guid Filter_By_Type_Op__uses__Class { get; } = new Guid("{2f5fddc8-5ab0-4c59-8a83-536a2ce0a30c}");
|
||||
|
||||
public static Guid Combine_Sets_Op__uses__Set_Function { get; } = new Guid("{b20e54d4-2535-44c0-8c99-0411f27a69df}");
|
||||
|
||||
|
||||
public static Guid Invoke_Web_Service_Method__has_user_id__Executable_returning_Attribute { get; } = new Guid("{dc567ccc-ec9f-4e8b-b698-fb52bb21502a}");
|
||||
public static Guid Invoke_Web_Service_Method__has_password__Executable_returning_Attribute { get; } = new Guid("{b7d8ac3b-9419-4a49-8ebf-22aa08d9ff16}");
|
||||
public static Guid Invoke_Web_Service_Method__has_destination_url__Executable_returning_Attribute { get; } = new Guid("{bbd9b5a7-041f-4fb3-a8c1-2889ff2e17a7}");
|
||||
public static Guid Invoke_Web_Service_Method__has__Web_Service_Invocation_Type { get; } = new Guid("{429218f8-0ea7-4177-83be-74efe59b65b1}");
|
||||
public static Guid Invoke_Web_Service_Method__uses__Executable_returning_Element { get; } = new Guid("{020e26ba-565d-47a4-bdcc-f0050ff6b848}");
|
||||
public static Guid Invoke_Web_Service_Method__correlated_instances_from__Executable_returning_Instance_Set { get; } = new Guid("{8f1406b4-f48f-45fb-a6ef-2ad51998735f}");
|
||||
public static Guid Invoke_Web_Service_Method__has_error__Executable_returning_Element { get; } = new Guid("{86aa5338-d913-4044-af8d-7aa4e1a9ddbc}");
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,6 +62,16 @@ public class BuildAttributeMethodImplementation : MethodImplementation
|
||||
}
|
||||
context.SetWorkData(returnsAttribute, value);
|
||||
}
|
||||
else if (oms.IsInstanceOf(returnsAttribute, oms.GetInstance(KnownInstanceGuids.Classes.BooleanAttribute)))
|
||||
{
|
||||
object? value = oms.UnsafeGetAttributeValue(method, oms.GetInstance(KnownAttributeGuids.Text.Value)); // initial value
|
||||
|
||||
if (value is string)
|
||||
{
|
||||
bool val = Boolean.Parse((string)value);
|
||||
context.SetWorkData(returnsAttribute, val);
|
||||
}
|
||||
}
|
||||
else if (oms.IsInstanceOf(returnsAttribute, oms.GetInstance(KnownInstanceGuids.Classes.NumericAttribute)))
|
||||
{
|
||||
object? value = oms.UnsafeGetAttributeValue(method, oms.GetInstance(KnownAttributeGuids.Numeric.Value)); // initial value
|
||||
|
||||
@ -1,8 +1,5 @@
|
||||
|
||||
using System.Text.Json.Nodes;
|
||||
using System.Threading.Tasks.Dataflow;
|
||||
using Mocha.Core.Oop;
|
||||
using Mocha.Core.UI;
|
||||
|
||||
namespace Mocha.Core.MethodImplementations;
|
||||
|
||||
@ -23,16 +20,35 @@ public class BuildElementMethodImplementation : MethodImplementation
|
||||
|
||||
InstanceHandle bemProcess = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Build_Element_Method__has__BEM_Process));
|
||||
|
||||
InstanceHandle loopInstanceSet = oms.GetRelatedInstance(bemProcess, oms.GetInstance(KnownRelationshipGuids.BEM_Process__uses_loop__Executable_returning_Instance_Set));
|
||||
object? instanceSet = oms.Evaluate(context, loopInstanceSet, InstanceHandle.Empty);
|
||||
if (instanceSet is IEnumerable<InstanceHandle> ihs)
|
||||
JsonArray objECs = new JsonArray();
|
||||
IEnumerable<InstanceHandle> elementContents = oms.GetRelatedInstances(element, oms.GetInstance(KnownRelationshipGuids.Element__has__Element_Content));
|
||||
foreach (InstanceHandle elementContent in elementContents)
|
||||
{
|
||||
JsonObject obj = BuildGrid(oms, element, ihs);
|
||||
context.SetWorkData(element, obj);
|
||||
InstanceHandle elementContentInstance = oms.GetRelatedInstance(elementContent, oms.GetInstance(KnownRelationshipGuids.Element_Content__has__Instance));
|
||||
IEnumerable<InstanceHandle> elementContentDisplayOptions = oms.GetRelatedInstances(elementContent, oms.GetInstance(KnownRelationshipGuids.Element_Content__has__Element_Content_Display_Option));
|
||||
JsonObject objEC = BuildElementContent(oms, elementContentInstance, elementContent);
|
||||
objECs.Add(objEC);
|
||||
}
|
||||
|
||||
InstanceHandle loopInstanceSet = oms.GetRelatedInstance(bemProcess, oms.GetInstance(KnownRelationshipGuids.BEM_Process__uses_loop__Executable_returning_Instance_Set));
|
||||
if (loopInstanceSet != InstanceHandle.Empty)
|
||||
{
|
||||
object? instanceSet = oms.Evaluate(context, loopInstanceSet, InstanceHandle.Empty);
|
||||
if (instanceSet is IEnumerable<InstanceHandle> ihs)
|
||||
{
|
||||
JsonObject obj = BuildGrid(oms, element, ihs);
|
||||
context.SetWorkData(element, obj);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
JsonObject objR = new JsonObject();
|
||||
objR.Add("children", objECs);
|
||||
context.SetWorkData(element, objR);
|
||||
return element;
|
||||
}
|
||||
return element;
|
||||
}
|
||||
}
|
||||
|
||||
private JsonObject BuildGrid(Oms oms, InstanceHandle element, IEnumerable<InstanceHandle> instances)
|
||||
{
|
||||
@ -66,7 +82,7 @@ public class BuildElementMethodImplementation : MethodImplementation
|
||||
j = 1;
|
||||
foreach (InstanceHandle ihCol in ihCols)
|
||||
{
|
||||
JsonObject objCell = BuildGridCell(oms, ih, ihCol);
|
||||
JsonObject objCell = BuildElementContent(oms, ih, ihCol);
|
||||
objCells.Add("46." + j.ToString(), objCell);
|
||||
j++;
|
||||
}
|
||||
@ -78,9 +94,9 @@ public class BuildElementMethodImplementation : MethodImplementation
|
||||
}
|
||||
obj.Add("rows", aryRows);
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
|
||||
private JsonObject BuildGridColumn(Oms oms, InstanceHandle elementContent, int index)
|
||||
private JsonObject BuildGridColumn(Oms oms, InstanceHandle elementContent, int index)
|
||||
{
|
||||
JsonObject objCol = new JsonObject();
|
||||
objCol.Add("widget", "column");
|
||||
@ -102,9 +118,9 @@ public class BuildElementMethodImplementation : MethodImplementation
|
||||
objCol.Add("sortableAndFilterable", true);
|
||||
// objCol.Add("propertyName", "");
|
||||
return objCol;
|
||||
}
|
||||
}
|
||||
|
||||
private JsonObject BuildGridCell(Oms oms, InstanceHandle targetInstance, InstanceHandle elementContent)
|
||||
private JsonObject BuildElementContent(Oms oms, InstanceHandle targetInstance, InstanceHandle elementContent)
|
||||
{
|
||||
JsonObject objCell = new JsonObject();
|
||||
objCell.Add("ecid", oms.GetInstanceKey(elementContent).ToString());
|
||||
@ -127,7 +143,14 @@ public class BuildElementMethodImplementation : MethodImplementation
|
||||
if (oms.IsInstanceOf(ecInst, oms.GetInstance(KnownInstanceGuids.Classes.TextAttribute)))
|
||||
{
|
||||
objCell.Add("widget", "text");
|
||||
objCell.Add("value", oms.GetAttributeValue<string>(targetInstance, ecInst));
|
||||
if (targetInstance == InstanceHandle.Empty)
|
||||
{
|
||||
objCell.Add("value", oms.GetAttributeValue<string>(ecInst, oms.GetInstance(KnownAttributeGuids.Text.Value)));
|
||||
}
|
||||
else
|
||||
{
|
||||
objCell.Add("value", oms.GetAttributeValue<string>(targetInstance, ecInst));
|
||||
}
|
||||
}
|
||||
else if (oms.IsInstanceOf(ecInst, oms.GetInstance(KnownInstanceGuids.Classes.BooleanAttribute)))
|
||||
{
|
||||
@ -161,5 +184,5 @@ public class BuildElementMethodImplementation : MethodImplementation
|
||||
objCell.Add("widget", "monikerList");
|
||||
}
|
||||
return objCell;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,80 @@
|
||||
// Copyright (C) 2024 Michael Becker <alcexhim@gmail.com>
|
||||
//
|
||||
// This file is part of Mocha.NET.
|
||||
//
|
||||
// Mocha.NET is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Mocha.NET is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
using System.Text.Json.Nodes;
|
||||
|
||||
namespace Mocha.Core.MethodImplementations;
|
||||
|
||||
public class InvokeWebServiceMethodImplementation : MethodImplementation
|
||||
{
|
||||
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.InvokeWebServiceMethod;
|
||||
|
||||
|
||||
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
|
||||
{
|
||||
InstanceHandle r_Method__for__Class = oms.GetInstance(KnownRelationshipGuids.Method__for__Class);
|
||||
|
||||
InstanceHandle userIdAttribute = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Invoke_Web_Service_Method__has_user_id__Executable_returning_Attribute));
|
||||
string userId = oms.Evaluate<string>(context, userIdAttribute);
|
||||
|
||||
InstanceHandle passwordAttribute = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Invoke_Web_Service_Method__has_password__Executable_returning_Attribute));
|
||||
string password = oms.Evaluate<string>(context, passwordAttribute);
|
||||
|
||||
InstanceHandle destinationUrlAttribute = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Invoke_Web_Service_Method__has_destination_url__Executable_returning_Attribute));
|
||||
string destinationUrl = oms.Evaluate<string>(context, destinationUrlAttribute);
|
||||
|
||||
InstanceHandle errorElement = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Invoke_Web_Service_Method__has_error__Executable_returning_Element));
|
||||
|
||||
using (HttpClient client = new HttpClient())
|
||||
{
|
||||
HttpRequestMessage req = new HttpRequestMessage(HttpMethod.Get, new Uri(destinationUrl));
|
||||
try
|
||||
{
|
||||
HttpResponseMessage resp = client.Send(req);
|
||||
}
|
||||
catch (HttpRequestException ex)
|
||||
{
|
||||
if (errorElement != InstanceHandle.Empty)
|
||||
{
|
||||
JsonObject errorJson = oms.Evaluate<JsonObject>(context, errorElement, new KeyValuePair<InstanceHandle, object?>[]
|
||||
{
|
||||
new KeyValuePair<InstanceHandle, object?>(oms.GetInstance(KnownAttributeGuids.Text.Value), 404)
|
||||
}, null, out InstanceHandle ws);
|
||||
|
||||
InstanceHandle hElement = FindElementFromExecutable(oms, errorElement);
|
||||
context.SetWorkData(hElement, errorJson);
|
||||
return hElement;
|
||||
}
|
||||
}
|
||||
}
|
||||
return InstanceHandle.Empty;
|
||||
}
|
||||
|
||||
private InstanceHandle FindElementFromExecutable(Oms oms, InstanceHandle exec)
|
||||
{
|
||||
if (oms.IsInstanceOf(exec, oms.GetInstance(KnownInstanceGuids.Classes.ReturnElementMethodBinding)))
|
||||
{
|
||||
InstanceHandle executesMethod = oms.GetRelatedInstance(exec, oms.GetInstance(KnownRelationshipGuids.Method_Binding__executes__Method));
|
||||
return FindElementFromExecutable(oms, executesMethod);
|
||||
}
|
||||
else if (oms.IsInstanceOf(exec, oms.GetInstance(KnownInstanceGuids.MethodClasses.BuildElementMethod)))
|
||||
{
|
||||
return oms.GetRelatedInstance(exec, oms.GetInstance(KnownRelationshipGuids.Build_Element_Method__returns__Element));
|
||||
}
|
||||
return InstanceHandle.Empty;
|
||||
}
|
||||
}
|
||||
@ -15,9 +15,6 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
using System.ComponentModel.Design;
|
||||
using Mocha.Core.Oop;
|
||||
|
||||
namespace Mocha.Core.MethodImplementations;
|
||||
|
||||
public class SelectFromInstanceSetMethodImplementation : MethodImplementation
|
||||
@ -27,10 +24,16 @@ public class SelectFromInstanceSetMethodImplementation : MethodImplementation
|
||||
public string Order;
|
||||
public object Data;
|
||||
}
|
||||
private struct OrderableData<T>
|
||||
{
|
||||
public string Order;
|
||||
public T Data;
|
||||
}
|
||||
|
||||
public override Guid MethodClassGuid => KnownInstanceGuids.MethodClasses.SelectFromInstanceSetMethod;
|
||||
protected override InstanceHandle ExecuteInternal(Oms oms, OmsContext context, InstanceHandle method)
|
||||
{
|
||||
//! FIXME !
|
||||
Guid methodId = oms.GetGlobalIdentifier(method);
|
||||
|
||||
InstanceHandle irForClass = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Method__for__Class));
|
||||
@ -43,32 +46,31 @@ public class SelectFromInstanceSetMethodImplementation : MethodImplementation
|
||||
}
|
||||
|
||||
InstanceHandle usesInstanceSet = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Select_from_Instance_Set_Method__uses__Executable_returning_Instance_Set));
|
||||
object? instanceSetValues = context.GetWorkData(usesInstanceSet);
|
||||
// object? instanceSetValues = context.GetWorkData(usesInstanceSet);
|
||||
object? instanceSetValues = oms.Evaluate(context, usesInstanceSet, InstanceHandle.Empty);
|
||||
|
||||
InstanceHandle selectionFunction = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Select_from_Instance_Set_Method__uses__Selection_Function));
|
||||
InstanceHandle setFunction = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Select_from_Instance_Set_Method__uses__Set_Function));
|
||||
InstanceHandle orderAttribute = oms.GetRelatedInstance(method, oms.GetInstance(KnownRelationshipGuids.Select_from_Instance_Set_Method__uses_order__Executable_returning_Attribute));
|
||||
|
||||
List<OrderableData> list = new List<OrderableData>();
|
||||
List<OrderableData<IInstanceReference>> list = new List<OrderableData<IInstanceReference>>();
|
||||
|
||||
if (instanceSetValues is IEnumerable<InstanceHandle>)
|
||||
if (instanceSetValues is System.Collections.IEnumerable ie)
|
||||
{
|
||||
|
||||
}
|
||||
else if (instanceSetValues is IEnumerable<InstanceWrapper>)
|
||||
{
|
||||
IEnumerable<InstanceWrapper> vals = (IEnumerable<InstanceWrapper>)instanceSetValues;
|
||||
foreach (InstanceWrapper inst in vals)
|
||||
// here we use the non-generic IEnumerable so we can handle cases where
|
||||
// you would pass in an IEnumerable<IInstanceReference>, IEnumerable<InstanceHandle>,
|
||||
// or IEnumerable<InstanceWrapper>. Hell, you could even pass in an IEnumerable<object>
|
||||
// as long as each element in the IEnumerable was some sort of IInstanceReference!
|
||||
foreach (object o in ie)
|
||||
{
|
||||
if (inst != null)
|
||||
if (o is IInstanceReference ir)
|
||||
{
|
||||
OrderableData od = new OrderableData();
|
||||
od.Data = inst.GetHandle();
|
||||
OrderableData<IInstanceReference> od = new OrderableData<IInstanceReference>();
|
||||
od.Data = ir.GetHandle();
|
||||
if (orderAttribute != InstanceHandle.Empty)
|
||||
{
|
||||
InstanceHandle ihWorkData = oms.Execute(context, orderAttribute, inst.GetHandle());
|
||||
string order = context.GetWorkData<string>(ihWorkData);
|
||||
|
||||
InstanceHandle ihWorkData = oms.Execute(context, orderAttribute, ir.GetHandle());
|
||||
string order = context.GetWorkData<string>(ihWorkData, String.Empty);
|
||||
od.Order = order;
|
||||
}
|
||||
else
|
||||
@ -79,23 +81,40 @@ public class SelectFromInstanceSetMethodImplementation : MethodImplementation
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
// throw new NotSupportedException();
|
||||
// design decision: should we silently exclude non-IInstanceReference items since we could
|
||||
// theoretically support IEnumerable<object>? or should we force users to do the Right Thing(tm)?
|
||||
}
|
||||
}
|
||||
|
||||
list.Sort((c, d) => c.Order.CompareTo(d.Order));
|
||||
}
|
||||
list.Sort((c, d) => c.Order.CompareTo(d.Order));
|
||||
|
||||
if (list.Count > 0)
|
||||
{
|
||||
// FIXME: this assumes a hardcoded singular work set
|
||||
if (selectionFunction == oms.GetInstance(KnownInstanceGuids.SelectionFunctions.Minimum))
|
||||
bool returnsWorkSetIsSingular = oms.GetAttributeValue<bool>(returnsWorkSet, oms.GetInstance(KnownAttributeGuids.Boolean.Singular));
|
||||
|
||||
IEnumerable<InstanceHandle> retval = [ ];
|
||||
if (selectionFunction == oms.GetInstance(KnownInstanceGuids.SelectionFunctions.First))
|
||||
{
|
||||
context.SetWorkData(returnsWorkSet, list[0].Data);
|
||||
retval = [ list.First().Data.GetHandle() ];
|
||||
}
|
||||
// FIXME: this assumes a hardcoded singular work set
|
||||
else if (selectionFunction == oms.GetInstance(KnownInstanceGuids.SelectionFunctions.Minimum))
|
||||
{
|
||||
retval = [ list.First().Data.GetHandle() ];
|
||||
}
|
||||
else if (selectionFunction == oms.GetInstance(KnownInstanceGuids.SelectionFunctions.Maximum))
|
||||
{
|
||||
context.SetWorkData(returnsWorkSet, list[list.Count - 1].Data);
|
||||
retval = [ list.Last().Data.GetHandle() ];
|
||||
}
|
||||
|
||||
if (returnsWorkSetIsSingular)
|
||||
{
|
||||
context.SetWorkData(returnsWorkSet, retval.First());
|
||||
}
|
||||
else
|
||||
{
|
||||
context.SetWorkData(returnsWorkSet, retval);
|
||||
}
|
||||
}
|
||||
return returnsWorkSet;
|
||||
|
||||
@ -2599,9 +2599,44 @@ public abstract class Oms
|
||||
throw new FormatException();
|
||||
}
|
||||
|
||||
public T Evaluate<T>(OmsContext context, object? workDataObject, IEnumerable<KeyValuePair<InstanceHandle, object?>>? parms = null, T defaultValue = default(T))
|
||||
{
|
||||
InstanceHandle ws = InstanceHandle.Empty;
|
||||
return Evaluate<T>(context, workDataObject, parms, defaultValue, out ws);
|
||||
}
|
||||
public T Evaluate<T>(OmsContext context, object? workDataObject, IEnumerable<KeyValuePair<InstanceHandle, object?>>? parms, T defaultValue, out InstanceHandle returnedWorkData)
|
||||
{
|
||||
object? value = Evaluate(context, workDataObject, InstanceHandle.Empty, parms, defaultValue, out returnedWorkData);
|
||||
if (value is T)
|
||||
{
|
||||
return (T)value;
|
||||
}
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
public object? Evaluate(OmsContext context, object? workDataObject, InstanceHandle sourceInstance, object? defaultValue = null)
|
||||
{
|
||||
return Evaluate(context, workDataObject, sourceInstance, null, defaultValue);
|
||||
}
|
||||
|
||||
public object? Evaluate(OmsContext context, object? workDataObject, InstanceHandle sourceInstance, IEnumerable<KeyValuePair<InstanceHandle, object?>>? parms, object? defaultValue = null)
|
||||
{
|
||||
InstanceHandle ws = InstanceHandle.Empty;
|
||||
return Evaluate(context, workDataObject, sourceInstance, parms, defaultValue, out ws);
|
||||
}
|
||||
|
||||
public object? Evaluate(OmsContext context, object? workDataObject, InstanceHandle sourceInstance, IEnumerable<KeyValuePair<InstanceHandle, object?>>? parms, object? defaultValue, out InstanceHandle returnedWorkData)
|
||||
{
|
||||
returnedWorkData = InstanceHandle.Empty;
|
||||
object? value = defaultValue;
|
||||
if (parms != null)
|
||||
{
|
||||
foreach (KeyValuePair<InstanceHandle, object?> kvp in parms)
|
||||
{
|
||||
context.SetWorkData(kvp.Key, kvp.Value);
|
||||
}
|
||||
}
|
||||
|
||||
if (workDataObject is InstanceHandle workDataInstance)
|
||||
{
|
||||
if (IsInstanceOf(workDataInstance, GetInstance(KnownInstanceGuids.Classes.TextAttribute)))
|
||||
@ -2614,6 +2649,7 @@ public abstract class Oms
|
||||
else
|
||||
{
|
||||
value = context.GetWorkData<string>(workDataInstance);
|
||||
returnedWorkData = workDataInstance;
|
||||
}
|
||||
}
|
||||
else if (IsInstanceOf(workDataInstance, GetInstance(KnownInstanceGuids.Classes.BooleanAttribute)))
|
||||
@ -2626,6 +2662,7 @@ public abstract class Oms
|
||||
else
|
||||
{
|
||||
value = context.GetWorkData<bool>(workDataInstance);
|
||||
returnedWorkData = workDataInstance;
|
||||
}
|
||||
}
|
||||
else if (IsInstanceOf(workDataInstance, GetInstance(KnownInstanceGuids.Classes.NumericAttribute)))
|
||||
@ -2638,6 +2675,7 @@ public abstract class Oms
|
||||
else
|
||||
{
|
||||
value = context.GetWorkData<decimal>(workDataInstance);
|
||||
returnedWorkData = workDataInstance;
|
||||
}
|
||||
}
|
||||
else if (IsInstanceOf(workDataInstance, GetInstance(KnownInstanceGuids.Classes.DateAttribute)))
|
||||
@ -2650,6 +2688,7 @@ public abstract class Oms
|
||||
else
|
||||
{
|
||||
value = context.GetWorkData<DateTime>(workDataInstance);
|
||||
returnedWorkData = workDataInstance;
|
||||
}
|
||||
}
|
||||
else if (IsInstanceOf(workDataInstance, GetInstance(KnownInstanceGuids.Classes.WorkSet)))
|
||||
@ -2662,12 +2701,14 @@ public abstract class Oms
|
||||
else
|
||||
{
|
||||
value = context.GetWorkData(workDataInstance);
|
||||
returnedWorkData = workDataInstance;
|
||||
}
|
||||
}
|
||||
else if (IsInstanceOf(workDataInstance, GetInstance(KnownInstanceGuids.Classes.Executable)))
|
||||
{
|
||||
InstanceHandle workSet = Execute(context, workDataInstance);
|
||||
value = context.GetWorkData(workSet);
|
||||
returnedWorkData = workSet;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2676,6 +2717,7 @@ public abstract class Oms
|
||||
InstanceHandle workData = Execute(context, workDataInstance);
|
||||
object? val = context.GetWorkData(workData);
|
||||
value = val?.ToString();
|
||||
returnedWorkData = workData;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@ -67,6 +67,28 @@ public class OmsContext
|
||||
}
|
||||
public object? GetWorkData(IInstanceReference parm)
|
||||
{
|
||||
object? value = UnsafeGetWorkData(parm);
|
||||
if (value is string sz)
|
||||
{
|
||||
// we really only need to check if we get returned a string like "True" instead of a bool like `false`
|
||||
// !fixme! move all this hardcoded $@#! into configurable OMS AttributeImplementations
|
||||
if (Oms.IsInstanceOf(parm, Oms.GetInstance(KnownInstanceGuids.Classes.BooleanAttribute)))
|
||||
{
|
||||
value = Boolean.Parse(sz);
|
||||
}
|
||||
else if (Oms.IsInstanceOf(parm, Oms.GetInstance(KnownInstanceGuids.Classes.DateAttribute)))
|
||||
{
|
||||
value = DateTime.Parse(sz);
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
private object? UnsafeGetWorkData(IInstanceReference parm)
|
||||
{
|
||||
// this is the former (object GetWorkData(IInstanceReference))
|
||||
// still providing the underlying implementation of finding the appropriate WD value
|
||||
// but the public facing replacement function now casts it to the appropriate Attribute
|
||||
// or Instance Set type if it is not String
|
||||
if (_WorkData.ContainsKey(parm.GetHandle()))
|
||||
return _WorkData[parm.GetHandle()];
|
||||
|
||||
|
||||
@ -67,11 +67,11 @@ public class OmsMethodBuilder
|
||||
return new BuildResponseMethodBinding(methodBinding);
|
||||
}
|
||||
|
||||
public GetAttributeMethod CreateGetAttributeMethod(InstanceHandle forClassInstance, string verb, string name, InstanceHandle attributeInstance)
|
||||
public GetAttributeMethod CreateGetAttributeMethod(IInstanceReference forClassInstance, string verb, string name, InstanceHandle attributeInstance)
|
||||
{
|
||||
return CreateGetAttributeMethod(forClassInstance, verb, name, null, false, attributeInstance);
|
||||
}
|
||||
public GetAttributeMethod CreateGetAttributeMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle attributeInstance)
|
||||
public GetAttributeMethod CreateGetAttributeMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle attributeInstance)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.GetAttributeMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Attribute_Method__returns__Attribute), attributeInstance);
|
||||
@ -79,21 +79,21 @@ public class OmsMethodBuilder
|
||||
}
|
||||
|
||||
|
||||
public GetSpecifiedInstancesMethod CreateGetSpecifiedInstancesMethod(InstanceHandle forClassInstance, string verb, string name, WorkSet returnsWorkSet, InstanceHandle specifiedInstance)
|
||||
public GetSpecifiedInstancesMethod CreateGetSpecifiedInstancesMethod(IInstanceReference forClassInstance, string verb, string name, WorkSet returnsWorkSet, InstanceHandle specifiedInstance)
|
||||
{
|
||||
return CreateGetSpecifiedInstancesMethod(forClassInstance, verb, name, null, false, returnsWorkSet, specifiedInstance);
|
||||
}
|
||||
public GetSpecifiedInstancesMethod CreateGetSpecifiedInstancesMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, InstanceHandle specifiedInstance)
|
||||
public GetSpecifiedInstancesMethod CreateGetSpecifiedInstancesMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, InstanceHandle specifiedInstance)
|
||||
{
|
||||
GetSpecifiedInstancesMethod meth = CreateGetSpecifiedInstancesMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsWorkSet, new InstanceHandle[] { specifiedInstance });
|
||||
Oms.SetAttributeValue(meth.GetHandle(), Oms.GetInstance(KnownAttributeGuids.Boolean.Singular), true);
|
||||
return meth;
|
||||
}
|
||||
public GetSpecifiedInstancesMethod CreateGetSpecifiedInstancesMethod(InstanceHandle forClassInstance, string verb, string name, WorkSet returnsWorkSet, InstanceHandle[] specifiedInstances)
|
||||
public GetSpecifiedInstancesMethod CreateGetSpecifiedInstancesMethod(IInstanceReference forClassInstance, string verb, string name, WorkSet returnsWorkSet, InstanceHandle[] specifiedInstances)
|
||||
{
|
||||
return CreateGetSpecifiedInstancesMethod(forClassInstance, verb, name, null, false, returnsWorkSet, specifiedInstances);
|
||||
}
|
||||
public GetSpecifiedInstancesMethod CreateGetSpecifiedInstancesMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, InstanceHandle[] specifiedInstances)
|
||||
public GetSpecifiedInstancesMethod CreateGetSpecifiedInstancesMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, InstanceHandle[] specifiedInstances)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.GetSpecifiedInstancesMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Specified_Instances_Method__returns__Work_Set), returnsWorkSet.GetHandle());
|
||||
@ -101,11 +101,11 @@ public class OmsMethodBuilder
|
||||
return new GetSpecifiedInstancesMethod(method);
|
||||
}
|
||||
|
||||
private InstanceHandle CreateMethodBase(InstanceHandle methodClassInstance, InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic)
|
||||
private InstanceHandle CreateMethodBase(IInstanceReference methodClassInstance, IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic)
|
||||
{
|
||||
return CreateMethodBase(methodClassInstance, forClassInstance, verb, name, accessModifier, isStatic, Guid.NewGuid());
|
||||
}
|
||||
private InstanceHandle CreateMethodBase(InstanceHandle methodClassInstance, InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, Guid globalIdentifier)
|
||||
private InstanceHandle CreateMethodBase(IInstanceReference methodClassInstance, IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, Guid globalIdentifier)
|
||||
{
|
||||
InstanceHandle method = Oms.CreateInstanceOf(methodClassInstance, globalIdentifier);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Method__for__Class), forClassInstance);
|
||||
@ -124,7 +124,7 @@ public class OmsMethodBuilder
|
||||
return method;
|
||||
}
|
||||
|
||||
public BuildAttributeMethod CreateBuildAttributeMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, string initialValue = "")
|
||||
public BuildAttributeMethod CreateBuildAttributeMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, string initialValue = "")
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.BuildAttributeMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Build_Attribute_Method__returns__Attribute), returnsAttribute);
|
||||
@ -132,7 +132,7 @@ public class OmsMethodBuilder
|
||||
return new BuildAttributeMethod(method);
|
||||
}
|
||||
|
||||
public BuildAttributeMethod CreateBuildAttributeMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, object? initialValue = null)
|
||||
public BuildAttributeMethod CreateBuildAttributeMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, object? initialValue = null)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.BuildAttributeMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Build_Attribute_Method__returns__Attribute), returnsAttribute);
|
||||
@ -151,11 +151,11 @@ public class OmsMethodBuilder
|
||||
return new BuildAttributeMethod(method);
|
||||
}
|
||||
|
||||
public GetAttributeBySystemRoutineMethod CreateGetAttributeBySystemRoutineMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, SystemAttributeRoutine usesSystemAttributeRoutine)
|
||||
public GetAttributeBySystemRoutineMethod CreateGetAttributeBySystemRoutineMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, SystemAttributeRoutine usesSystemAttributeRoutine)
|
||||
{
|
||||
return CreateGetAttributeBySystemRoutineMethod(forClassInstance, verb, name, accessModifier, isStatic, Guid.NewGuid(), returnsAttribute, usesSystemAttributeRoutine);
|
||||
}
|
||||
public GetAttributeBySystemRoutineMethod CreateGetAttributeBySystemRoutineMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, Guid globalIdentifier, InstanceHandle returnsAttribute, SystemAttributeRoutine usesSystemAttributeRoutine)
|
||||
public GetAttributeBySystemRoutineMethod CreateGetAttributeBySystemRoutineMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, Guid globalIdentifier, InstanceHandle returnsAttribute, SystemAttributeRoutine usesSystemAttributeRoutine)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.GetAttributeBySystemRoutineMethod), forClassInstance, verb, name, accessModifier, isStatic, globalIdentifier);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Attribute_by_System_Routine_Method__returns__Attribute), returnsAttribute);
|
||||
@ -163,11 +163,11 @@ public class OmsMethodBuilder
|
||||
return new GetAttributeBySystemRoutineMethod(method);
|
||||
}
|
||||
|
||||
public GetInstanceSetBySystemRoutineMethod CreateGetInstanceSetBySystemRoutineMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, SystemInstanceSetRoutine usesSystemInstanceSetRoutine)
|
||||
public GetInstanceSetBySystemRoutineMethod CreateGetInstanceSetBySystemRoutineMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, SystemInstanceSetRoutine usesSystemInstanceSetRoutine)
|
||||
{
|
||||
return CreateGetInstanceSetBySystemRoutineMethod(forClassInstance, verb, name, accessModifier, isStatic, Guid.NewGuid(), returnsWorkSet, usesSystemInstanceSetRoutine);
|
||||
}
|
||||
public GetInstanceSetBySystemRoutineMethod CreateGetInstanceSetBySystemRoutineMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, Guid globalIdentifier, WorkSet returnsWorkSet, SystemInstanceSetRoutine usesSystemInstanceSetRoutine)
|
||||
public GetInstanceSetBySystemRoutineMethod CreateGetInstanceSetBySystemRoutineMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, Guid globalIdentifier, WorkSet returnsWorkSet, SystemInstanceSetRoutine usesSystemInstanceSetRoutine)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.GetAttributeBySystemRoutineMethod), forClassInstance, verb, name, accessModifier, isStatic, globalIdentifier);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Instance_Set_by_System_Routine_Method__returns__Work_Set), returnsWorkSet.GetHandle());
|
||||
@ -175,11 +175,11 @@ public class OmsMethodBuilder
|
||||
return new GetInstanceSetBySystemRoutineMethod(method);
|
||||
}
|
||||
|
||||
public AssignAttributeMethod CreateAssignAttributeMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, ReturnAttributeMethodBinding assignsFromExecutableReturningAttribute, InstanceHandle assignsToAttribute)
|
||||
public AssignAttributeMethod CreateAssignAttributeMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, ReturnAttributeMethodBinding assignsFromExecutableReturningAttribute, InstanceHandle assignsToAttribute)
|
||||
{
|
||||
return CreateAssignAttributeMethod(forClassInstance, verb, name, accessModifier, isStatic, assignsFromExecutableReturningAttribute.GetHandle(), assignsToAttribute);
|
||||
}
|
||||
public AssignAttributeMethod CreateAssignAttributeMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle assignsFromExecutableReturningAttribute, InstanceHandle assignsToAttribute)
|
||||
public AssignAttributeMethod CreateAssignAttributeMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle assignsFromExecutableReturningAttribute, InstanceHandle assignsToAttribute)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.AssignAttributeMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Assign_Attribute_Method__uses__Executable_returning_Attribute), assignsFromExecutableReturningAttribute);
|
||||
@ -187,19 +187,19 @@ public class OmsMethodBuilder
|
||||
return new AssignAttributeMethod(method);
|
||||
}
|
||||
|
||||
public GetRelationshipMethod CreateGetRelationshipMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, Relationship returnsRelationship, bool singular = false)
|
||||
public GetRelationshipMethod CreateGetRelationshipMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, Relationship returnsRelationship, bool singular = false)
|
||||
{
|
||||
return CreateGetRelationshipMethod(forClassInstance, verb, name, accessModifier, Guid.NewGuid(), returnsRelationship.GetHandle(), singular);
|
||||
}
|
||||
public GetRelationshipMethod CreateGetRelationshipMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, Guid globalIdentifier, Relationship returnsRelationship, bool singular = false)
|
||||
public GetRelationshipMethod CreateGetRelationshipMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, Guid globalIdentifier, Relationship returnsRelationship, bool singular = false)
|
||||
{
|
||||
return CreateGetRelationshipMethod(forClassInstance, verb, name, accessModifier, globalIdentifier, returnsRelationship.GetHandle(), singular);
|
||||
}
|
||||
public GetRelationshipMethod CreateGetRelationshipMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, InstanceHandle returnsRelationship, bool singular = false)
|
||||
public GetRelationshipMethod CreateGetRelationshipMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, InstanceHandle returnsRelationship, bool singular = false)
|
||||
{
|
||||
return CreateGetRelationshipMethod(forClassInstance, verb, name, accessModifier, Guid.NewGuid(), returnsRelationship, singular);
|
||||
}
|
||||
public GetRelationshipMethod CreateGetRelationshipMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, Guid globalIdentifier, InstanceHandle returnsRelationship, bool singular = false)
|
||||
public GetRelationshipMethod CreateGetRelationshipMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, Guid globalIdentifier, InstanceHandle returnsRelationship, bool singular = false)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.GetRelationshipMethod), forClassInstance, verb, name, accessModifier, false, globalIdentifier);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Relationship_Method__returns__Relationship), returnsRelationship);
|
||||
@ -207,11 +207,11 @@ public class OmsMethodBuilder
|
||||
return new GetRelationshipMethod(method);
|
||||
}
|
||||
|
||||
public GetReferencedAttributeMethod CreateGetReferencedAttributeMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, IExecutableReturningInstanceSet usesReferenceInstanceSet, IExecutableReturningAttribute usesAnswerExecutableReturningAttribute, InstanceHandle? usesAccumulationFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
public GetReferencedAttributeMethod CreateGetReferencedAttributeMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, IExecutableReturningInstanceSet usesReferenceInstanceSet, IExecutableReturningAttribute usesAnswerExecutableReturningAttribute, InstanceHandle? usesAccumulationFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
{
|
||||
return CreateGetReferencedAttributeMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsAttribute, usesReferenceInstanceSet.GetHandle(), usesAnswerExecutableReturningAttribute.GetHandle(), usesAccumulationFunction, usesOrderExecutableReturningAttribute);
|
||||
}
|
||||
public GetReferencedAttributeMethod CreateGetReferencedAttributeMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, InstanceHandle usesReferenceInstanceSet, InstanceHandle usesAnswerExecutableReturningAttribute, InstanceHandle? usesAccumulationFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
public GetReferencedAttributeMethod CreateGetReferencedAttributeMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, InstanceHandle usesReferenceInstanceSet, InstanceHandle usesAnswerExecutableReturningAttribute, InstanceHandle? usesAccumulationFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.GetReferencedAttributeMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Get_Referenced_Attribute_Method__returns__Attribute), returnsAttribute);
|
||||
@ -227,27 +227,23 @@ public class OmsMethodBuilder
|
||||
}
|
||||
return new GetReferencedAttributeMethod(method);
|
||||
}
|
||||
|
||||
public SelectFromInstanceSetMethod CreateSelectFromInstanceSetMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, InstanceWrapper usesExecutableReturningInstanceSet, InstanceHandle? usesSetFunction = null, InstanceHandle? usesSelectionFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
{
|
||||
return CreateSelectFromInstanceSetMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsWorkSet.GetHandle(), usesExecutableReturningInstanceSet.GetHandle(), usesSetFunction, usesSelectionFunction, usesOrderExecutableReturningAttribute);
|
||||
}
|
||||
public SelectFromInstanceSetMethod CreateSelectFromInstanceSetMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsWorkSet, InstanceHandle usesExecutableReturningInstanceSet, InstanceHandle? usesSetFunction = null, InstanceHandle? usesSelectionFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
|
||||
public SelectFromInstanceSetMethod CreateSelectFromInstanceSetMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, IInstanceReference returnsWorkSet, IInstanceReference? usesExecutableReturningInstanceSet, IInstanceReference? usesSetFunction = null, IInstanceReference? usesSelectionFunction = null, IInstanceReference? usesOrderExecutableReturningAttribute = null)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.SelectFromInstanceSetMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Select_From_Instance_Set_Method__returns__Work_Set), returnsWorkSet);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Select_from_Instance_Set_Method__uses__Executable_returning_Instance_Set), usesExecutableReturningInstanceSet);
|
||||
if (usesSetFunction != null)
|
||||
{
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Select_from_Instance_Set_Method__uses__Set_Function), usesSetFunction.GetValueOrDefault());
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Select_from_Instance_Set_Method__uses__Set_Function), usesSetFunction);
|
||||
}
|
||||
if (usesSelectionFunction != null)
|
||||
{
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Select_from_Instance_Set_Method__uses__Selection_Function), usesSelectionFunction.GetValueOrDefault());
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Select_from_Instance_Set_Method__uses__Selection_Function), usesSelectionFunction);
|
||||
}
|
||||
if (usesOrderExecutableReturningAttribute != null)
|
||||
{
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Select_from_Instance_Set_Method__uses_order__Executable_returning_Attribute), usesOrderExecutableReturningAttribute.GetValueOrDefault());
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Select_from_Instance_Set_Method__uses_order__Executable_returning_Attribute), usesOrderExecutableReturningAttribute);
|
||||
}
|
||||
/*
|
||||
if (usesAccumulationFunction != null)
|
||||
@ -263,7 +259,7 @@ public class OmsMethodBuilder
|
||||
}
|
||||
|
||||
|
||||
public ConditionalSelectFromInstanceSetMethod CreateConditionalSelectFromInstanceSetMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, InstanceWrapper[] cases, InstanceHandle? usesSetFunction = null, InstanceHandle? usesSelectionFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
public ConditionalSelectFromInstanceSetMethod CreateConditionalSelectFromInstanceSetMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, InstanceWrapper[] cases, InstanceHandle? usesSetFunction = null, InstanceHandle? usesSelectionFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
{
|
||||
List<InstanceHandle> cases2 = new List<InstanceHandle>();
|
||||
foreach (InstanceWrapper wrapper in cases)
|
||||
@ -272,7 +268,7 @@ public class OmsMethodBuilder
|
||||
}
|
||||
return CreateConditionalSelectFromInstanceSetMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsWorkSet.GetHandle(), cases2.ToArray(), usesSetFunction, usesSelectionFunction, usesOrderExecutableReturningAttribute);
|
||||
}
|
||||
public ConditionalSelectFromInstanceSetMethod CreateConditionalSelectFromInstanceSetMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsWorkSet, InstanceHandle[] cases, InstanceHandle? usesSetFunction = null, InstanceHandle? usesSelectionFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
public ConditionalSelectFromInstanceSetMethod CreateConditionalSelectFromInstanceSetMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsWorkSet, InstanceHandle[] cases, InstanceHandle? usesSetFunction = null, InstanceHandle? usesSelectionFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.ConditionalSelectFromInstanceSetMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Conditional_Select_From_Instance_Set_Method__returns__Work_Set), returnsWorkSet);
|
||||
@ -302,11 +298,11 @@ public class OmsMethodBuilder
|
||||
return new ConditionalSelectFromInstanceSetMethod(method);
|
||||
}
|
||||
|
||||
public ConditionalSelectAttributeMethod CreateConditionalSelectAttributeMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, ConditionalSelectAttributeCase[] cases, InstanceHandle? usesSetFunction = null, InstanceHandle? usesSelectionFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
public ConditionalSelectAttributeMethod CreateConditionalSelectAttributeMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, ConditionalSelectAttributeCase[] cases, InstanceHandle? usesSetFunction = null, InstanceHandle? usesSelectionFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
{
|
||||
return CreateConditionalSelectAttributeMethod(forClassInstance, verb, name, accessModifier, isStatic, Guid.NewGuid(), returnsAttribute, cases, usesSetFunction, usesSelectionFunction, usesOrderExecutableReturningAttribute);
|
||||
}
|
||||
public ConditionalSelectAttributeMethod CreateConditionalSelectAttributeMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, Guid globalIdentifier, InstanceHandle returnsAttribute, ConditionalSelectAttributeCase[] cases, InstanceHandle? usesSetFunction = null, InstanceHandle? usesSelectionFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
public ConditionalSelectAttributeMethod CreateConditionalSelectAttributeMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, Guid globalIdentifier, InstanceHandle returnsAttribute, ConditionalSelectAttributeCase[] cases, InstanceHandle? usesSetFunction = null, InstanceHandle? usesSelectionFunction = null, InstanceHandle? usesOrderExecutableReturningAttribute = null)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.ConditionalSelectAttributeMethod), forClassInstance, verb, name, accessModifier, isStatic, globalIdentifier);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Conditional_Select_Attribute_Method__returns__Attribute), returnsAttribute);
|
||||
@ -342,12 +338,12 @@ public class OmsMethodBuilder
|
||||
return ih;
|
||||
}
|
||||
|
||||
public EvaluateBooleanExpressionMethod CreateEvaluateBooleanExpressionMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, IInstanceReference sourceWorkData, BooleanOperator booleanOperator, IInstanceReference compareToWorkData = null)
|
||||
public EvaluateBooleanExpressionMethod CreateEvaluateBooleanExpressionMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, IInstanceReference sourceWorkData, BooleanOperator booleanOperator, IInstanceReference compareToWorkData = null)
|
||||
{
|
||||
return CreateEvaluateBooleanExpressionMethod(forClassInstance, verb, name, accessModifier, isStatic, returnsAttribute, sourceWorkData.GetHandle(), booleanOperator, compareToWorkData?.GetHandle());
|
||||
}
|
||||
|
||||
public EvaluateBooleanExpressionMethod CreateEvaluateBooleanExpressionMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, InstanceHandle sourceWorkData, BooleanOperator booleanOperator, InstanceHandle? compareToWorkData)
|
||||
public EvaluateBooleanExpressionMethod CreateEvaluateBooleanExpressionMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, InstanceHandle sourceWorkData, BooleanOperator booleanOperator, InstanceHandle? compareToWorkData)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.EvaluateBooleanExpressionMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Evaluate_Boolean_Expression_Method__returns__Boolean_Attribute), returnsAttribute);
|
||||
@ -360,14 +356,14 @@ public class OmsMethodBuilder
|
||||
return new EvaluateBooleanExpressionMethod(method);
|
||||
}
|
||||
|
||||
public CalculateDateMethod CreateCalculateDateMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, InstanceHandle initialDateAttribute, InstanceHandle timeZoneRsmb, CalculateDateMethodIncrement preIncrement, InstanceHandle? startInterval, InstanceHandle? endInterval, CalculateDateMethodIncrement postIncrement)
|
||||
public CalculateDateMethod CreateCalculateDateMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle returnsAttribute, InstanceHandle initialDateAttribute, InstanceHandle timeZoneRsmb, CalculateDateMethodIncrement preIncrement, InstanceHandle? startInterval, InstanceHandle? endInterval, CalculateDateMethodIncrement postIncrement)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.CalculateDateMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
|
||||
return new CalculateDateMethod(method);
|
||||
}
|
||||
|
||||
public BuildElementMethod CreateBuildElementMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle hasBemProcess, InstanceHandle returnsElement)
|
||||
public BuildElementMethod CreateBuildElementMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle hasBemProcess, InstanceHandle returnsElement)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.BuildElementMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(method, Oms.GetInstance(KnownRelationshipGuids.Build_Element_Method__has__BEM_Process), hasBemProcess);
|
||||
@ -375,11 +371,11 @@ public class OmsMethodBuilder
|
||||
return new BuildElementMethod(method);
|
||||
}
|
||||
|
||||
public BuildUIResponseMethod CreateBuildUIResponseMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, IExecutableReturningElement usesExecutableReturningElement)
|
||||
public BuildUIResponseMethod CreateBuildUIResponseMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, IExecutableReturningElement usesExecutableReturningElement)
|
||||
{
|
||||
return CreateBuildUIResponseMethod(forClassInstance, verb, name, accessModifier, isStatic, usesExecutableReturningElement.GetHandle());
|
||||
}
|
||||
public BuildUIResponseMethod CreateBuildUIResponseMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle usesExecutableReturningElement)
|
||||
public BuildUIResponseMethod CreateBuildUIResponseMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle usesExecutableReturningElement)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.BuildUIResponseMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
InstanceHandle r_Build_UI_Response_Method__uses__Executable_returning_Element = Oms.GetInstance(KnownRelationshipGuids.Build_UI_Response_Method__uses__Executable_returning_Element);
|
||||
@ -394,7 +390,7 @@ public class OmsMethodBuilder
|
||||
return new BuildUIResponseMethod(method);
|
||||
}
|
||||
|
||||
public ControlTransactionMethod CreateControlTransactionMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle processesElement, BuildResponseMethodBinding usesBuildResponseMethodBinding)
|
||||
public ControlTransactionMethod CreateControlTransactionMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, InstanceHandle processesElement, BuildResponseMethodBinding usesBuildResponseMethodBinding)
|
||||
{
|
||||
InstanceHandle method = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.BuildUIResponseMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
InstanceHandle r_Control_Transaction_Method__processes__Element = Oms.GetInstance(KnownRelationshipGuids.Control_Transaction_Method__processes__Element);
|
||||
@ -433,11 +429,33 @@ public class OmsMethodBuilder
|
||||
return new CalculateNumericMethod(method);
|
||||
}
|
||||
|
||||
public InstanceOpMethod CreateInstanceOpMethod(InstanceHandle forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, InstanceOp invokesInstanceOp)
|
||||
public InstanceOpMethod CreateInstanceOpMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, WorkSet returnsWorkSet, InstanceOp invokesInstanceOp)
|
||||
{
|
||||
InstanceHandle ih = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.InstanceOpMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(ih, Oms.GetInstance(KnownRelationshipGuids.Instance_Op_Method__returns__Work_Set), returnsWorkSet);
|
||||
Oms.AssignRelationship(ih, Oms.GetInstance(KnownRelationshipGuids.Op_Scope__invokes__Instance_Op), invokesInstanceOp);
|
||||
return new InstanceOpMethod(ih);
|
||||
}
|
||||
|
||||
public InvokeWebServiceMethod CreateInvokeWebServiceMethod(IInstanceReference forClassInstance, string verb, string name, AccessModifier accessModifier, bool isStatic, IInstanceReference userIdAttribute, IInstanceReference passwordAttribute, IInstanceReference destinationUrlAttribute, IInstanceReference webServiceInvocationType, IInstanceReference? usesElement = null, IInstanceReference? correlatedInstanceSet = null, IInstanceReference? errorElement = null)
|
||||
{
|
||||
InstanceHandle ih = CreateMethodBase(Oms.GetInstance(KnownInstanceGuids.MethodClasses.InvokeWebServiceMethod), forClassInstance, verb, name, accessModifier, isStatic);
|
||||
Oms.AssignRelationship(ih, Oms.GetInstance(KnownRelationshipGuids.Invoke_Web_Service_Method__has_user_id__Executable_returning_Attribute), userIdAttribute);
|
||||
Oms.AssignRelationship(ih, Oms.GetInstance(KnownRelationshipGuids.Invoke_Web_Service_Method__has_password__Executable_returning_Attribute), passwordAttribute);
|
||||
Oms.AssignRelationship(ih, Oms.GetInstance(KnownRelationshipGuids.Invoke_Web_Service_Method__has_destination_url__Executable_returning_Attribute), destinationUrlAttribute);
|
||||
Oms.AssignRelationship(ih, Oms.GetInstance(KnownRelationshipGuids.Invoke_Web_Service_Method__has__Web_Service_Invocation_Type), webServiceInvocationType);
|
||||
if (usesElement != null)
|
||||
{
|
||||
Oms.AssignRelationship(ih, Oms.GetInstance(KnownRelationshipGuids.Invoke_Web_Service_Method__uses__Executable_returning_Element), usesElement);
|
||||
}
|
||||
if (correlatedInstanceSet != null)
|
||||
{
|
||||
Oms.AssignRelationship(ih, Oms.GetInstance(KnownRelationshipGuids.Invoke_Web_Service_Method__correlated_instances_from__Executable_returning_Instance_Set), correlatedInstanceSet);
|
||||
}
|
||||
if (errorElement != null)
|
||||
{
|
||||
Oms.AssignRelationship(ih, Oms.GetInstance(KnownRelationshipGuids.Invoke_Web_Service_Method__has_error__Executable_returning_Element), errorElement);
|
||||
}
|
||||
return new InvokeWebServiceMethod(ih);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
// Copyright (C) 2025 Michael Becker <alcexhim@gmail.com>
|
||||
//
|
||||
// This file is part of Mocha.NET.
|
||||
//
|
||||
// Mocha.NET is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Mocha.NET is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Mocha.NET. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
namespace Mocha.Core.Oop.Methods;
|
||||
|
||||
public class InvokeWebServiceMethod : MethodReturningInstanceSet
|
||||
{
|
||||
public override Guid ClassId => KnownInstanceGuids.MethodClasses.InvokeWebServiceMethod;
|
||||
internal InvokeWebServiceMethod(InstanceHandle handle) : base(handle) { }
|
||||
}
|
||||
@ -0,0 +1,119 @@
|
||||
using System;
|
||||
using Mocha.Core.Oop;
|
||||
using Mocha.Core.Oop.Methods;
|
||||
|
||||
namespace Mocha.Core.Tests.MethodTests;
|
||||
|
||||
public class InvokeWebServiceMethodTests : MethodTestsBase
|
||||
{
|
||||
private InstanceHandle BuildFormViewPageElement(IInstanceReference sourceInstance, InstanceHandle titleInstance, IEnumerable<InstanceHandle> subeditInstances)
|
||||
{
|
||||
InstanceHandle subeditElement = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.Element));
|
||||
|
||||
List<InstanceHandle> subedits = new List<InstanceHandle>();
|
||||
|
||||
// the first EC in a subedit element is the source instance
|
||||
InstanceHandle sourceInstanceEC = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.ElementContent));
|
||||
Oms.AssignRelationship(sourceInstanceEC, Oms.GetInstance(KnownRelationshipGuids.Element_Content__has__Element_Content_Display_Option), Oms.GetInstance(KnownInstanceGuids.ElementContentDisplayOptions.DoNotShow));
|
||||
Oms.AssignRelationship(sourceInstanceEC, Oms.GetInstance(KnownRelationshipGuids.Element_Content__has__Instance), sourceInstance);
|
||||
subedits.Add(sourceInstanceEC);
|
||||
|
||||
foreach (InstanceHandle subeditInstance in subeditInstances)
|
||||
{
|
||||
InstanceHandle ec = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.ElementContent));
|
||||
Oms.AssignRelationship(ec, Oms.GetInstance(KnownRelationshipGuids.Element_Content__has__Instance), subeditInstance);
|
||||
subedits.Add(ec);
|
||||
}
|
||||
Oms.AssignRelationship(subeditElement, Oms.GetInstance(KnownRelationshipGuids.Element__has__Element_Content), subedits);
|
||||
|
||||
InstanceHandle subeditElementContent = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.ElementContent));
|
||||
Oms.AssignRelationship(subeditElementContent, Oms.GetInstance(KnownRelationshipGuids.Element_Content__has__Instance), subeditElement);
|
||||
Oms.AssignRelationship(subeditElementContent, Oms.GetInstance(KnownRelationshipGuids.Element_Content__has__Element_Content_Display_Option), new InstanceHandle[]
|
||||
{
|
||||
Oms.GetInstance(KnownInstanceGuids.ElementContentDisplayOptions.ShowSubelementsVertically),
|
||||
Oms.GetInstance(KnownInstanceGuids.ElementContentDisplayOptions.Singular)
|
||||
});
|
||||
|
||||
InstanceHandle element = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.Element));
|
||||
|
||||
Oms.AssignRelationship(element, Oms.GetInstance(KnownRelationshipGuids.Element__has__Element_Content), new InstanceHandle[]
|
||||
{
|
||||
BuildAttributeElementContent(titleInstance, new InstanceHandle[]
|
||||
{
|
||||
Oms.GetInstance(KnownInstanceGuids.ElementContentDisplayOptions.DisplayAsPageTitle),
|
||||
Oms.GetInstance(KnownInstanceGuids.ElementContentDisplayOptions.NotEnterable),
|
||||
Oms.GetInstance(KnownInstanceGuids.ElementContentDisplayOptions.SubmitNotEnterable)
|
||||
}),
|
||||
subeditElementContent,
|
||||
// approvalToolbar
|
||||
});
|
||||
|
||||
return element;
|
||||
}
|
||||
|
||||
private InstanceHandle BuildAttributeElementContent(InstanceHandle attributeInstance, IEnumerable<InstanceHandle>? displayOptions = null)
|
||||
{
|
||||
InstanceHandle ec = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.DerivedElementContent));
|
||||
Oms.AssignRelationship(ec, Oms.GetInstance(KnownRelationshipGuids.Element_Content__has__Instance), attributeInstance);
|
||||
if (displayOptions != null)
|
||||
{
|
||||
Oms.AssignRelationship(ec, Oms.GetInstance(KnownRelationshipGuids.Element_Content__has__Element_Content_Display_Option), displayOptions);
|
||||
}
|
||||
return ec;
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Test1()
|
||||
{
|
||||
InstanceHandle a_UserName = Oms.GetInstance(KnownAttributeGuids.Text.UserName);
|
||||
InstanceHandle a_Password = Oms.GetInstance(KnownAttributeGuids.Text.PasswordHash);
|
||||
InstanceHandle a_DestinationURL = Oms.GetInstance(KnownAttributeGuids.Text.TargetURL);
|
||||
|
||||
InstanceHandle elem = BuildFormViewPageElement(c_TestClass, Oms.GetInstance(KnownAttributeGuids.Text.Name), new InstanceHandle[]
|
||||
{
|
||||
a_UserName,
|
||||
a_Password,
|
||||
a_DestinationURL
|
||||
});
|
||||
|
||||
Class c_Element = Oms.GetInstance<Class>(KnownInstanceGuids.Classes.Element);
|
||||
Class c_ElementContent = Oms.GetInstance<Class>(KnownInstanceGuids.Classes.ElementContent);
|
||||
GetAttributeMethod m_getOrder = Oms.MethodBuilder.CreateGetAttributeMethod(c_ElementContent, "get", "Order", Oms.GetInstance(KnownAttributeGuids.Text.Order));
|
||||
|
||||
WorkSet wsE = Oms.CreateWorkSet("temp");
|
||||
ReturnAttributeMethodBinding Element_Content__get__Order = m_getOrder.CreateMethodBinding(Oms);
|
||||
|
||||
GetRelationshipMethod m_Element__get__Element_Contents = Oms.MethodBuilder.CreateGetRelationshipMethod(c_Element, "get", "Element Contents", AccessModifier.Public, Oms.GetInstance(KnownRelationshipGuids.Element__has__Element_Content));
|
||||
ReturnInstanceSetMethodBinding Element__get__Element_Contents = m_Element__get__Element_Contents.CreateMethodBinding(Oms);
|
||||
|
||||
SelectFromInstanceSetMethod m_getFirstElementContent = Oms.MethodBuilder.CreateSelectFromInstanceSetMethod(Oms.GetInstance(KnownInstanceGuids.Classes.Element), "get", "First Element Content", AccessModifier.Public, false, wsE, Element__get__Element_Contents, null, Oms.GetInstance(KnownInstanceGuids.SelectionFunctions.First), Element_Content__get__Order);
|
||||
ReturnInstanceSetMethodBinding getFirstElementContent = m_getFirstElementContent.CreateMethodBinding(Oms);
|
||||
|
||||
InstanceHandle bemp = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.BEMProcess));
|
||||
Oms.AssignRelationship(bemp, Oms.GetInstance(KnownRelationshipGuids.BEM_Process__uses_loop__Executable_returning_Instance_Set), getFirstElementContent);
|
||||
|
||||
BuildElementMethod bemError = Oms.MethodBuilder.CreateBuildElementMethod(c_TestClass, "build", "error element for IWS", AccessModifier.Public, false, bemp, elem);
|
||||
ReturnElementMethodBinding bemErrorRemb = bemError.CreateMethodBinding(Oms);
|
||||
|
||||
MethodReturningAttribute m_UserName = Oms.MethodBuilder.CreateGetAttributeMethod(c_TestClass, "get", "User Name", a_UserName);
|
||||
MethodReturningAttribute m_Password = Oms.MethodBuilder.CreateGetAttributeMethod(c_TestClass, "get", "Password", a_Password);
|
||||
MethodReturningAttribute m_DestinationURL = Oms.MethodBuilder.CreateGetAttributeMethod(c_TestClass, "get", "Destination URL", a_DestinationURL);
|
||||
|
||||
InstanceHandle i_TestClass1 = Oms.CreateInstanceOf(c_TestClass);
|
||||
Oms.SetAttributeValue(i_TestClass1, a_UserName, "superuser");
|
||||
Oms.SetAttributeValue(i_TestClass1, a_Password, "J1gglyPuFF$");
|
||||
Oms.SetAttributeValue(i_TestClass1, a_DestinationURL, "https://iwstestsvcs1-3200.sandbox.mochapowered.com/svc");
|
||||
|
||||
ReturnAttributeMethodBinding ramb_UserName = m_UserName.CreateMethodBinding(Oms);
|
||||
ReturnAttributeMethodBinding ramb_Password = m_Password.CreateMethodBinding(Oms);
|
||||
ReturnAttributeMethodBinding ramb_DestinationURL = m_DestinationURL.CreateMethodBinding(Oms);
|
||||
|
||||
InstanceHandle webServiceInvocationType = Oms.GetInstance(KnownInstanceGuids.WebServiceInvocationTypes.BasicAuth);
|
||||
|
||||
Method iws = Oms.MethodBuilder.CreateInvokeWebServiceMethod(c_TestClass, "invoke", "test Web Service", Core.Oop.AccessModifier.Public, false, ramb_UserName, ramb_Password, ramb_DestinationURL, webServiceInvocationType, null, null, bemErrorRemb);
|
||||
OmsContext context = Oms.CreateContext();
|
||||
context.SetWorkData(c_TestClass, i_TestClass1);
|
||||
Oms.Execute(context, iws);
|
||||
}
|
||||
|
||||
}
|
||||
@ -30,7 +30,7 @@ public class SelectFromInstanceSetMethodTests : MethodTestsBase
|
||||
// MethodReturningInstanceSet m_Access_Modifier__get__Most_Restrictive_from_Set = (MethodReturningInstanceSet) Oms.GetMethod(c_AccessModifier, "get", "Most Restrictive from Set");
|
||||
|
||||
InstanceHandle a_Order = Oms.GetInstance(KnownAttributeGuids.Text.Order);
|
||||
|
||||
|
||||
WorkSet ws_Access_Modifier__Nonsingular = Oms.CreateWorkSet("Access Modifier [Nonsingular]", false);
|
||||
WorkSet ws_Access_Modifier__Singular = Oms.CreateWorkSet("Access Modifier [Singular]", true);
|
||||
|
||||
@ -38,7 +38,7 @@ public class SelectFromInstanceSetMethodTests : MethodTestsBase
|
||||
GetAttributeMethod get_Order = methodBuilder.CreateGetAttributeMethod(c_AccessModifier, "get", "Order", a_Order);
|
||||
|
||||
SelectFromInstanceSetMethod m_Access_Modifier__get__Most_Restrictive_from_Set = methodBuilder.CreateSelectFromInstanceSetMethod(c_AccessModifier, "get", "Most Restrictive from Set", AccessModifier.Public, true, ws_Access_Modifier__Singular, ws_Access_Modifier__Nonsingular, null, Oms.GetInstance(KnownInstanceGuids.SelectionFunctions.Minimum), get_Order.GetHandle());
|
||||
|
||||
|
||||
if (m_Access_Modifier__get__Most_Restrictive_from_Set != null)
|
||||
{
|
||||
ReturnInstanceSetMethodBinding rsmb = m_Access_Modifier__get__Most_Restrictive_from_Set.CreateMethodBinding(Oms);
|
||||
@ -59,4 +59,43 @@ public class SelectFromInstanceSetMethodTests : MethodTestsBase
|
||||
Assert.That((InstanceHandle?)value, Is.EqualTo(AccessModifier.Private.GetHandle()));
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Element__get__First_Element_Content()
|
||||
{
|
||||
Class c_Element = Oms.GetInstance<Class>(KnownInstanceGuids.Classes.Element);
|
||||
Class c_ElementContent = Oms.GetInstance<Class>(KnownInstanceGuids.Classes.ElementContent);
|
||||
|
||||
GetRelationshipMethod m_Element__get__Element_Contents = Oms.MethodBuilder.CreateGetRelationshipMethod(c_Element, "get", "Element Contents", AccessModifier.Public, Oms.GetInstance(KnownRelationshipGuids.Element__has__Element_Content));
|
||||
ReturnInstanceSetMethodBinding Element__get__Element_Contents = m_Element__get__Element_Contents.CreateMethodBinding(Oms);
|
||||
|
||||
GetAttributeMethod m_getOrder = Oms.MethodBuilder.CreateGetAttributeMethod(c_ElementContent, "get", "Order", Oms.GetInstance(KnownAttributeGuids.Text.Order));
|
||||
ReturnAttributeMethodBinding Element_Content__get__Order = m_getOrder.CreateMethodBinding(Oms);
|
||||
|
||||
WorkSet wsE = Oms.CreateWorkSet("Returned Element Content [Singular]");
|
||||
Oms.SetAttributeValue(wsE, Oms.GetInstance(KnownAttributeGuids.Boolean.Singular), true);
|
||||
|
||||
SelectFromInstanceSetMethod m_getFirstElementContent = Oms.MethodBuilder.CreateSelectFromInstanceSetMethod(c_Element, "get", "First Element Content", AccessModifier.Public, false, wsE, Element__get__Element_Contents, null, Oms.GetInstance(KnownInstanceGuids.SelectionFunctions.First), Element_Content__get__Order);
|
||||
ReturnInstanceSetMethodBinding getFirstElementContent = m_getFirstElementContent.CreateMethodBinding(Oms);
|
||||
|
||||
InstanceHandle element = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.Element));
|
||||
|
||||
InstanceHandle ec1 = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.ElementContent));
|
||||
InstanceHandle ec2 = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.ElementContent));
|
||||
InstanceHandle ec3 = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.ElementContent));
|
||||
InstanceHandle ec4 = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.ElementContent));
|
||||
InstanceHandle ec5 = Oms.CreateInstanceOf(Oms.GetInstance(KnownInstanceGuids.Classes.ElementContent));
|
||||
|
||||
Oms.AssignRelationship(element, Oms.GetInstance(KnownRelationshipGuids.Element__has__Element_Content), new InstanceHandle[]
|
||||
{
|
||||
ec1, ec2, ec3, ec4, ec5
|
||||
});
|
||||
|
||||
OmsContext context = Oms.CreateContext();
|
||||
context.SetWorkData(c_Element, element);
|
||||
InstanceHandle ws = Oms.Execute(context, getFirstElementContent);
|
||||
object? obj = context.GetWorkData(ws);
|
||||
|
||||
Assert.That(obj, Is.EqualTo(ec1));
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user