using Common; using Common.Helper; using Common.KFTC; using Common.Model; using Common.Model.Config; using log4net; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data; using System.Runtime.Remoting.Messaging; namespace Repository.TrustDoc { public class TrustDocRepository : ITrustDocRepository { private readonly Dao _dao = null; private static readonly ILog Log = LogManager.GetLogger(typeof(TrustDocRepository)); public TrustDocRepository() { _dao = new Dao(); } public JsonRxResponse Webhook(TrustDocModel doc) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse jsonRx = new JsonRxResponse(); try { var sql = "EXEC PROC_TRUSTDOC_CUSTOMER"; sql += " @flag =" + _dao.FilterString("i"); sql += " ,@id =" +"'"+ doc.Data.Id + "'"; sql += " ,@publicId=" + "'" + doc.Data.PublicId + "'"; sql += " ,@verificationType =" + _dao.FilterString(doc.Type); sql += " ,@state =" + _dao.FilterString(doc.Data.State.ToString()); sql += " ,@result =" + _dao.FilterString( !string.IsNullOrEmpty(doc.Data.Result)? doc.Data.Result:""); sql += " ,@acceptedDate =" + _dao.FilterString( doc.Data.AcceptedAt.HasValue? doc.Data.AcceptedAt.ToString():""); sql += " ,@planSelectedDate =" + _dao.FilterString(doc.Data.PlansSelectedAt.HasValue? doc.Data.PlansSelectedAt.ToString():""); sql += " ,@documentSubmittedDate =" + _dao.FilterString(doc.Data.DocumentSubmittedAt.HasValue? doc.Data.DocumentSubmittedAt.ToString():""); sql += " ,@trustDocRequest =" + _dao.FilterString(JsonConvert.SerializeObject(doc)); if (doc.Data.Records != null) { sql += " ,@planId1=" + "'" + doc.Data.Records[0].Plan.Id.ToString() + "'"; sql += " ,@planName1= " + "N'" + doc.Data.Records[0].Plan.Name + "'"; if (doc.Data.Records.Length > 1) { sql += " ,@planId2 = " +_dao.FilterString( doc.Data.Records[1].Plan.Id.ToString()); sql += " ,@planName2= " + "N'" + doc.Data.Records[1].Plan.Name + "'"; } } Log.DebugFormat("SaveTrustDoc | SQL : {0}", sql); var dataSet = _dao.ParseDbResult(sql); string enumString = string.Empty; jsonRx.ErrorCode = dataSet.ResponseCode; jsonRx.Id = dataSet.Id; //return jsonRx; var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = dataSet.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = dataSet.Id }; } catch (Exception e) { Log.DebugFormat($"Exception : {e.StackTrace.ToString()}"); jsonRx.ErrorCode = "1"; jsonRx.Msg = e.Message.ToString(); return jsonRx; } } } }