Browse Source

first commit for push job

master
shakun 1 year ago
commit
4e433d3a92
  1. 539
      .gitignore
  2. 25
      SendMail.sln
  3. 22
      SendMail/API/RestApiClient.cs
  4. 120
      SendMail/API/SendTransactionServices.cs
  5. 21
      SendMail/App.config
  6. 47
      SendMail/Business/GetStatic.cs
  7. 71
      SendMail/Business/SendEmail.cs
  8. 103
      SendMail/Business/SmtpMailSetting.cs
  9. 183
      SendMail/Business/TxnPush.cs
  10. 63
      SendMail/Common/CommonResponse.cs
  11. 172
      SendMail/Common/SendTransactionRequest.cs
  12. 269
      SendMail/DAO/SwiftDao.cs
  13. 282
      SendMail/DAO/TxnPushDAO.cs
  14. 115
      SendMail/JMETxnPushScheduler.csproj
  15. 21
      SendMail/Program.cs
  16. 36
      SendMail/Properties/AssemblyInfo.cs
  17. 28
      SendMail/Repository/SendRepository.cs
  18. 4
      SendMail/packages.config

539
.gitignore

@ -0,0 +1,539 @@
# Created by https://www.gitignore.io/api/visualstudio
# Edit at https://www.gitignore.io/?templates=visualstudio
### VisualStudio ###
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# End of https://www.gitignore.io/api/visualstudio
/CitizenINFC/bin/Debug/CitizenINFC.dll
/CitizenINFC/bin/Debug/CitizenINFC.dll.config
/CitizenINFC/bin/Debug/CitizenINFC.pdb
/CitizenINFC/obj/Debug/CitizenINFC.csproj.CoreCompileInputs.cache
/CitizenINFC/obj/Debug/CitizenINFC.csproj.FileListAbsolute.txt
/CitizenINFC/obj/Debug/CitizenINFC.csprojAssemblyReference.cache
/CitizenINFC/obj/Debug/CitizenINFC.dll
/CitizenINFC/obj/Debug/CitizenINFC.pdb
/CivilBankPayAPI/bin/Debug/CivilBankPayAPI.dll
/CivilBankPayAPI/bin/Debug/CivilBankPayAPI.dll.config
/CivilBankPayAPI/bin/Debug/CivilBankPayAPI.pdb
/CivilBankPayAPI/obj/Debug/CivilBankPayAPI.csproj.CoreCompileInputs.cache
/CivilBankPayAPI/obj/Debug/CivilBankPayAPI.csproj.FileListAbsolute.txt
/CivilBankPayAPI/obj/Debug/CivilBankPayAPI.csprojAssemblyReference.cache
/CivilBankPayAPI/obj/Debug/CivilBankPayAPI.dll
/CivilBankPayAPI/obj/Debug/CivilBankPayAPI.pdb
/EBLPayAPI/bin/Debug/EBLPayAPI.dll
/EBLPayAPI/bin/Debug/EBLPayAPI.dll.config
/EBLPayAPI/bin/Debug/EBLPayAPI.pdb
/EBLPayAPI/obj/Debug/EBLPayAPI.csproj.FileListAbsolute.txt
/EBLPayAPI/obj/Debug/EBLPayAPI.dll
/EBLPayAPI/obj/Debug/EBLPayAPI.pdb
/GlobalTranFastPayAPI/bin/Debug/GlobalTranFastPayAPI.dll
/GlobalTranFastPayAPI/bin/Debug/GlobalTranFastPayAPI.dll.config
/GlobalTranFastPayAPI/bin/Debug/GlobalTranFastPayAPI.pdb
/GlobalTranFastPayAPI/obj/Debug/GlobalTranFastPayAPI.csproj.FileListAbsolute.txt
/GlobalTranFastPayAPI/obj/Debug/GlobalTranFastPayAPI.dll
/GlobalTranFastPayAPI/obj/Debug/GlobalTranFastPayAPI.pdb
/GMEPayAPI/bin/Debug/GMEPayAPI.dll
/GMEPayAPI/bin/Debug/GMEPayAPI.dll.config
/GMEPayAPI/bin/Debug/GMEPayAPI.pdb
/GMEPayAPI/obj/Debug/GMEPayAPI.csproj.FileListAbsolute.txt
/GMEPayAPI/obj/Debug/GMEPayAPI.dll
/GMEPayAPI/obj/Debug/GMEPayAPI.pdb
/IntelExpressPayAPI/bin/Debug/IntelExpressPayAPI.dll
/IntelExpressPayAPI/bin/Debug/IntelExpressPayAPI.dll.config
/IntelExpressPayAPI/bin/Debug/IntelExpressPayAPI.pdb
/IntelExpressPayAPI/obj/Debug/IntelExpressPayAPI.csproj.FileListAbsolute.txt
/IntelExpressPayAPI/obj/Debug/IntelExpressPayAPI.dll
/IntelExpressPayAPI/obj/Debug/IntelExpressPayAPI.pdb
/JanataBankAPI/bin/Debug/JanataBankAPI.dll
/JanataBankAPI/bin/Debug/JanataBankAPI.dll.config
/JanataBankAPI/bin/Debug/JanataBankAPI.pdb
/JanataBankAPI/obj/Debug/JanataBankAPI.csproj.FileListAbsolute.txt
/JanataBankAPI/obj/Debug/JanataBankAPI.dll
/JanataBankAPI/obj/Debug/JanataBankAPI.pdb
/JMEPAYAPI/bin/Debug/JMEPAYAPI.dll
/JMEPAYAPI/bin/Debug/JMEPAYAPI.pdb
/JMEPAYAPI/obj/Debug/JMEPAYAPI.csproj.FileListAbsolute.txt
/JMEPAYAPI/obj/Debug/JMEPAYAPI.dll
/JMEPAYAPI/obj/Debug/JMEPAYAPI.pdb
/LumbiniBankAPI/bin/Debug/LumbiniBankAPI.dll
/LumbiniBankAPI/bin/Debug/LumbiniBankAPI.dll.config
/LumbiniBankAPI/bin/Debug/LumbiniBankAPI.pdb
/LumbiniBankAPI/obj/Debug/LumbiniBankAPI.csproj.FileListAbsolute.txt
/LumbiniBankAPI/obj/Debug/LumbiniBankAPI.dll
/LumbiniBankAPI/obj/Debug/LumbiniBankAPI.pdb
/MachhapuchhrePayAPI/bin/Debug/MachhapuchhrePayAPI.dll
/MachhapuchhrePayAPI/bin/Debug/MachhapuchhrePayAPI.dll.config
/MachhapuchhrePayAPI/bin/Debug/MachhapuchhrePayAPI.pdb
/MachhapuchhrePayAPI/obj/Debug/MachhapuchhrePayAPI.csproj.FileListAbsolute.txt
/MachhapuchhrePayAPI/obj/Debug/MachhapuchhrePayAPI.dll
/MachhapuchhrePayAPI/obj/Debug/MachhapuchhrePayAPI.pdb
/MaxPayAPI/bin/Debug/MaxPayAPI.dll
/MaxPayAPI/bin/Debug/MaxPayAPI.dll.config
/MaxPayAPI/bin/Debug/MaxPayAPI.pdb
/MaxPayAPI/obj/Debug/MaxPayAPI.csproj.FileListAbsolute.txt
/MaxPayAPI/obj/Debug/MaxPayAPI.dll
/MaxPayAPI/obj/Debug/MaxPayAPI.pdb
/MegaBankPayAPI/bin/Debug/MegaBankPayAPI.dll
/MegaBankPayAPI/bin/Debug/MegaBankPayAPI.dll.config
/MegaBankPayAPI/bin/Debug/MegaBankPayAPI.pdb
/MegaBankPayAPI/obj/Debug/MegaBankPayAPI.csproj.FileListAbsolute.txt
/MegaBankPayAPI/obj/Debug/MegaBankPayAPI.dll
/MegaBankPayAPI/obj/Debug/MegaBankPayAPI.pdb
/MoneyGramPayAPI/bin/Debug/MoneyGramPayAPI.dll
/MoneyGramPayAPI/bin/Debug/MoneyGramPayAPI.dll.config
/MoneyGramPayAPI/bin/Debug/MoneyGramPayAPI.pdb
/MoneyGramPayAPI/obj/Debug/MoneyGramPayAPI.csproj.FileListAbsolute.txt
/MoneyGramPayAPI/obj/Debug/MoneyGramPayAPI.dll
/MoneyGramPayAPI/obj/Debug/MoneyGramPayAPI.pdb
/NCHLAPI/bin/Debug/ClassLibrary1.dll
/NCHLAPI/bin/Debug/ClassLibrary1.pdb
/NCHLAPI/obj/Debug/ClassLibrary1.dll
/NCHLAPI/obj/Debug/ClassLibrary1.pdb
/NCHLAPI/obj/Debug/NCHLAPI.csproj.CoreCompileInputs.cache
/NCHLAPI/obj/Debug/NCHLAPI.csproj.FileListAbsolute.txt
/NCHLAPI/obj/Debug/NCHLAPI.csprojAssemblyReference.cache
/NIBLPayAPI/bin/Debug/NIBLPayAPI.dll
/NIBLPayAPI/bin/Debug/NIBLPayAPI.dll.config
/NIBLPayAPI/bin/Debug/NIBLPayAPI.pdb
/NIBLPayAPI/obj/Debug/NIBLPayAPI.csproj.FileListAbsolute.txt
/NIBLPayAPI/obj/Debug/NIBLPayAPI.dll
/NIBLPayAPI/obj/Debug/NIBLPayAPI.pdb
/PlacidAPI/bin/Debug/PlacidAPI.dll
/PlacidAPI/bin/Debug/PlacidAPI.dll.config
/PlacidAPI/bin/Debug/PlacidAPI.pdb
/PlacidAPI/obj/Debug/PlacidAPI.csproj.CoreCompileInputs.cache
/PlacidAPI/obj/Debug/PlacidAPI.csproj.FileListAbsolute.txt
/PlacidAPI/obj/Debug/PlacidAPI.dll
/PlacidAPI/obj/Debug/PlacidAPI.pdb
/ReliableRemitPayAPI/bin/Debug/ReliableRemitPayAPI.dll
/ReliableRemitPayAPI/bin/Debug/ReliableRemitPayAPI.dll.config
/ReliableRemitPayAPI/bin/Debug/ReliableRemitPayAPI.pdb
/ReliableRemitPayAPI/obj/Debug/ReliableRemitPayAPI.csproj.FileListAbsolute.txt
/ReliableRemitPayAPI/obj/Debug/ReliableRemitPayAPI.dll
/ReliableRemitPayAPI/obj/Debug/ReliableRemitPayAPI.pdb
/RIAPayAPI/bin/Debug/RIAPayAPI.dll
/RIAPayAPI/bin/Debug/RIAPayAPI.dll.config
/RIAPayAPI/bin/Debug/RIAPayAPI.pdb
/RIAPayAPI/obj/Debug/RIAPayAPI.csproj.FileListAbsolute.txt
/RIAPayAPI/obj/Debug/RIAPayAPI.dll
/RIAPayAPI/obj/Debug/RIAPayAPI.pdb
/SANIMAPayAPI/bin/Debug/SANIMAPayAPI.dll
/SANIMAPayAPI/bin/Debug/SANIMAPayAPI.dll.config
/SANIMAPayAPI/bin/Debug/SANIMAPayAPI.pdb
/SANIMAPayAPI/obj/Debug/SANIMAPayAPI.csproj.FileListAbsolute.txt
/SANIMAPayAPI/obj/Debug/SANIMAPayAPI.dll
/SANIMAPayAPI/obj/Debug/SANIMAPayAPI.pdb
/ShakaPayAPI/bin/Debug/ShakaPayAPI.dll
/ShakaPayAPI/bin/Debug/ShakaPayAPI.dll.config
/ShakaPayAPI/bin/Debug/ShakaPayAPI.pdb
/ShakaPayAPI/obj/Debug/ShakaPayAPI.csproj.FileListAbsolute.txt
/ShakaPayAPI/obj/Debug/ShakaPayAPI.dll
/ShakaPayAPI/obj/Debug/ShakaPayAPI.pdb
/SunmanGlobalPayAPI/bin/Debug/SunmanGlobalPayAPI.dll
/SunmanGlobalPayAPI/bin/Debug/SunmanGlobalPayAPI.dll.config
/SunmanGlobalPayAPI/bin/Debug/SunmanGlobalPayAPI.pdb
/SunmanGlobalPayAPI/obj/Debug/SunmanGlobalPayAPI.csproj.FileListAbsolute.txt
/SunmanGlobalPayAPI/obj/Debug/SunmanGlobalPayAPI.dll
/SunmanGlobalPayAPI/obj/Debug/SunmanGlobalPayAPI.pdb
/SunrisePayAPI/bin/Debug/SunrisePayAPI.dll
/SunrisePayAPI/obj/Debug/SunrisePayAPI.dll
/Swift.DAL/bin/Debug/MaxPayAPI.dll
/Swift.DAL/bin/Debug/MaxPayAPI.pdb
/Swift.DAL/bin/Debug/SANIMAPayAPI.dll
/Swift.DAL/bin/Debug/SANIMAPayAPI.pdb
/Swift.DAL/bin/Debug/ShakaPayAPI.dll
/Swift.DAL/bin/Debug/ShakaPayAPI.pdb
/Swift.DAL/bin/Debug/Swift.DAL.dll
/Swift.DAL/bin/Debug/Swift.DAL.pdb
/Swift.DAL/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
/Swift.DAL/obj/Debug/Swift.DAL.csproj.FileListAbsolute.txt
/Swift.DAL/obj/Debug/Swift.DAL.dll
/Swift.DAL/obj/Debug/Swift.DAL.pdb
/Swift.web/bin/MaxPayAPI.dll
/Swift.web/bin/MaxPayAPI.pdb
/Swift.web/bin/ShakaPayAPI.dll
/Swift.web/bin/ShakaPayAPI.pdb
/Swift.web/bin/Swift.DAL.dll
/Swift.web/bin/Swift.DAL.pdb
/Swift.web/bin/Swift.web.dll
/Swift.web/bin/Swift.web.pdb
/Swift.web/obj/Debug/Interop.CERTENROLLLib.dll
/Swift.web/obj/Debug/Swift.web.csproj.FileListAbsolute.txt
/Swift.web/obj/Debug/Swift.web.csproj.ResolveComReference.cache
/Swift.web/obj/Debug/Swift.web.dll
/Swift.web/obj/Debug/Swift.web.pdb
/TMLPayAPI/bin/Debug/TMLPayAPI.dll
/TMLPayAPI/bin/Debug/TMLPayAPI.dll.config
/TMLPayAPI/bin/Debug/TMLPayAPI.pdb
/TMLPayAPI/obj/Debug/TMLPayAPI.csproj.FileListAbsolute.txt
/TMLPayAPI/obj/Debug/TMLPayAPI.dll
/TMLPayAPI/obj/Debug/TMLPayAPI.pdb
/TranFastPayAPI/bin/Debug/TranFastPayAPI.dll
/TranFastPayAPI/bin/Debug/TranFastPayAPI.pdb
/TranFastPayAPI/obj/Debug/TranFastPayAPI.csproj.FileListAbsolute.txt
/TranFastPayAPI/obj/Debug/TranFastPayAPI.dll
/TranFastPayAPI/obj/Debug/TranFastPayAPI.pdb
/XpressMoneySendAPI/bin/Debug/XpressMoneySendAPI.dll
/XpressMoneySendAPI/bin/Debug/XpressMoneySendAPI.dll.config
/XpressMoneySendAPI/bin/Debug/XpressMoneySendAPI.pdb
/XpressMoneySendAPI/obj/Debug/XpressMoneySendAPI.csproj.CoreCompileInputs.cache
/XpressMoneySendAPI/obj/Debug/XpressMoneySendAPI.csproj.FileListAbsolute.txt
/XpressMoneySendAPI/obj/Debug/XpressMoneySendAPI.dll
/XpressMoneySendAPI/obj/Debug/XpressMoneySendAPI.pdb
/YesRemit_TranFast/bin/Debug/YesRemit_TranFast.dll
/YesRemit_TranFast/bin/Debug/YesRemit_TranFast.dll.config
/YesRemit_TranFast/bin/Debug/YesRemit_TranFast.pdb
/YesRemit_TranFast/obj/Debug/YesRemit_TranFast.csproj.FileListAbsolute.txt
/YesRemit_TranFast/obj/Debug/YesRemit_TranFast.dll
/YesRemit_TranFast/obj/Debug/YesRemit_TranFast.pdb
/Swift.web/web.config

25
SendMail.sln

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26430.15
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JMETxnPushScheduler", "SendMail\JMETxnPushScheduler.csproj", "{5AC9671D-FB0E-4816-A870-886006FC5C19}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{5AC9671D-FB0E-4816-A870-886006FC5C19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5AC9671D-FB0E-4816-A870-886006FC5C19}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5AC9671D-FB0E-4816-A870-886006FC5C19}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5AC9671D-FB0E-4816-A870-886006FC5C19}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {11FF4A29-1BB1-4188-BF7D-472867DD4CAC}
EndGlobalSection
EndGlobal

22
SendMail/API/RestApiClient.cs

@ -0,0 +1,22 @@
using JMETxnPushScheduler.Business;
using System;
using System.Net.Http;
using System.Net.Http.Headers;
namespace JMETxnPushScheduler.API
{
public class RestApiClient
{
private static int timeOut = 100;//Convert.ToInt16(ConfigurationManager.AppSettings["ApiTimeOutSeconds"]);
public static HttpClient CallJMEThirdParty()
{
string thirdPartyUrl = GetStatic.ReadWebConfig("JMECoreAPIURL", "");
var httpClient = new HttpClient();
httpClient.BaseAddress = new Uri(thirdPartyUrl);
httpClient.DefaultRequestHeaders.Add("apiAccessKey", GetStatic.ReadWebConfig("JMECoreAPI_HeaderToken", ""));
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpClient.Timeout = new TimeSpan(0, 0, timeOut);
return httpClient;
}
}
}

120
SendMail/API/SendTransactionServices.cs

@ -0,0 +1,120 @@
using Newtonsoft.Json;
using JMETxnPushScheduler.Common;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
namespace JMETxnPushScheduler.API
{
public class SendTransactionServices
{
public JsonResponse SendTransaction(SendTransactionRequest model)
{
//Log.Debug("Calculate | Calling third party api to fetch the ex-rate details " + JsonConvert.SerializeObject(model));
using (var client = RestApiClient.CallJMEThirdParty())
{
JsonResponse jsonResponse = new JsonResponse();
var obj = JsonConvert.SerializeObject(model);
var jbdContent = new StringContent(obj.ToString(), Encoding.UTF8, "application/json");
try
{
var URL = "api/v1/TP/sendTxn";
HttpResponseMessage resp = client.PostAsync(URL, jbdContent).Result;
string resultData = resp.Content.ReadAsStringAsync().Result;
if (resp.IsSuccessStatusCode)
{
jsonResponse = JsonConvert.DeserializeObject<JsonResponse>(resultData);
if (jsonResponse.ResponseCode.Equals("104"))
{
var datas = JsonConvert.DeserializeObject<List<Data>>(jsonResponse.Data.ToString());
string msg = "";
foreach (var item in datas)
{
msg += " " + item.Message;
}
jsonResponse.Msg += msg;
}
return jsonResponse;
}
else
{
var errorJson = JsonConvert.DeserializeObject<ErrorJosn>(resultData);
var jsonResponseData = JsonConvert.DeserializeObject<JsonResponse>(errorJson.Message);
var data = JsonConvert.DeserializeObject<List<Data>>(jsonResponseData.Data.ToString());
jsonResponse.Id = jsonResponseData.Id;
jsonResponse.ResponseCode = jsonResponseData.ResponseCode;
jsonResponse.Msg = jsonResponseData.Msg;
jsonResponse.Data = data;
jsonResponse.Extra = jsonResponseData.Extra;
jsonResponse.Extra1 = jsonResponseData.Extra1;
return jsonResponse;
}
}
catch (Exception ex)
{
return new JsonResponse()
{
ResponseCode = "1",
Msg = (ex.InnerException == null ? ex.Message : ex.InnerException.Message)
};
}
}
}
public JsonResponse ReleaseTransaction(TFReleaseTxnRequest model)
{
//Log.Debug("Calculate | Calling third party api to fetch the ex-rate details " + JsonConvert.SerializeObject(model));
using (var client = RestApiClient.CallJMEThirdParty())
{
JsonResponse jsonResponse = new JsonResponse();
var obj = JsonConvert.SerializeObject(model);
var jbdContent = new StringContent(obj.ToString(), Encoding.UTF8, "application/json");
try
{
var URL = "api/v1/TP/releaseTxn";
HttpResponseMessage resp = client.PostAsync(URL, jbdContent).Result;
string resultData = resp.Content.ReadAsStringAsync().Result;
if (resp.IsSuccessStatusCode)
{
jsonResponse = JsonConvert.DeserializeObject<JsonResponse>(resultData);
if (jsonResponse.ResponseCode.Equals("104"))
{
var datas = JsonConvert.DeserializeObject<List<Data>>(jsonResponse.Data.ToString());
string msg = "";
foreach (var item in datas)
{
msg += " " + item.Message;
}
jsonResponse.Msg += msg;
}
return jsonResponse;
}
else
{
var errorJson = JsonConvert.DeserializeObject<ErrorJosn>(resultData);
var jsonResponseData = JsonConvert.DeserializeObject<JsonResponse>(errorJson.Message);
var data = JsonConvert.DeserializeObject<List<Data>>(jsonResponseData.Data.ToString());
jsonResponse.Id = jsonResponseData.Id;
jsonResponse.ResponseCode = jsonResponseData.ResponseCode;
jsonResponse.Msg = jsonResponseData.Msg;
jsonResponse.Data = data;
jsonResponse.Extra = jsonResponseData.Extra;
jsonResponse.Extra1 = jsonResponseData.Extra1;
return jsonResponse;
}
}
catch (Exception ex)
{
return new JsonResponse()
{
ResponseCode = "1",
Msg = (ex.InnerException == null ? ex.Message : ex.InnerException.Message)
};
}
}
}
}
}

21
SendMail/App.config

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<connectionStrings>
<!--<add name="Connections" connectionString="server=34.92.161.102;Database=FastMoneyPro_Remit;uid=remituserjme;pwd=r3M!tU5Er@jM3r3Mit#?; Max Pool Size=1000;" providerName="system.data.sqlclient" />-->
<!--<add name="Connections" connectionString="server=10.90.77.61;Database=FastMoneyPro_Remit;uid=remituserjme;pwd=r3M!tU5Er@jM3r3Mit#?; Max Pool Size=1000;" providerName="system.data.sqlclient" />-->
<!--<add name="Connections" connectionString="server=202.166.220.36,1433;Database=FastMoneyPro_Remit;uid=jmeuser;pwd=P@ssw0rd@321!" providerName="system.data.sqlclient" />-->
<add name="Connections" connectionString="server=192.168.53.21\MSSQLSERVER01,9097;Database=FastMoneyPro_Remit;uid=user_stag;pwd=P@ssw0rd; Max Pool Size=1000;" providerName="system.data.sqlclient" />
</connectionStrings>
<appSettings>
<!--<add key="JMECoreAPIURL" value="http://10.90.77.51:8081/" />-->
<add key="JMECoreAPIURL" value="http://localhost:65345/" />
<!--<add key="JMECoreAPIURL" value="http://192.168.53.21:8082/" />-->
<add key="JMECoreAPI_HeaderToken" value="KPb1ttRs3CJnORpVU8SmAKUs7a42vtvjzQ47gU0b4u0vxAEI0PgZref6puzkVhLTX2PRNMGCbnb2TglupsjV5AGhYvw8a8POTcUcFSrEdHmTkhkIGNvUvxSpKjUOXGFQWaGU1bxoqqUSaFOmNE5zGojVmwPoMy38CNLwnpQKjdsIuxCKGCApa2gWHJl9gebmIpUODv9jAZgmMEaXqyR4CLg4iSksfTyYNjdqxEE88P5THYt5GuNk8Ti6K2RxIKfPWY49hBOpiYnXcApgSDiKFYqQG9WuZ7cvDGJIWg5WgWKjGle8Y3OydhONXVkN5OMPXDA4VZkK4c5nM363Zkg4w4qdzWuwhsEoAwU4rej6sMRZue3L0BowBJja1OK0iPoTX70EexX8rviMLOZPUDwhxzkL3eODS69VEEbjHb8WSjhho5h3KnCE4tcqCWihwSZ8Yuyhw1rzIMNw2C8pN1GEJyXc6goIFkf7dmK9ynJSxu52D9GjOkKqoD7dFNFulOFVfgeCuhPDYG2A2c2RSvGHv24VDXvmGVaAMLiPtsTz5oD8f0na7fX1xGg0Qveh0KgQL5THnrMK6gm5Ky7O8nbecIxY" />
<add key="LogFile" value="D:/Office/SourceCodes/git-repo/JME/Console Jobs/TxnPushJob/SendMail/Logs/log.txt" />
</appSettings>
</configuration>

47
SendMail/Business/GetStatic.cs

@ -0,0 +1,47 @@
using System;
using System.Configuration;
using System.IO;
using System.Text;
namespace JMETxnPushScheduler.Business
{
public static class GetStatic
{
public static string ReadWebConfig(string key, string defValue)
{
return ConfigurationManager.AppSettings[key] ?? defValue;
}
public static void WriteLog(string Log)
{
string LogFile = GetStatic.ReadAppSetting("LogFile");
StringBuilder LogText = new StringBuilder();
LogText.AppendLine(Log + DateTime.Now.ToString());
LogText.AppendLine("----------------------------------------------------------------------------");
Write(LogText.ToString());
using (StreamWriter writetext = new StreamWriter(LogFile, true))
{
writetext.WriteLine(LogText.ToString());
}
}
static void Write(string data)
{
Console.WriteLine(data);
}
public static string ReadAppSetting(this string val)
{
try
{
return ConfigurationSettings.AppSettings[val].ToString();
}
catch (Exception)
{
return "";
}
}
}
}

71
SendMail/Business/SendEmail.cs

@ -0,0 +1,71 @@
using JMETxnPushScheduler.Repository;
using System;
using System.Data;
namespace JMETxnPushScheduler.Business
{
public class SendEmail
{
SendRepository _repository = new SendRepository();
public void mailsend()
{
int i = 1;
DataTable mailDetails = _repository.GetMailDetails();
string msgSubject = "About pasword Reset";
string msgBody = string.Empty;
if (mailDetails == null )
{
return;
}
else if (mailDetails.Rows.Count == 0)
{
return;
}
try
{
msgBody = "<html><head><meta content=text/html; charset=utf-8 http-equiv=Content-Type></head><body><table>" +
"<tr><td><b>SNo.&nbsp;</b></td>" +
"<td><b>Full Name</b></td>" +
"<td><b>Email</b></td>" +
"<td><b>User Name</b></td>" +
"<td><b>New Password</b></td>" +
"</tr>";
foreach (DataRow item in mailDetails.Rows)
{
msgBody += "<tr><td>" + Convert.ToString(i ) + "</td>";
msgBody += "<td>" + item["Name"].ToString() + "</td>";
msgBody += "<td>" + item["Email"].ToString() + "</td>";
msgBody += "<td>" + item["UserName"].ToString() + "</td>";
msgBody += "<td>" + item["Newpassword"].ToString() + "</td>";
i = i + 1;
}
msgBody += "</table></body></html>";
SmtpMailSetting mail = new SmtpMailSetting
{
MsgBody = msgBody,
MsgSubject = msgSubject,
ToEmails = GetStatic.ReadWebConfig("recivermail", "")
};
string res = mail.SendSmtpMail(mail);
//if (res != "Mail Send")
//{
// ErrorEmail();
//}
}
catch (Exception ex)
{
ex.Message.ToString();
}
}
public void ErrorEmail()
{
_repository.ErrorEmail();
}
}
}

103
SendMail/Business/SmtpMailSetting.cs

@ -0,0 +1,103 @@
using System;
using System.Net.Mail;
namespace JMETxnPushScheduler.Business
{
public class SmtpMailSetting
{
public SmtpMailSetting()
{
ToEmails = "";
CcEmails = "";
BccEmails = "";
MsgSubject = "";
MsgBody = "";
SmtpPort = Convert.ToInt16(GetStatic.ReadWebConfig("port", ""));
SmtpServer = GetStatic.ReadWebConfig("smtp", "");
SendEmailId = GetStatic.ReadWebConfig("mailFrom", "");
SendEmailPwd = GetStatic.ReadWebConfig("pwd", "");
EnableSsl = true;
}
public int SmtpPort { get; set; }
public string SmtpServer { get; set; }
public string SendEmailId { get; set; }
public string SendEmailPwd { get; set; }
public string ToEmails { get; set; }
public string CcEmails { get; set; }
public string BccEmails { get; set; }
public string MsgSubject { get; set; }
public string MsgBody { get; set; }
public bool EnableSsl { get; set; }
public string Status { get; set; }
/// <summary>
/// Send mail through gme SMTP server
/// </summary>
/// <param name="smtpMail">receiver details mail body and subject</param>
/// <returns></returns>
public string SendSmtpMail(SmtpMailSetting smtpMail)
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient();
try
{
SmtpServer.Host = smtpMail.SmtpServer;
SmtpServer.Port = smtpMail.SmtpPort;
SmtpServer.Credentials = new System.Net.NetworkCredential(smtpMail.SendEmailId, smtpMail.SendEmailPwd);
SmtpServer.EnableSsl = EnableSsl;
mail.From = new MailAddress(smtpMail.SendEmailId);
mail.To.Add(smtpMail.ToEmails);
if (!string.IsNullOrEmpty(smtpMail.CcEmails))
mail.CC.Add(smtpMail.CcEmails);
if (!string.IsNullOrEmpty(smtpMail.BccEmails))
mail.Bcc.Add(smtpMail.BccEmails);
mail.Subject = smtpMail.MsgSubject;
mail.IsBodyHtml = true;
mail.Body = smtpMail.MsgBody;
SmtpServer.Send(mail);
smtpMail.Status = "Y";
SmtpServer.Dispose();
}
catch (SmtpFailedRecipientsException ex)
{
for (int i = 0; i < ex.InnerExceptions.Length; i++)
{
SmtpStatusCode status = ex.InnerExceptions[i].StatusCode;
if (status == SmtpStatusCode.MailboxBusy || status == SmtpStatusCode.MailboxUnavailable)
{
// Console.WriteLine("Delivery failed - retrying in 5 seconds.");
System.Threading.Thread.Sleep(5000);
SmtpServer.Send(mail);
}
else
{
// Console.WriteLine("Failed to deliver message to {0}", ex.InnerExceptions[i].FailedRecipient);
//throw ex;
smtpMail.Status = "N";
//GetStatic.EmailNotificationLog(smtpMail);
}
}
}
catch (Exception ex)
{
smtpMail.Status = "N";
//GetStatic.EmailNotificationLog(smtpMail);
}
finally
{
SmtpServer.Dispose();
}
//GetStatic.EmailNotificationLog(smtpMail);
return "Mail Send";
}
}
}

183
SendMail/Business/TxnPush.cs

@ -0,0 +1,183 @@
using JMETxnPushScheduler.API;
using JMETxnPushScheduler.Common;
using JMETxnPushScheduler.DAO;
using System;
using System.Collections.Generic;
using System.Data;
namespace JMETxnPushScheduler.Business
{
public class TxnPush
{
public void TxnSyncMain()
{
TxnPushDAO _txnPush = new TxnPushDAO();
DataTable txnData = _txnPush.GetTxnDataForApprove();
if (txnData.Rows.Count == 0 || null == txnData)
{
return;
}
Console.WriteLine("Total data fetched for sync: " + txnData.Rows.Count.ToString());
foreach (DataRow item in txnData.Rows)
{
CommonResponse _dbRes = _txnPush.GetTxnApproveData("schedular", item["ID"].ToString());
if (_dbRes.ResponseCode == "0")
{
if (_dbRes.Extra == "True")//is realtime
{
Console.WriteLine("Release txn started: " + item["CONTROLNO"].ToString());
SendTransactionServices _tpSend = new SendTransactionServices();
var result = _tpSend.ReleaseTransaction(new TFReleaseTxnRequest()
{
TfPin = _dbRes.Id,
RequestBy = "scheduler",
UserName = "scheduler",
ProviderId = _dbRes.Msg
});
Console.WriteLine("Release txn completed with response msg: " + result.Msg);
if (result.ResponseCode == "0")
{
_txnPush.UpdateTxnPost(item["ID"].ToString());
}
}
else
{
Console.WriteLine("Send txn started: " + item["CONTROLNO"].ToString());
string newSession = Guid.NewGuid().ToString().Replace("-", "");
var result = _txnPush.GetHoldedTxnForApprovedByAdmin("scheduler", item["ID"].ToString(), newSession);
Console.WriteLine("Send txn completed with response msg: " + result.Msg);
List<string> exclude = new List<string>() { "7000", "100" };
if (result.ResponseCode != null && result.ResponseCode != "0")
{
if (!exclude.Contains(result.ResponseCode) || !result.Msg.Contains("task was canceled"))
_txnPush.SyncTxnAsComment(_dbRes.Msg, item["ID"].ToString(), item["CONTROLNO"].ToString(), !string.IsNullOrEmpty(result.Extra) ? result.Extra : result.ResponseCode, result.Msg);
else
Console.WriteLine("SyncTxnAsComment exclude Code: " + result.ResponseCode);
}
if (_dbRes.Msg == "394397")
{
if (result.ResponseCode == "0")
{
_txnPush.UpdateTxnInstantPaid(item["ID"].ToString());
}
else if (result.ResponseCode == "100")//Transaction has been processed for Bank Deposit.
{
_txnPush.UpdateTxnPost(item["ID"].ToString());
}
else if (result.ResponseCode == "7000" && result.Msg.Contains("ALREADY USED"))
{
_txnPush.UpdateTxnPost(item["ID"].ToString());
}
}
else if (_dbRes.Msg == "394132")
{
if (result.ResponseCode == "0" || (!string.IsNullOrEmpty(result.Extra) && result.Extra.Equals("0006"))) //Duplicate records
{
_txnPush.UpdateTxnPost(item["ID"].ToString());
}
}
else if (_dbRes.Msg == "394414") //brac
{
if (result.ResponseCode == "0" || (!string.IsNullOrEmpty(result.Msg) && result.Msg.Equals("DuplicateTTNumber"))) //004- Duplicate records
{
_txnPush.UpdateTxnPost(item["ID"].ToString());
}
}
else if (_dbRes.Msg == "394428") //Cebuana
{
if (result.ResponseCode == "0" || (!string.IsNullOrEmpty(result.Extra) && result.Extra.Equals("05"))) // Control Number Already In Use
{
_txnPush.UpdateTxnPost(item["ID"].ToString());
}
else if (!string.IsNullOrEmpty(result.Extra) && result.Extra.Equals("19")) //"RTA Internal Error-Reference Number Already Exists
{
_txnPush.UpdateTxnPost(item["ID"].ToString());
}
}
else if (_dbRes.Msg == "394434") //wings
{
if (result.ResponseCode == "0")
{
_txnPush.UpdateTxnPost(item["ID"].ToString());
}
else if (!string.IsNullOrEmpty(result.Extra) && result.Extra.Equals("200")) //" Txn found in wings system.
{
_txnPush.UpdateTxnPost(item["ID"].ToString());
}
}
else
{
if (result.ResponseCode == "0")
{
_txnPush.UpdateTxnPost(item["ID"].ToString());
}
}
}
}
}
}
public void TxnReleaseMain()
{
try
{
TxnPushDAO _txnPush = new TxnPushDAO();
DataTable txnData = _txnPush.GetTxnDataForRelease();
if (txnData.Rows.Count == 0 || null == txnData)
{
return;
}
GetStatic.WriteLog("Total data fetched for Release: " + txnData.Rows.Count.ToString());
// Console.WriteLine("Total data fetched for Release: " + txnData.Rows.Count.ToString());
foreach (DataRow item in txnData.Rows)
{
string ProcessId = Guid.NewGuid().ToString().Replace("-", "") + ":" + item["partner"].ToString() + ":releaseTxn";
Console.WriteLine("Release txn started: " + item["CONTROLNO"].ToString());
SendTransactionServices _tpSend = new SendTransactionServices();
var request = new TFReleaseTxnRequest()
{
TfPin = item["CONTROLNO"].ToString(),
RequestBy = "scheduler",
UserName = "scheduler",
ProviderId = item["sSuperAgent"].ToString(),
ProcessId = ProcessId.Substring(ProcessId.Length - 40, 40)
};
GetStatic.WriteLog(item["CONTROLNO"].ToString() + " " + Newtonsoft.Json.JsonConvert.SerializeObject(request));
var result = _tpSend.ReleaseTransaction(request);
Console.WriteLine("Release txn completed with response msg: " + result.Msg);
if (result.ResponseCode == "0")
{
_txnPush.UpdateTxnPost(item["ID"].ToString());
}
else
{
GetStatic.WriteLog("Release txn failed with response msg: " + item["CONTROLNO"].ToString() + " " + result.Msg);
}
}
}
catch (Exception ex)
{
GetStatic.WriteLog("TxnReleaseMain" + ex.ToString());
Console.WriteLine(ex.InnerException.ToString());
Console.Read();
}
}
}
}

63
SendMail/Common/CommonResponse.cs

@ -0,0 +1,63 @@
namespace JMETxnPushScheduler.Common
{
public class CommonResponse
{
public string ResponseCode { get; set; }
public string Msg { get; set; }
public string Id { get; set; }
public object Data { get; set; }
public string Extra { get; set; }
public string Extra2 { get; set; }
public string Status { get; set; }
public void SetResponse(string responseCode, string msg, string id)
{
ResponseCode = responseCode;
Msg = msg;
Id = id;
}
}
public class JsonResponse
{
public string TokenNo { get; set; }
public string ResponseCode { get; set; }
public string Msg { get; set; }
public string Id { get; set; }
public string Extra { get; set; }
public string Extra1 { get; set; }
public object Data { get; set; }
public void SetResponse(string responseCode, string msg, string id = null, string extra = null, string extra1 = null)
{
ResponseCode = responseCode;
Msg = msg;
Id = id;
Extra = extra;
Extra1 = extra1;
}
}
public class ErrorJosn
{
public string Message { get; set; }
}
public class Data
{
public string Name { get; set; }
public string Message { get; set; }
}
public class TFReleaseTxnRequest
{
public string TfPin { get; set; }
public string ProcessId { get; set; }
public string UserName { get; set; }
public string ProviderId { get; set; }
public string SessionId { get; set; }
public string RequestBy { get; set; }
}
}

172
SendMail/Common/SendTransactionRequest.cs

@ -0,0 +1,172 @@
namespace JMETxnPushScheduler.Common
{
public class SendTransactionRequest
{
public string ProcessId { get; set; }
public string UserName { get; set; }
public string ProviderId { get; set; }
public string SessionId { get; set; }
public string RequestedBy { get; set; }
public string ExRateConfirmId { get; set; }
public int TranId { get; set; }
public bool isTxnAlreadyCreated { get; set; }
#region SenderInformation
public TxnSender Sender { get; set; }
#endregion SenderInformation
#region receiveInformtaion
public TxnReceiver Receiver { get; set; }
#endregion receiveInformtaion
#region txnInformation
public TxnTransaction Transaction { get; set; }
#endregion txnInformation
#region agentInformation
public TxnAgent Agent { get; set; }
#endregion agentInformation
public bool IsRealtime { get; set; }
public string IsManualSc { get; set; }
public decimal ManualSc { get; set; }
public bool IsApproveTxn { get; set; }
public bool IsAccValSupported { get; set; }
}
public class TxnAgent
{
public int SAgentId { get; set; }
public string SAgentName { get; set; }
public int SSuperAgentId { get; set; }
public string SSuperAgentName { get; set; }
public string AgentRefId { get; set; }
public string PBranchId { get; set; }
public string PBranchName { get; set; }
public string PBranchCity { get; set; }
public int PAgentId { get; set; }
public string PAgentName { get; set; }
public int SBranchId { get; set; }
public string SBranchName { get; set; }
public string PBankType { get; set; }
public string PBankId { get; set; }
public string PBankName { get; set; }
public string PBankBranchId { get; set; }
public string PBankBranchName { get; set; }
}
public class TxnTransaction
{
public string TxnDate { get; set; }
public string JMEControlNo { get; set; }
public string PurposeOfRemittanceName { get; set; }
public string CollectionMode { get; set; }
public int DeliveryMethodId { get; set; }
public string DeliveryMethod { get; set; }
public string PCurr { get; set; }
public string CollCurr { get; set; }
public decimal CAmt { get; set; }
public decimal PAmt { get; set; }
public decimal TAmt { get; set; }
public decimal ServiceCharge { get; set; }
public decimal Discount { get; set; }
public decimal ExRate { get; set; }
public decimal Rate { get; set; }
public string PComm { get; set; }
public decimal SettlementDollarRate { get; set; }
public string CalBy { get; set; }
public string Introducer { get; set; }
public string IsManualSc { get; set; }
public decimal ManualSc { get; set; }
public string RLocation { get; set; }
public string RLocationName { get; set; }
public string TpRefNo { get; set; }
public string TpTranId { get; set; }
public int PayOutPartner { get; set; }
public string PaymentType { get; set; }
public string PayoutMsg { get; set; }
}
public class TxnReceiver
{
public string ReceiverId { get; set; }
public string RFullName { get; set; }
public string RFirstName { get; set; }
public string RMiddleName { get; set; }
public string RLastName { get; set; }
public string RIdType { get; set; }
public string RIdNo { get; set; }
public string RIdIssuedDate { get; set; }
public string RIdValidDate { get; set; }
public string RDob { get; set; }
public string RTel { get; set; }
public string RMobile { get; set; }
public string RNativeCountry { get; set; }
public string RCity { get; set; }
public string RAdd1 { get; set; }
public string REmail { get; set; }
public string RAccountNo { get; set; }
public string RGender { get; set; }
public int RCountryId { get; set; }
public string RCountry { get; set; }
public int RelWithSenderId { get; set; }
public string RelWithSenderName { get; set; }
public string RStateId { get; set; }
public string RStateName { get; set; }
public string RCityCode { get; set; }
public string RDistrictCode { get; set; }
public string UnitaryBankAccountNo { get; set; }
public string RLocation { get; set; }
public string RLocationName { get; set; }
}
public class TxnSender
{
public int CustomerId { get; set; }
public string SFirstName { get; set; }
public string SMiddleName { get; set; }
public string SLastName1 { get; set; }
public string SLastName2 { get; set; }
public string SFullName { get; set; }
public string SIdType { get; set; }
public string SIdNo { get; set; }
public string SIdIssueDate { get; set; }
public string SIdExpiryDate { get; set; }
public int SOccuptionId { get; set; }
public string SOccuptionName { get; set; }
public string SBirthDate { get; set; }
public string SEmail { get; set; }
public string SCityId { get; set; }
public string SCity { get; set; }
public string SState { get; set; }
public string FormOfPaymentId { get; set; }
public string SZipCode { get; set; }
public string SNativeCountry { get; set; }
public string SMobile { get; set; }
public string STel { get; set; }
public string SAddress { get; set; }
public string SIpAddress { get; set; }
public string SGender { get; set; }
public string SCustStreet { get; set; }
public string SCustLocation { get; set; }
public string SourceOfFund { get; set; }
public string Pwd { get; set; }
public bool IsIndividual { get; set; }
public int SCountryId { get; set; }
public string SCountryName { get; set; }
public int SBranchId { get; set; }
public string SBranchName { get; set; }
public int CustomerDepositedBank { get; set; }
}
}

269
SendMail/DAO/SwiftDao.cs

@ -0,0 +1,269 @@
using JMETxnPushScheduler.Common;
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Text.RegularExpressions;
namespace JMETxnPushScheduler.DAO
{
public class SwiftDao
{
SqlConnection _connection;
public SwiftDao()
{
Init();
}
private void Init()
{
_connection = new SqlConnection(GetConnectionString());
}
private string GetConnectionString()
{
return ConfigurationManager.ConnectionStrings["Connections"].ConnectionString;
}
private int GetCommandTimeOut()
{
int cto = 60;
return cto;
}
private void CloseConnection()
{
if (_connection.State == ConnectionState.Open)
this._connection.Close();
}
public CommonResponse ParseDbResultWithSql(string sql)
{
return ParseDbResult(ExecuteDataTable(sql));
}
public CommonResponse ParseDbResult(DataTable dt)
{
var res = new CommonResponse();
if (dt.Rows.Count > 0)
{
res.ResponseCode = dt.Rows[0][0].ToString();
res.Msg = dt.Rows[0][1].ToString();
res.Id = dt.Rows[0][2].ToString();
if (dt.Columns.Count > 3)
{
res.Extra = dt.Rows[0][3].ToString();
}
if (dt.Columns.Count > 4)
{
res.Extra2 = dt.Rows[0][4].ToString();
}
}
return res;
}
public DataSet ExecuteDataSet(string sql)
{
var ds = new DataSet();
using (var con = new SqlConnection(GetConnectionString()))
{
var cmd = new SqlCommand(sql, con);
cmd.CommandTimeout = GetCommandTimeOut();
SqlDataAdapter da;
try
{
da = new SqlDataAdapter(cmd);
da.Fill(ds);
da.Dispose();
}
catch (Exception ex)
{
throw ex;
}
finally
{
da = null;
cmd.Dispose();
}
return ds;
}
}
public DataTable ExecuteDataTable(string sql)
{
using (var ds = ExecuteDataSet(sql))
{
if (ds == null || ds.Tables.Count == 0)
return null;
return ds.Tables[0];
}
}
public DataRow ExecuteDataRow(string sql)
{
using (var ds = ExecuteDataSet(sql))
{
if (ds == null || ds.Tables.Count == 0)
return null;
if (ds.Tables[0].Rows.Count == 0)
return null;
return ds.Tables[0].Rows[0];
}
}
public String FilterString(string strVal)
{
var str = FilterQuote(strVal);
if (str.ToLower() != "null")
str = "'" + str + "'";
return str.TrimEnd().TrimStart();
}
public String FilterXmlString(string strVal)
{
return "'" + strVal + "'";
}
public String FilterXmlNodeString(string strVal)
{
var str = FilterQuote(strVal);
return str;
}
public String FilterQuote(string strVal)
{
if (string.IsNullOrEmpty(strVal))
{
strVal = "";
}
var str = strVal.Trim();
if (!string.IsNullOrEmpty(str))
{
str = str.Replace(";", "");
str = str.Replace("--", "");
str = str.Replace("'", "");
str = str.Replace("/*", "");
str = str.Replace("*/", "");
str = Regex.Replace(str, " select ", string.Empty, RegexOptions.IgnoreCase);
str = Regex.Replace(str, " insert ", string.Empty, RegexOptions.IgnoreCase);
str = Regex.Replace(str, " update ", string.Empty, RegexOptions.IgnoreCase);
str = Regex.Replace(str, " delete ", string.Empty, RegexOptions.IgnoreCase);
str = Regex.Replace(str, " drop ", string.Empty, RegexOptions.IgnoreCase);
str = Regex.Replace(str, " truncate ", string.Empty, RegexOptions.IgnoreCase);
str = Regex.Replace(str, " create ", string.Empty, RegexOptions.IgnoreCase);
str = Regex.Replace(str, " begin ", string.Empty, RegexOptions.IgnoreCase);
str = Regex.Replace(str, " end ", string.Empty, RegexOptions.IgnoreCase);
str = Regex.Replace(str, " char ", string.Empty, RegexOptions.IgnoreCase);
str = Regex.Replace(str, " exec ", string.Empty, RegexOptions.IgnoreCase);
str = Regex.Replace(str, " xp_cmd ", string.Empty, RegexOptions.IgnoreCase);
str = Regex.Replace(str, @"<.*?>", string.Empty);
}
else
{
str = "null";
}
return str;
}
public string ConvertDrToString(object dr)
{
if (dr != DBNull.Value)
{
return Convert.ToString(dr);
}
return string.Empty;
}
public Decimal ConvertDrToDecimal(object dr)
{
if (dr != DBNull.Value)
{
return Convert.ToDecimal(dr.ToString());
}
return 0;
}
public Int64 ConvertDrToInt64(object dr)
{
if (dr != DBNull.Value)
{
return Convert.ToInt64(dr.ToString());
}
return 0;
}
public DateTime ConvertDrToDate(object dr)
{
if (dr != DBNull.Value)
{
return Convert.ToDateTime(dr.ToString());
}
return DateTime.MinValue;
}
public Int16 ConvertDrToInt(object dr)
{
if (dr != DBNull.Value)
{
return Convert.ToInt16(dr.ToString());
}
return 0;
}
public string ParseQuote(string val)
{
return "\"" + val + "\"";
}
public string AutoSelect(string str1, string str2)
{
if (str1.ToLower() == str2.ToLower())
return "selected=\"selected\"";
return "";
}
public String GetSingleResult(string sql)
{
try
{
var ds = ExecuteDataSet(sql);
if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
return "";
return ds.Tables[0].Rows[0][0].ToString();
}
catch (Exception ex)
{
throw ex;
}
finally
{
CloseConnection();
}
}
}
}

282
SendMail/DAO/TxnPushDAO.cs

@ -0,0 +1,282 @@
using JMETxnPushScheduler.API;
using JMETxnPushScheduler.Common;
using System;
using System.Data;
namespace JMETxnPushScheduler.DAO
{
public class TxnPushDAO : SwiftDao
{
public DataTable GetTxnDataForApprove()
{
string sql = "EXEC PROC_TP_TXN_PUSH @FLAG = 'GET-LIST'";
return ExecuteDataTable(sql);
}
public DataTable GetTxnDataForRelease()
{
string sql = "EXEC PROC_TP_TXN_PUSH @FLAG = 'GET-RELEASE-LIST'";
return ExecuteDataTable(sql);
}
public void UpdateTxnPost(string id)
{
string sql = "EXEC PROC_TP_TXN_PUSH @FLAG = 'UPDATE-POST'";
sql += ", @TRAN_ID = " + FilterString(id);
ExecuteDataTable(sql);
}
public void UpdateTxnInstantPaid(string id)
{
string sql = "EXEC PROC_TP_TXN_PUSH @FLAG = 'INSTANT-PAID'";
sql += ", @TRAN_ID = " + FilterString(id);
ExecuteDataTable(sql);
}
public CommonResponse GetTxnApproveData(string user, string id)
{
var sql = "EXEC proc_ApproveHoldedTXN @flag = 'get-info-for-compliance'";
sql += ", @user = " + FilterString(user);
sql += ", @id = " + FilterString(id);
return ParseDbResultWithSql(sql);
}
public void SyncTxnAsComment(string provider, string tranId, string ControlNo, string status, string msg)
{
string sql = "EXEC PROC_TP_TXN_PUSH @flag='add-api-comment'";
sql += ",@PROVIDER = " + FilterString(provider);
sql += ",@TRAN_ID = " + FilterString(tranId);
sql += ",@message = " + FilterString(msg);
sql += ",@status = " + FilterString(status);
sql += ",@user = " + FilterString("TxnPushJob");
ExecuteDataTable(sql);
}
public JsonResponse GetHoldedTxnForApprovedByAdmin(string user, string id, string sessionId, string callFro = null)
{
var sql = "EXEC proc_GetHoldedTxnForApprovedByAdminCompliance";
sql += " @user = " + FilterString(user);
sql += ", @tranId = " + FilterString(id);
sql += ", @callFro = " + FilterString(callFro);
var drDb = ExecuteDataRow(sql);
if (drDb.Table.Columns.Contains("ErrorCode"))
{
return new JsonResponse()
{
ResponseCode = Convert.ToString(drDb["ErrorCode"]),
Msg = Convert.ToString(drDb["msg"])
};
}
string ProcessId = Guid.NewGuid().ToString().Replace("-", "") + ":" + Convert.ToString(drDb["processId"]) + ":sendTxn";
SendTransactionRequest sendTxnRequest = new SendTransactionRequest();
if (drDb.Table.Columns.Contains("exRateConfirmId"))
{
sendTxnRequest.ExRateConfirmId = drDb["exRateConfirmId"].ToString();
}
sendTxnRequest.RequestedBy = "scheduler";
sendTxnRequest.UserName = user;
sendTxnRequest.ProcessId = ProcessId.Substring(ProcessId.Length - 40, 40);
sendTxnRequest.ProviderId = Convert.ToString(drDb["partnerId"]);
sendTxnRequest.TranId = Convert.ToInt32(drDb["tranId"]);
if (drDb.Table.Columns.Contains("IsRealtime"))
{
sendTxnRequest.IsRealtime = (drDb["IsRealtime"].ToString() == "Y" ? true : false);
}
else
{
sendTxnRequest.IsRealtime = false;
}
#region senderInformation
TxnSender txnSender = new TxnSender();
txnSender.CustomerId = Convert.ToInt32(drDb["customerId"]);
txnSender.SFirstName = Convert.ToString(drDb["sfirstName"]);
txnSender.SMiddleName = Convert.ToString(drDb["smiddleName"]);
txnSender.SLastName1 = Convert.ToString(drDb["slastName1"]);
txnSender.SLastName2 = Convert.ToString(drDb["slastName2"]);
txnSender.SFullName = Convert.ToString(drDb["sfullName"]);
txnSender.SIdIssueDate = Convert.ToString(drDb["sissuedDate"]);
txnSender.SIdExpiryDate = Convert.ToString(drDb["svalidDate"]);
txnSender.SOccuptionId = Convert.ToInt32(drDb["occupationId"]);
txnSender.SOccuptionName = Convert.ToString(drDb["occupationName"]);
txnSender.SBirthDate = Convert.ToString(drDb["sdob"]);
txnSender.SEmail = Convert.ToString(drDb["semail"]);
txnSender.SCityId = Convert.ToString(drDb["scity"]);
if (drDb.Table.Columns.Contains("sstate"))
{
txnSender.SState = Convert.ToString(drDb["sstate"]);
}
if (drDb.Table.Columns.Contains("formOfPaymentId"))
{
txnSender.FormOfPaymentId = Convert.ToString(drDb["formOfPaymentId"]);
}
txnSender.SZipCode = Convert.ToString(drDb["szipCode"]);
txnSender.SNativeCountry = Convert.ToString(drDb["snativeCountry"]);
txnSender.SIdType = Convert.ToString(drDb["sidType"]);
txnSender.SIdNo = Convert.ToString(drDb["sidNumber"]);
txnSender.SMobile = Convert.ToString(drDb["smobile"]);
txnSender.SAddress = Convert.ToString(drDb["saddress"]);
txnSender.SIpAddress = Convert.ToString(drDb["ipAddress"]);
txnSender.SCountryId = Convert.ToInt32(drDb["countryId"]);
txnSender.SCountryName = Convert.ToString(drDb["sCountry"]);
if (drDb.Table.Columns.Contains("IsIndividual"))
{
txnSender.IsIndividual = Convert.ToBoolean(drDb["IsIndividual"]);
}
txnSender.SourceOfFund = Convert.ToString(drDb["sourceOfFund"]);
sendTxnRequest.Sender = txnSender;
#endregion senderInformation
#region receiverInformation
TxnReceiver txnReceiver = new TxnReceiver();
txnReceiver.ReceiverId = Convert.ToString(drDb["receiverId"]);
txnReceiver.RFullName = Convert.ToString(drDb["rfullName"]);
txnReceiver.RFirstName = Convert.ToString(drDb["rfirstName"]);
txnReceiver.RMiddleName = Convert.ToString(drDb["rmiddleName"]);
txnReceiver.RLastName = Convert.ToString(drDb["rlastName1"]);
txnReceiver.RIdType = Convert.ToString(drDb["ridType"]);
txnReceiver.RIdNo = Convert.ToString(drDb["ridNumber"]);
txnReceiver.RIdValidDate = Convert.ToString(drDb["rvalidDate"]);
txnReceiver.RDob = Convert.ToString(drDb["rdob"]);
txnReceiver.RTel = Convert.ToString(drDb["rhomePhone"]);
txnReceiver.RMobile = Convert.ToString(drDb["rmobile"]);
txnReceiver.RNativeCountry = Convert.ToString(drDb["rnativeCountry"]);
txnReceiver.RCity = Convert.ToString(drDb["rcity"]);
txnReceiver.RAdd1 = Convert.ToString(drDb["raddress"]);
txnReceiver.REmail = Convert.ToString(drDb["remail"]);
txnReceiver.RAccountNo = Convert.ToString(drDb["raccountNo"]);
txnReceiver.RCountry = Convert.ToString(drDb["rcountry"]);
txnReceiver.RCityCode = Convert.ToString(drDb["rcityCode"]);
txnReceiver.RelWithSenderName = Convert.ToString(drDb["relationName"]);
txnReceiver.RStateId = Convert.ToString(drDb["rstate"]);
txnReceiver.RLocation = Convert.ToString(drDb["pBankLocation"]);
txnReceiver.UnitaryBankAccountNo = Convert.ToString(drDb["bankAccountNo"]);
txnReceiver.RelWithSenderName = drDb["relationName"].ToString();
if (drDb.Table.Columns.Contains("rTownCode"))
{
txnReceiver.RLocation = Convert.ToString(drDb["rTownCode"]);
}
if (drDb.Table.Columns.Contains("payerId"))
{
txnReceiver.RLocationName = Convert.ToString(drDb["payerId"]);
}
sendTxnRequest.Receiver = txnReceiver;
#endregion receiverInformation
#region txnTransaction
TxnTransaction transaction = new TxnTransaction();
transaction.PCurr = Convert.ToString(drDb["payoutCurr"]);
transaction.CollCurr = Convert.ToString(drDb["collCurr"]);
transaction.CAmt = Convert.ToDecimal(drDb["cAmt"]);
transaction.PAmt = Convert.ToDecimal(drDb["pAmt"]);
transaction.TAmt = Convert.ToDecimal(drDb["tAmt"]);
transaction.ServiceCharge = Convert.ToDecimal(drDb["serviceCharge"]);
transaction.PComm = Convert.ToString(drDb["pAgentComm"]);
transaction.PaymentType = Convert.ToString(drDb["paymentMethod"]);
transaction.JMEControlNo = Convert.ToString(drDb["controlNo"]);
transaction.PurposeOfRemittanceName = Convert.ToString(drDb["purposeOfRemit"]);
if (drDb.Table.Columns.Contains("txnDate"))
{
transaction.TxnDate = Convert.ToString(drDb["txnDate"]);
}
if (drDb.Table.Columns.Contains("ssnno"))
{
transaction.TpRefNo = Convert.ToString(drDb["ssnno"]);
}
if (drDb.Table.Columns.Contains("exRate"))
{
transaction.ExRate = Convert.ToDecimal(drDb["exRate"]);
}
if (drDb.Table.Columns.Contains("Rate"))
{
transaction.Rate = Convert.ToDecimal(drDb["Rate"]);
}
if (drDb.Table.Columns.Contains("SettlementDollarRate"))
{
transaction.SettlementDollarRate = Convert.ToDecimal(drDb["SettlementDollarRate"]);
}
transaction.PayoutMsg = Convert.ToString(drDb["remarks"]);
sendTxnRequest.Transaction = transaction;
#endregion txnTransaction
#region agentInformation
TxnAgent txnAgent = new TxnAgent();
txnAgent.PBranchId = Convert.ToString(drDb["branchId"]);
txnAgent.PBranchName = Convert.ToString(drDb["branchName"]);
txnAgent.PBranchCity = Convert.ToString(drDb["city"]);
txnAgent.PAgentId = Convert.ToInt32(drDb["pAgent"] == "" ? null : drDb["pAgent"]);
txnAgent.PAgentName = Convert.ToString(drDb["pAgentName"]);
txnAgent.PBankType = Convert.ToString(drDb["pBankType"]);
txnAgent.PBankId = Convert.ToString(drDb["pBank"]);
txnAgent.PBankName = Convert.ToString(drDb["pBankName"]);
txnAgent.SAgentId = Convert.ToInt32(drDb["sAgent"]);
txnAgent.SAgentName = Convert.ToString(drDb["sAgentName"]);
txnAgent.SSuperAgentId = Convert.ToInt32(drDb["sSuperAgent"]);
if (drDb.Table.Columns.Contains("pBankBranchId"))
{
txnAgent.PBankBranchId = Convert.ToString(drDb["pBankBranchId"]);
}
txnAgent.SBranchId = Convert.ToInt32(drDb["sBranch"]);
if (drDb.Table.Columns.Contains("pBankBranchName"))
{
txnAgent.PBankBranchName = Convert.ToString(drDb["pBankBranchName"]);
}
sendTxnRequest.Agent = txnAgent;
#endregion agentInformation
if (drDb.Table.Columns.Contains("isFirstTran"))
{
sendTxnRequest.isTxnAlreadyCreated = Convert.ToString(drDb["isFirstTran"]) == "Y" ? true : false;
}
else
{
sendTxnRequest.isTxnAlreadyCreated = true;
}
sendTxnRequest.IsRealtime = Convert.ToBoolean(drDb["IsRealtime"]);
sendTxnRequest.SessionId = Convert.ToString(Guid.NewGuid()).Replace("-", "");
if (string.IsNullOrEmpty(sendTxnRequest.SessionId) || string.IsNullOrWhiteSpace(sendTxnRequest.SessionId))
sendTxnRequest.SessionId = sessionId;
if (drDb.Table.Columns.Contains("IsAccValSupported") && drDb["IsAccValSupported"] != null)
{
sendTxnRequest.IsAccValSupported = drDb["IsAccValSupported"].ToString().Equals("1") ? true : false;
}
else
sendTxnRequest.IsAccValSupported = false;
SendTransactionServices _tpSend = new SendTransactionServices();
var result = _tpSend.SendTransaction(sendTxnRequest);
sql = "";
sql = "EXEC proc_tran_api_call_history ";
sql += " @TRAN_ID =" + FilterString(sendTxnRequest.TranId.ToString());
sql += ", @REQUESTED_BY =" + FilterString(user);
sql += ", @RESPONSE_CODE =" + FilterString(result.ResponseCode);
sql += ", @RESPONSE_MSG =" + FilterString(result.Msg);
GetSingleResult(sql);
return result;
}
}
}

115
SendMail/JMETxnPushScheduler.csproj

@ -0,0 +1,115 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{5AC9671D-FB0E-4816-A870-886006FC5C19}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>JMETxnPushScheduler</RootNamespace>
<AssemblyName>JMETxnPushScheduler</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>C:\Users\arjun.dhami\Desktop\Apps\Send Txn\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>12</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ManifestCertificateThumbprint>EED1B4A014BB3869A82F39672A96B4BB6A715387</ManifestCertificateThumbprint>
</PropertyGroup>
<PropertyGroup>
<ManifestKeyFile>JMETxnPushScheduler_TemporaryKey.pfx</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>true</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<SignManifests>false</SignManifests>
</PropertyGroup>
<PropertyGroup>
<SignAssembly>false</SignAssembly>
</PropertyGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="API\RestApiClient.cs" />
<Compile Include="API\SendTransactionServices.cs" />
<Compile Include="Business\GetStatic.cs" />
<Compile Include="Business\SendEmail.cs" />
<Compile Include="Business\SmtpMailSetting.cs" />
<Compile Include="Business\TxnPush.cs" />
<Compile Include="Common\CommonResponse.cs" />
<Compile Include="Common\SendTransactionRequest.cs" />
<Compile Include="DAO\SwiftDao.cs" />
<Compile Include="DAO\TxnPushDAO.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Repository\SendRepository.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config">
<SubType>Designer</SubType>
</None>
<None Include="JMETxnPushScheduler_TemporaryKey.pfx" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.5.2">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.5.2 %28x86 and x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

21
SendMail/Program.cs

@ -0,0 +1,21 @@
using JMETxnPushScheduler.Business;
using System;
namespace SendMail
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Scheduler started on: " + DateTime.Now);
TxnPush _txnPush = new TxnPush();
_txnPush.TxnSyncMain();
// _txnPush.TxnReleaseMain();
Console.WriteLine("Scheduler started on: " + DateTime.Now);
}
}
}

36
SendMail/Properties/AssemblyInfo.cs

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("SendMail")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("SendMail")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("5ac9671d-fb0e-4816-a870-886006fc5c19")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

28
SendMail/Repository/SendRepository.cs

@ -0,0 +1,28 @@
using JMETxnPushScheduler.Business;
using JMETxnPushScheduler.DAO;
using System.Data;
namespace JMETxnPushScheduler.Repository
{
public class SendRepository
{
SwiftDao _dao = new SwiftDao();
public DataTable GetMailDetails()
{
var sql = "EXEC proc_SendMail @flag = 'sendMial'";
return _dao.ExecuteDataTable(sql);
}
public DataTable ErrorEmail()
{
var sql = "EXEC proc_SendMail @flag = 'error'";
return _dao.ExecuteDataTable(sql);
}
}
}

4
SendMail/packages.config

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net452" />
</packages>
Loading…
Cancel
Save