Skip to content

Commit

Permalink
Merge branch 'feature-9'
Browse files Browse the repository at this point in the history
  • Loading branch information
dudelis committed Nov 19, 2017
2 parents 237c1c8 + 5f2838c commit 375b8c9
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="SourceCode.Data.SmartObjectsClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=16a2c5aaaa1b130d, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\Program Files (x86)\K2 blackpearl\Bin\SourceCode.Data.SmartObjectsClient.dll</HintPath>
</Reference>
<Reference Include="SourceCode.HostClientAPI, Version=4.0.0.0, Culture=neutral, PublicKeyToken=16a2c5aaaa1b130d, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\Program Files (x86)\K2 blackpearl\Bin\SourceCode.HostClientAPI.dll</HintPath>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@ public class EmailTemplateSO : ServiceObjectBase
{
private PlaceholderItemCollection _placeholders;
private Dictionary<string, string> _inputIds;
private string _pSmoSystemName;
private string _pSmoListName;
private string _pNameProperty;
private string _pAdoNetProperty;
private readonly string _pSmoSystemName;
private readonly string _pSmoListName;
private readonly string _pNameProperty;
private readonly string _pAdoNetProperty;
private readonly string _pReturnProperty;

public EmailTemplateSO(EmailTemplateServiceBroker broker) : base(broker)
{
Expand All @@ -38,6 +39,7 @@ public EmailTemplateSO(EmailTemplateServiceBroker broker) : base(broker)
_pSmoListName = ServiceBroker.Service.ServiceConfiguration[ServiceConfig.ListMethodName].ToString();
_pNameProperty = ServiceBroker.Service.ServiceConfiguration[ServiceConfig.PlaceholderPropertyName].ToString();
_pAdoNetProperty = ServiceBroker.Service.ServiceConfiguration[ServiceConfig.AdoNetPropertyName].ToString();
_pReturnProperty = ServiceBroker.Service.ServiceConfiguration[ServiceConfig.ReturnProperty].ToString();

}
public override List<ServiceObject> DescribeServiceObjects()
Expand Down Expand Up @@ -104,24 +106,26 @@ private void GetEmailTemplate()

if (!string.IsNullOrEmpty(_pSmoSystemName))
{

SmartObjectClientServer smoServer = ServiceBroker.K2Connection.GetConnection<SmartObjectClientServer>();
using (smoServer.Connection)
{
var smo = smoServer.GetSmartObject(_pSmoSystemName);
smo.MethodToExecute = _pSmoListName;
var dt = smoServer.ExecuteListDataTable(smo);
//Getting only the placholders, which are used in the EmailSubject/EmailBody
foreach (DataRow row in dt.Rows)
{
var placeholder = _placeholders.Wrapper + row[_pNameProperty] + _placeholders.Wrapper;
//Getting only the placholders, which are used in the EmailSubject/EmailBody
if (_inputSubject.Contains(placeholder) || _inputBody.Contains(placeholder))
{
_placeholders.AddItem(row[_pNameProperty].ToString(), row[_pAdoNetProperty].ToString());
_placeholders.AddItem(row[_pNameProperty].ToString(), row[_pAdoNetProperty].ToString(), row[_pReturnProperty].ToString());
}
}
//Getting the values of the placeholders
_placeholders.GetAllValues(smoServer, _inputIds);
}
//Getting the values of the placeholders
_placeholders.GetAllValues(_inputIds, ServiceBroker.K2Connection.SessionConnectionString);

}
//Adding static placeholders
foreach (var item in GetStaticPlaceholders())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ public class PlaceholderItem
public string Name;
public string AdoQuery;
public string Value;
public string ReturnProperty;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using System.Text;
using System.Threading.Tasks;
using K2Field.ServiceBroker.EmailTemplate.Properties;
using SourceCode.Data.SmartObjectsClient;
using SourceCode.SmartObjects.Client;

namespace K2Field.ServiceBroker.EmailTemplate.ServiceObjects.EmailTemplate
Expand All @@ -26,12 +27,13 @@ public void AddItem(string name)
};
Items.Add(item);
}
public void AddItem(string name, string adoQuery)
public void AddItem(string name, string adoQuery, string returnProperty)
{
var item = new PlaceholderItem()
{
Name = name,
AdoQuery = adoQuery
AdoQuery = adoQuery,
ReturnProperty = returnProperty
};
Items.Add(item);
}
Expand All @@ -44,7 +46,7 @@ public void AddItemWithValue(string name, string value)
};
Items.Add(item);
}
public void GetAllValues(SmartObjectClientServer smoServer, Dictionary<string, string> inputIds)
public void GetAllValues(Dictionary<string, string> inputIds, string connectionString)
{
foreach (var p in Items)
{
Expand All @@ -55,13 +57,19 @@ public void GetAllValues(SmartObjectClientServer smoServer, Dictionary<string, s
}
foreach (var item in inputIds)
{
var searchValue = "@" + item.Key;
var searchValue = Wrapper + item.Key + Wrapper;
query = query.Replace(searchValue, item.Value);
}
DataTable results = smoServer.ExecuteSQLQueryDataTable(query);
if (results.Rows.Count > 0)
DataTable dt = new DataTable();
using (SOConnection soConnection = new SOConnection(connectionString))
using (SOCommand soCommand = new SOCommand(query, soConnection))
using (SODataAdapter soDataAdapter = new SODataAdapter(soCommand))
{
p.Value = results.Rows[0][0].ToString();
soDataAdapter.Fill(dt);
}
if (dt.Rows.Count > 0)
{
p.Value = dt.Rows[0][p.ReturnProperty].ToString();
}
}
}
Expand Down

0 comments on commit 375b8c9

Please sign in to comment.