public ScriptResponse Execute(ContextData context, Entity document, Dictionary <string, object> parameters) { try { /* **************************************** */ /* **************************************** */ /* ADD YOUR CODE HERE */ document.MarkToApplyChanges(); var externalSystem = context.ExternalSystems.FirstOrDefault().Value; var fileToExecute = context.Files.Where(f => f.ExecutionType == "Remote").FirstOrDefault(); if (fileToExecute == null) { throw new Exception("File not found"); } ConnectorClient client = new ConnectorClient(context.Api.Endpoint, externalSystem.ConnectorCode); var connectorResponse = client.Execute(context.Tenant, new MyMis.Scripting.Core.Contracts.Script() { Code = fileToExecute.Name, Version = fileToExecute.Version }, context, document, parameters ); string str = externalSystem.Parameters["0"].ToString(); int first = str.IndexOf("Commitments.GoodsPurchaseRequest[") + "Commitments.GoodsPurchaseRequest[".Length; int last = str.LastIndexOf("].ERPCode"); int commIndex = int.Parse(str.Substring(first, last - first)); var connectorResult = connectorResponse.Result.FirstOrDefault().Result; DadosFornecedores fornec = new DadosFornecedores((string)connectorResult.Data[0, 0], (string)connectorResult.Data[0, 1]); var nome = fornec.Nome; document.Commitments.GoodsPurchaseRequest[commIndex].Attributes.ERPName = nome; if (fornec.Pais == "PT") { nome = fornec.Nome += (" (Local)"); } if (fornec.Pais != "PT") { nome = fornec.Nome += (" (Estrangeiro)"); } document.Commitments.GoodsPurchaseRequest[commIndex].Attributes.Name = nome; return(new ScriptResponse()); } catch (Exception e) { throw new Exception(e.Message, e.InnerException); } /* **************************************** */ /* **************************************** */ }
public ScriptResponse Execute(ContextData context, Entity document, Dictionary <string, object> parameters) { var externalSystem = context.ExternalSystems.Where(e => e.Key == (string)document["Agent:#Company.Code"]).FirstOrDefault().Value; var fileToExecute = context.Files.Where(f => f.ExecutionType == "Remote").FirstOrDefault(); if (fileToExecute == null) { throw new Exception("File not found"); } ConnectorClient client = new ConnectorClient(context.Api.Endpoint, externalSystem.ConnectorCode); var connectorResponse = client.Execute(context.Tenant, new MyMis.Scripting.Core.Contracts.Script() { Code = fileToExecute.Name, Version = fileToExecute.Version }, context, document, parameters ); return(new ScriptResponse { RedirectUrl = connectorResponse.Result.FirstOrDefault().Actions["URL"] }); }