Example #1
0
        public HttpResponseMessage DeleteAccLimit(HttpRequestMessage reqObject)
        {
            int result = 0;

            _requestedDataObject = _IDataManipulation.GetRequestedDataObject(reqObject);
            if (_requestedDataObject != null && _requestedDataObject.BusinessData != null)
            {
                _AccLimitSetup = JsonConvert.DeserializeObject <AccLimitSetup>(_requestedDataObject.BusinessData);
            }

            if (_AccLimitSetup == null || string.IsNullOrWhiteSpace(_AccLimitSetup.AccLimitId))
            {
                _serviceResponse = _IDataManipulation.SetResponseObject(result, "Account Limit Not Found...");
                _response        = _IDataManipulation.CreateResponse(_serviceResponse, reqObject);
                return(_response);
            }

            result = _IAccLimitSetupService.DeleteAccLimit(_AccLimitSetup);
            if (result == 1)
            {
                _serviceResponse = _IDataManipulation.SetResponseObject(result, "information has been deleted successfully");
            }
            else
            {
                _serviceResponse = _IDataManipulation.SetResponseObject(result, "information hasn't been deleted");
            }
            _response = _IDataManipulation.CreateResponse(_serviceResponse, reqObject);
            return(_response);
        }
Example #2
0
        public HttpResponseMessage GetAccLimitById(HttpRequestMessage reqObject)
        {
            string AccLimitId = string.Empty;

            _requestedDataObject = _IDataManipulation.GetRequestedDataObject(reqObject);
            if (_requestedDataObject != null && _requestedDataObject.BusinessData != null)
            {
                _AccLimitSetup = JsonConvert.DeserializeObject <AccLimitSetup>(_requestedDataObject.BusinessData);
                AccLimitId     = _AccLimitSetup.AccLimitId;
            }

            if (!string.IsNullOrWhiteSpace(AccLimitId))
            {
                _AccLimitSetup = new AccLimitSetup();
                _AccLimitSetup = _IAccLimitSetupService.GetAccLimitById(AccLimitId);
            }
            if (_AccLimitSetup != null)
            {
                _serviceResponse = _IDataManipulation.SetResponseObject(_AccLimitSetup, "information has been fetched successfully");
            }
            else
            {
                _serviceResponse = _IDataManipulation.SetResponseObject(_AccLimitSetup, "Data Not Found...");
            }
            _response = _IDataManipulation.CreateResponse(_serviceResponse, reqObject);
            return(_response);
        }
Example #3
0
        public HttpResponseMessage UpdateAccLimit(HttpRequestMessage reqObject)
        {
            int result = 0;

            _requestedDataObject = _IDataManipulation.GetRequestedDataObject(reqObject);
            if (_requestedDataObject != null && _requestedDataObject.BusinessData != null)
            {
                _AccLimitSetup = JsonConvert.DeserializeObject <AccLimitSetup>(_requestedDataObject.BusinessData);
                bool IsValid = ModelValidation.TryValidateModel(_AccLimitSetup, out _modelErrorMsg);
                if (IsValid)
                {
                    result = _IAccLimitSetupService.UpdateAccLimit(_AccLimitSetup);
                }
            }

            if (!string.IsNullOrWhiteSpace(_modelErrorMsg))
            {
                _serviceResponse = _IDataManipulation.SetResponseObject(result, _modelErrorMsg);
            }
            else if (result == 1)
            {
                _serviceResponse = _IDataManipulation.SetResponseObject(result, "information has been updated successfully");
            }
            else
            {
                _serviceResponse = _IDataManipulation.SetResponseObject(result, "information hasn't been updated");
            }
            _response = _IDataManipulation.CreateResponse(_serviceResponse, reqObject);
            return(_response);
        }
        public int UpdateAccLimit(AccLimitSetup _AccLimit)
        {
            try
            {
                int  result = 0;
                bool IsRecordExist;
                if (!string.IsNullOrWhiteSpace(_AccLimit.AccLimitId))
                {
                    IsRecordExist = _IUoW.Repository <AccLimitSetup>().IsRecordExist(x => x.AccLimitId == _AccLimit.AccLimitId);
                    if (IsRecordExist)
                    {
                        var _oldAccLimit       = _IUoW.Repository <AccLimitSetup>().GetBy(x => x.AccLimitId == _AccLimit.AccLimitId);
                        var _oldAccLimitForLog = ObjectCopier.DeepCopy(_oldAccLimit);

                        _oldAccLimit.AuthStatusId = _AccLimit.AuthStatusId = "U";
                        _oldAccLimit.LastAction   = _AccLimit.LastAction = "EDT";
                        _oldAccLimit.LastUpdateDT = _AccLimit.LastUpdateDT = System.DateTime.Now;
                        result = _IUoW.Repository <AccLimitSetup>().Update(_oldAccLimit);

                        #region Auth Log
                        if (result == 1)
                        {
                            _IAuthLogService = new AuthLogService();
                            long _outMaxSlAuthLogDtl = 0;
                            result = _IAuthLogService.AddAuthLog(_IUoW, _oldAccLimitForLog, _AccLimit, "EDT", "0001", _AccLimit.FunctionId, 1, "AccLimitSetup", "MTK_ACC_LIMIT_SETUP", "AccLimitId", _AccLimit.AccLimitId, _AccLimit.UserName, _outMaxSlAuthLogDtl, out _outMaxSlAuthLogDtl);
                        }
                        #endregion

                        if (result == 1)
                        {
                            _IUoW.Commit();
                        }
                        return(result);
                    }
                }
                return(result);
            }
            catch (Exception ex)
            {
                _ObjErrorLogService = new ErrorLogService();
                _ObjErrorLogService.AddErrorLog(ex, string.Empty, "UpdateAccLimit(obj)", string.Empty);
                return(0);
            }
        }
Example #5
0
 public HttpResponseMessage GetAccLimitBy(HttpRequestMessage reqObject)
 {
     _requestedDataObject = _IDataManipulation.GetRequestedDataObject(reqObject);
     if (_requestedDataObject != null && _requestedDataObject.BusinessData != null)
     {
         _AccLimitSetup = JsonConvert.DeserializeObject <AccLimitSetup>(_requestedDataObject.BusinessData);
         _AccLimitSetup = _IAccLimitSetupService.GetAccLimitBy(_AccLimitSetup);
     }
     if (_AccLimitSetup != null)
     {
         _serviceResponse = _IDataManipulation.SetResponseObject(_AccLimitSetup, "information has been fetched successfully");
     }
     else
     {
         _serviceResponse = _IDataManipulation.SetResponseObject(_AccLimitSetup, "Data Not Found...");
     }
     _response = _IDataManipulation.CreateResponse(_serviceResponse, reqObject);
     return(_response);
 }
 public AccLimitSetup GetAccLimitBy(AccLimitSetup _AccLimit)
 {
     try
     {
         if (_AccLimit == null)
         {
             return(_AccLimit);
         }
         return(_IUoW.Repository <AccLimitSetup>().GetBy(x => x.AccLimitId == _AccLimit.AccLimitId &&
                                                         x.AuthStatusId == "A" &&
                                                         x.LastAction != "DEL"));
     }
     catch (Exception ex)
     {
         _ObjErrorLogService = new ErrorLogService();
         _ObjErrorLogService.AddErrorLog(ex, string.Empty, "GetAccLimitBy(obj)", string.Empty);
         return(null);
     }
 }
        public int DeleteAccLimit(AccLimitSetup _AccLimit)
        {
            try
            {
                int  result = 0;
                bool IsRecordExist;
                if (!string.IsNullOrWhiteSpace(_AccLimit.AccLimitId))
                {
                    IsRecordExist = _IUoW.Repository <AccLimitSetup>().IsRecordExist(x => x.AccLimitId == _AccLimit.AccLimitId);
                    if (IsRecordExist)
                    {
                        var _oldAccLimit       = _IUoW.Repository <AccLimitSetup>().GetBy(x => x.AccLimitId == _AccLimit.AccLimitId);
                        var _oldAccLimitForLog = ObjectCopier.DeepCopy(_oldAccLimit);

                        _oldAccLimit.AuthStatusId = _AccLimit.AuthStatusId = "U";
                        _oldAccLimit.LastAction   = _AccLimit.LastAction = "DEL";
                        _oldAccLimit.LastUpdateDT = _AccLimit.LastUpdateDT = System.DateTime.Now;
                        result = _IUoW.Repository <AccLimitSetup>().Update(_oldAccLimit);

                        #region Auth Log
                        _IAuthLogService = new AuthLogService();
                        //result = _IAuthLogService.AddAuthLog(_IUoW, _oldAccLimitForLog, _AccLimit, "DEL", "0001", "090102008", 1, "AccLimitSetup", "MFS_ACC_LIMIT", "MFS_ACC_LIMIT", _AccLimit.AccLimitId, "prova");
                        #endregion

                        if (result == 1)
                        {
                            _IUoW.Commit();
                        }
                        return(result);
                    }
                    return(result);
                }
                return(result);
            }
            catch (Exception ex)
            {
                _ObjErrorLogService = new ErrorLogService();
                _ObjErrorLogService.AddErrorLog(ex, string.Empty, "DeleteAccLimit(obj)", string.Empty);
                return(0);
            }
        }
Example #8
0
        public string AddCashIn(UserTransaction _UserTransaction, out mTaka.Utility.ISO20022.Camt054.Document document)
        {
            document = new Document();
            var grpHdr = document.BkToCstmrDbtCdtNtfctn.GrpHdr;

            grpHdr.MsgId   = mTaka.Utility.ISO.ISOHelper.RandomString();
            grpHdr.CreDtTm = DateTime.Now;
            var ntfctn = document.BkToCstmrDbtCdtNtfctn.Ntfctn.FirstOrDefault();
            var ntry   = ntfctn?.Ntry.FirstOrDefault();

            if (ntry != null)
            {
                ntry.Amt = new ActiveOrHistoricCurrencyAndAmount()
                {
                    Ccy = "BDT", Value = _UserTransaction.Amount
                };
                ntry.CdtDbtInd = CreditDebitCode.DBIT;
                ntry.Sts       = new EntryStatus1Choice()
                {
                    Item = "Other", ItemElementName = ItemChoiceType9.Prtry
                };
            }

            grpHdr.MsgPgntn.LastPgInd = true;
            grpHdr.MsgPgntn.PgNb      = "1";
            int result = 0;

            _UserTransaction.TransDT = Convert.ToDateTime(System.DateTime.Now.ToString("dd/MM/yyyy"));
            string           split_result    = string.Empty;
            string           MainAuthFlag    = string.Empty;
            AccMasterService _AccInfoService = new AccMasterService();
            AccMaster        _AccInfo_Post   = new AccMaster();
            AccMaster        _AccInfo_Get    = new AccMaster();

            StatusWiseServiceService _StatusWiseServiceService = new StatusWiseServiceService();
            StatusWiseService        _StatusWiseService        = new StatusWiseService();
            int CheckStatusWiseService = 0;

            TransactionRulesService _TransactionRulesService = new TransactionRulesService();
            TransactionRules        _TransactionRules        = new TransactionRules();
            int CheckTransactionRules = 0;

            AccLimitSetupService _AccLimitSetupService = new AccLimitSetupService();
            AccLimitSetup        _AccLimitSetup        = new AccLimitSetup();
            string CheckAccLimit = string.Empty;

            try
            {
                #region Get SystemAccountNo by WalletAccountNo
                _AccInfo_Post.FromSystemAccountNo = _UserTransaction.FromSystemAccountNo;
                _AccInfo_Post.ToSystemAccountNo   = _UserTransaction.ToSystemAccountNo;
                _AccInfo_Post.FunctionId          = _UserTransaction.FunctionId;
                _AccInfo_Get = _AccInfoService.GetAccInfo(_AccInfo_Post);
                if (_AccInfo_Get == null || _AccInfo_Get.FromSystemAccountNo == null || _AccInfo_Get.ToSystemAccountNo == null)
                {
                    split_result    = result + ":" + "Account No. not valid..";
                    grpHdr.AddtlInf = "Account No. not valid..";


                    return(split_result);
                }
                #endregion

                #region Check StatusWiseService
                _StatusWiseService.ToSystemAccountNo = _AccInfo_Get.ToSystemAccountNo;
                _StatusWiseService.DefineServiceId   = _UserTransaction.DefineServiceId;
                CheckStatusWiseService = _StatusWiseServiceService.CheckStatusWiseService(_StatusWiseService);
                if (CheckStatusWiseService == 0)
                {
                    split_result    = result + ":" + "Account No. is not active for this transaction..";
                    grpHdr.AddtlInf = "Account No. is not active for this transaction..";
                    return(split_result);
                }
                #endregion

                #region Check TransactionRules
                _TransactionRules.FromSystemAccountNo = _AccInfo_Get.FromSystemAccountNo;
                _TransactionRules.ToSystemAccountNo   = _AccInfo_Get.ToSystemAccountNo;
                _TransactionRules.DefineServiceId     = _UserTransaction.DefineServiceId;
                CheckTransactionRules = _TransactionRulesService.CheckTransactionRules(_TransactionRules);
                if (CheckTransactionRules == 0)
                {
                    split_result    = result + ":" + "Transaction is not allowed..";
                    grpHdr.AddtlInf = "Transaction is not allowed..";
                    return(split_result);
                }
                #endregion

                #region Check Limit
                _AccLimitSetup.FromSystemAccountNo = _AccInfo_Get.FromSystemAccountNo;
                _AccLimitSetup.FromAccType         = _AccInfo_Get.FromAccType;
                _AccLimitSetup.ToSystemAccountNo   = _AccInfo_Get.ToSystemAccountNo;
                _AccLimitSetup.ToAccType           = _AccInfo_Get.ToAccType;
                _AccLimitSetup.DefineServiceId     = _UserTransaction.DefineServiceId;
                _AccLimitSetup.Amount  = _UserTransaction.Amount;
                _AccLimitSetup.TransDT = _UserTransaction.TransDT;
                CheckAccLimit          = _AccLimitSetupService.CheckAccLimit(_AccLimitSetup);
                if (CheckAccLimit != "true")
                {
                    split_result = result + ":" + CheckAccLimit;
                    return(split_result);
                }
                #endregion

                if (_AccInfo_Get.FromSystemAccountNo != null && _AccInfo_Get.ToSystemAccountNo != null && CheckStatusWiseService != 0 && CheckTransactionRules != 0 && CheckAccLimit == "true")
                {
                    var _max = _IUoW.Repository <UserTransaction>().GetMaxValue(x => x.SerialId) + 1;
                    _UserTransaction.SerialId            = _max.ToString().PadLeft(3, '0');
                    _UserTransaction.AuthStatusId        = "U";
                    _UserTransaction.LastAction          = "ADD";
                    _UserTransaction.MakeDT              = System.DateTime.Now;
                    _UserTransaction.MakeBy              = "prova";
                    _UserTransaction.FromSystemAccountNo = _AccInfo_Get.FromSystemAccountNo;
                    _UserTransaction.ToSystemAccountNo   = _AccInfo_Get.ToSystemAccountNo;
                    result = _IUoW.Repository <UserTransaction>().Add(_UserTransaction);

                    #region Auth Log
                    if (result == 1)
                    {
                        string url = ConfigurationManager.AppSettings["LgurdaService_server"] + "/GetAuthPermissionByFunctionId/" + _UserTransaction.FunctionId + "/" + _UserTransaction.FunctionName + "?format=json";
                        using (WebClient wc = new WebClient())
                        {
                            TransactionRules OBJ_TransactionRules = new TransactionRules();
                            var json = wc.DownloadString(url);
                            OBJ_TransactionRules = JsonConvert.DeserializeObject <TransactionRules>(json);
                            MainAuthFlag         = OBJ_TransactionRules.GetAuthPermissionByFunctionIdResult;
                        }
                        if (MainAuthFlag == "1")
                        {
                            _IAuthLogService = new AuthLogService();
                            long _outMaxSlAuthLogDtl = 0;
                            result = _IAuthLogService.AddAuthLog(_IUoW, null, _UserTransaction, "ADD", "0001", _UserTransaction.FunctionId, 1, "CashIn", "MTK_USER_TXN", "SerialId", _UserTransaction.SerialId, "prova", _outMaxSlAuthLogDtl, out _outMaxSlAuthLogDtl);
                        }
                        if (MainAuthFlag == "0")
                        {
                            _IAuthLogService = new AuthLogService();
                            FTAuthLog _ObjAuthLog = new FTAuthLog();
                            _ObjAuthLog.TableNm       = "MTK_USER_TXN";
                            _ObjAuthLog.AuthStatusId  = "A";
                            _ObjAuthLog.LastAction    = "ADD";
                            _ObjAuthLog.FunctionId    = _UserTransaction.FunctionId;
                            _ObjAuthLog.TablePkColVal = _UserTransaction.SerialId;
                            result = _IAuthLogService.SetTableObject_FT <UserTransaction>(_IUoW, _ObjAuthLog, _UserTransaction);
                        }
                    }
                    #endregion

                    if (result == 1)
                    {
                        _IUoW.Commit();

                        split_result    = result + ":" + "Saved Successfully";
                        grpHdr.AddtlInf = "Saved Successfully";
                    }
                    else
                    {
                        split_result    = result + ":" + "information hasn't been added";
                        grpHdr.AddtlInf = "information hasn't been added";
                    }
                }
            }
            catch (Exception ex)
            {
                _ObjErrorLogService = new ErrorLogService();
                _ObjErrorLogService.AddErrorLog(ex, string.Empty, "AddCashIn(obj)", string.Empty);
                split_result    = result + ":" + "";
                grpHdr.AddtlInf = "";
            }
            return(split_result);
        }
Example #9
0
        public string AddFundTransfer(FundTransfer _FundTransfer)
        {
            int result = 0;

            _FundTransfer.TransDT = Convert.ToDateTime(System.DateTime.Now.ToString("dd/MM/yyyy"));
            string           split_result    = string.Empty;
            string           MainAuthFlag    = string.Empty;
            AccMasterService _AccInfoService = new AccMasterService();
            AccMaster        _AccInfo_Post   = new AccMaster();
            AccMaster        _AccInfo_Get    = new AccMaster();

            StatusWiseServiceService _StatusWiseServiceService = new StatusWiseServiceService();
            StatusWiseService        _StatusWiseService        = new StatusWiseService();
            int CheckStatusWiseService = 0;

            TransactionRulesService _TransactionRulesService = new TransactionRulesService();
            TransactionRules        _TransactionRules        = new TransactionRules();
            int CheckTransactionRules = 0;

            AccLimitSetupService _AccLimitSetupService = new AccLimitSetupService();
            AccLimitSetup        _AccLimitSetup        = new AccLimitSetup();
            string CheckAccLimit = string.Empty;

            try
            {
                #region Get SystemAccountNo by WalletAccountNo
                _AccInfo_Post.FromSystemAccountNo = _FundTransfer.FromSystemAccountNo;
                _AccInfo_Post.ToSystemAccountNo   = _FundTransfer.ToSystemAccountNo;
                _AccInfo_Post.FunctionId          = _FundTransfer.FunctionId;
                _AccInfo_Get = _AccInfoService.GetAccInfo(_AccInfo_Post);
                if (_AccInfo_Get == null || _AccInfo_Get.FromSystemAccountNo == null || _AccInfo_Get.ToSystemAccountNo == null)
                {
                    split_result = result + ":" + "Account No. not valid..";
                    return(split_result);
                }
                #endregion

                #region Check StatusWiseService
                _StatusWiseService.ToSystemAccountNo = _AccInfo_Get.ToSystemAccountNo;
                _StatusWiseService.DefineServiceId   = _FundTransfer.DefineServiceId;
                CheckStatusWiseService = _StatusWiseServiceService.CheckStatusWiseService(_StatusWiseService);
                if (CheckStatusWiseService == 0)
                {
                    split_result = result + ":" + "Account No. is not active for this transaction..";
                    return(split_result);
                }
                #endregion

                #region Check TransactionRules
                _TransactionRules.FromSystemAccountNo = _AccInfo_Get.FromSystemAccountNo;
                _TransactionRules.ToSystemAccountNo   = _AccInfo_Get.ToSystemAccountNo;
                _TransactionRules.DefineServiceId     = _FundTransfer.DefineServiceId;
                CheckTransactionRules = _TransactionRulesService.CheckTransactionRules(_TransactionRules);
                if (CheckTransactionRules == 0)
                {
                    split_result = result + ":" + "Transaction is not allowed..";
                    return(split_result);
                }
                #endregion

                #region Check Limit
                _AccLimitSetup.FromSystemAccountNo = _AccInfo_Get.FromSystemAccountNo;
                _AccLimitSetup.FromAccType         = _AccInfo_Get.FromAccType;
                _AccLimitSetup.ToSystemAccountNo   = _AccInfo_Get.ToSystemAccountNo;
                _AccLimitSetup.ToAccType           = _AccInfo_Get.ToAccType;
                _AccLimitSetup.DefineServiceId     = _FundTransfer.DefineServiceId;
                _AccLimitSetup.Amount  = _FundTransfer.Amount;
                _AccLimitSetup.TransDT = _FundTransfer.TransDT;
                CheckAccLimit          = _AccLimitSetupService.CheckAccLimit(_AccLimitSetup);
                if (CheckAccLimit != "true")
                {
                    split_result = result + ":" + CheckAccLimit;
                    return(split_result);
                }
                #endregion

                if (_AccInfo_Get.FromSystemAccountNo != null && _AccInfo_Get.ToSystemAccountNo != null && CheckStatusWiseService != 0 && CheckTransactionRules != 0 && CheckAccLimit == "true")
                {
                    var _max = _IUoW.Repository <FundTransfer>().GetMaxValue(x => x.FundTransferId) + 1;
                    _FundTransfer.FundTransferId      = _max.ToString().PadLeft(9, '0');
                    _FundTransfer.AuthStatusId        = "U";
                    _FundTransfer.LastAction          = "ADD";
                    _FundTransfer.MakeDT              = System.DateTime.Now;
                    _FundTransfer.MakeBy              = "prova";
                    _FundTransfer.FromSystemAccountNo = _AccInfo_Get.FromSystemAccountNo;
                    _FundTransfer.ToSystemAccountNo   = _AccInfo_Get.ToSystemAccountNo;
                    result = _IUoW.Repository <FundTransfer>().Add(_FundTransfer);

                    #region Auth Log
                    if (result == 1)
                    {
                        string url = ConfigurationManager.AppSettings["LgurdaService_server"] + "/GetAuthPermissionByFunctionId/" + _FundTransfer.FunctionId + "/" + _FundTransfer.FunctionName + "?format=json";
                        using (WebClient wc = new WebClient())
                        {
                            TransactionRules OBJ_TransactionRules = new TransactionRules();
                            var json = wc.DownloadString(url);
                            OBJ_TransactionRules = JsonConvert.DeserializeObject <TransactionRules>(json);
                            MainAuthFlag         = OBJ_TransactionRules.GetAuthPermissionByFunctionIdResult;
                        }
                        if (MainAuthFlag == "1")
                        {
                            _IAuthLogService = new AuthLogService();
                            long _outMaxSlAuthLogDtl = 0;
                            result = _IAuthLogService.AddAuthLog(_IUoW, null, _FundTransfer, "ADD", "0001", _FundTransfer.FunctionId, 1, "FundTransfer", "MTK_TRN_FUND_TRANSFER", "FundTransferId", _FundTransfer.FundTransferId, "prova", _outMaxSlAuthLogDtl, out _outMaxSlAuthLogDtl);
                        }
                        if (MainAuthFlag == "0")
                        {
                            _IAuthLogService = new AuthLogService();
                            FTAuthLog _ObjAuthLog = new FTAuthLog();
                            _ObjAuthLog.TableNm       = "MTK_TRN_FUND_TRANSFER";
                            _ObjAuthLog.AuthStatusId  = "A";
                            _ObjAuthLog.LastAction    = "ADD";
                            _ObjAuthLog.FunctionId    = _FundTransfer.FunctionId;
                            _ObjAuthLog.TablePkColVal = _FundTransfer.FundTransferId;
                            result = _IAuthLogService.SetTableObject_FT <FundTransfer>(_IUoW, _ObjAuthLog, _FundTransfer);
                        }
                    }
                    #endregion

                    if (result == 1)
                    {
                        _IUoW.Commit();
                        split_result = result + ":" + "Saved Successfully";
                    }
                    else
                    {
                        split_result = result + ":" + "information hasn't been added";
                    }
                }
            }
            catch (Exception ex)
            {
                _ObjErrorLogService = new ErrorLogService();
                _ObjErrorLogService.AddErrorLog(ex, string.Empty, "AddFundTransfer(obj)", string.Empty);
                split_result = result + ":" + "";
            }
            return(split_result);
        }
        public int AddAccLimit(AccLimitSetup _AccLimit)
        {
            try
            {
                int result = 0;
                var _max   = _IUoW.Repository <AccLimitSetup>().GetMaxValue(x => x.AccLimitId) + 1;
                if (_AccLimit.AllAccCategory == "True")
                {
                    var List_Acc_Group = _IUoW.Repository <AccCategory>().GetBy(x => x.AuthStatusId == "A" &&
                                                                                x.LastAction != "DEL", n => new { n.AccCategoryId, n.AccCategoryNm });

                    List <AccLimitSetup> List_AccLimitSetup = new List <AccLimitSetup>();
                    foreach (var element in List_Acc_Group)
                    {
                        AccLimitSetup _AccLimitTemp = new AccLimitSetup();
                        _AccLimitTemp               = ObjectCopier.DeepCopy(_AccLimit);
                        _AccLimitTemp.AccLimitId    = (_max++).ToString().PadLeft(3, '0');
                        _AccLimitTemp.AccCategoryId = element.AccCategoryId;
                        _AccLimitTemp.AuthStatusId  = "A";
                        _AccLimitTemp.LastAction    = "ADD";
                        _AccLimit.MakeBy            = "prova";
                        _AccLimitTemp.MakeDT        = System.DateTime.Now;
                        _AccLimitTemp.TransDT       = Convert.ToDateTime(System.DateTime.Now.ToString("dd/MM/yyyy"));
                        List_AccLimitSetup.Add(_AccLimitTemp);
                        //result = _IUoW.Repository<AccLimitSetup>().AddRange(List_AccLimitSetup);
                    }
                    result = _IUoW.Repository <AccLimitSetup>().AddRange(List_AccLimitSetup);
                    //if(result == 1)
                    //{
                    //    _IUoW.Commit();
                    //}
                }
                if (_AccLimit.AllAccType == "True")
                {
                    var List_Acc_Type = _IUoW.Repository <AccType>().GetBy(x => x.AuthStatusId == "A" &&
                                                                           x.LastAction != "DEL", n => new { n.AccTypeId, n.AccTypeNm });

                    List <AccLimitSetup> List_AccLimitSetup = new List <AccLimitSetup>();
                    foreach (var element in List_Acc_Type)
                    {
                        AccLimitSetup _AccLimitTemp = new AccLimitSetup();
                        _AccLimitTemp              = ObjectCopier.DeepCopy(_AccLimit);
                        _AccLimitTemp.AccLimitId   = (_max++).ToString().PadLeft(3, '0');
                        _AccLimitTemp.AccTypeId    = element.AccTypeId;
                        _AccLimitTemp.AuthStatusId = "A";
                        _AccLimitTemp.LastAction   = "ADD";
                        _AccLimit.MakeBy           = "prova";
                        _AccLimitTemp.MakeDT       = System.DateTime.Now;
                        _AccLimitTemp.TransDT      = Convert.ToDateTime(System.DateTime.Now.ToString("dd/MM/yyyy"));
                        List_AccLimitSetup.Add(_AccLimitTemp);
                        //result = _IUoW.Repository<AccLimitSetup>().AddRange(List_AccLimitSetup);
                    }
                    result = _IUoW.Repository <AccLimitSetup>().AddRange(List_AccLimitSetup);
                    //if (result == 1)
                    //{
                    //    _IUoW.Commit();
                    //}
                }
                if (_AccLimit.AllDefineService == "True")
                {
                    var List_DefineService = _IUoW.Repository <DefineService>().GetBy(x => x.AuthStatusId == "A" &&
                                                                                      x.LastAction != "DEL", n => new { n.DefineServiceId, n.DefineServiceNm });

                    List <AccLimitSetup> List_AccLimitSetup = new List <AccLimitSetup>();
                    foreach (var element in List_DefineService)
                    {
                        AccLimitSetup _AccLimitTemp = new AccLimitSetup();
                        _AccLimitTemp                 = ObjectCopier.DeepCopy(_AccLimit);
                        _AccLimitTemp.AccLimitId      = (_max++).ToString().PadLeft(3, '0');
                        _AccLimitTemp.DefineServiceId = element.DefineServiceId;
                        _AccLimitTemp.AuthStatusId    = "A";
                        _AccLimitTemp.LastAction      = "ADD";
                        _AccLimit.MakeBy              = "prova";
                        _AccLimitTemp.MakeDT          = System.DateTime.Now;
                        _AccLimitTemp.TransDT         = Convert.ToDateTime(System.DateTime.Now.ToString("dd/MM/yyyy"));
                        List_AccLimitSetup.Add(_AccLimitTemp);
                        //result = _IUoW.Repository<AccLimitSetup>().AddRange(List_AccLimitSetup);
                    }
                    result = _IUoW.Repository <AccLimitSetup>().AddRange(List_AccLimitSetup);
                    //if (result == 1)
                    //{
                    //    _IUoW.Commit();
                    //}
                    //return result;
                }
                if (_AccLimit != null && string.IsNullOrWhiteSpace(_AccLimit.AllAccCategory) && string.IsNullOrWhiteSpace(_AccLimit.AllAccType) && string.IsNullOrWhiteSpace(_AccLimit.AllDefineService))
                {
                    _AccLimit.AccLimitId   = _max.ToString().PadLeft(3, '0');
                    _AccLimit.AuthStatusId = "A";
                    _AccLimit.LastAction   = "ADD";
                    _AccLimit.MakeBy       = "prova";
                    _AccLimit.MakeDT       = System.DateTime.Now;
                    _AccLimit.TransDT      = Convert.ToDateTime(System.DateTime.Now.ToString("dd/MM/yyyy"));
                    result = _IUoW.Repository <AccLimitSetup>().Add(_AccLimit);

                    //if (result == 1)
                    //{
                    //    _IUoW.Commit();
                    //}
                    //return result;
                }
                //#region Auth Log
                //if (result == 1)
                //{
                //    _IAuthLogService = new AuthLogService();
                //    long _outMaxSlAuthLogDtl = 0;
                //    result = _IAuthLogService.AddAuthLog(_IUoW, null, _AccLimit, "ADD", "0001", "090102008", 1, "MTK_SP_CUS_TYPE", "AccLimitId", _AccLimit.AccLimitId, "mtaka", _outMaxSlAuthLogDtl, out _outMaxSlAuthLogDtl);
                //}
                //#endregion
                if (result == 1)
                {
                    _IUoW.Commit();
                }
                return(result);
            }
            catch (Exception ex)
            {
                _ObjErrorLogService = new ErrorLogService();
                _ObjErrorLogService.AddErrorLog(ex, string.Empty, "AddAccLimit(obj)", string.Empty);
                return(0);
            }
        }
        public string CheckAccLimit(AccLimitSetup _AccLimit)
        {
            AccLimitSetup Acc_Limit_Setup_From = new AccLimitSetup();
            AccLimitSetup Acc_Limit_Setup_To   = new AccLimitSetup();
            LedgerMaster  _LedgerMaster        = new LedgerMaster();
            LedgerService _LedgerService       = new LedgerService();

            try
            {
                #region From Account Limit Check
                var _From_Acc_Limit = _IUoW.Repository <AccLimitSetup>().GetBy(x => x.AuthStatusId == "A" && x.LastAction != "DEL" &&
                                                                               x.DefineServiceId == _AccLimit.DefineServiceId && x.AccTypeId == _AccLimit.FromAccType);
                var _To_Acc_Limit = _IUoW.Repository <AccLimitSetup>().GetBy(x => x.AuthStatusId == "A" && x.LastAction != "DEL" &&
                                                                             x.DefineServiceId == _AccLimit.DefineServiceId && x.AccTypeId == _AccLimit.ToAccType);

                if (_From_Acc_Limit == null)
                {
                    return("no transaction limit has set for this service and from account type");
                }
                if (_To_Acc_Limit == null)
                {
                    return("no transaction limit has set for this service and to account type");
                }

                #region Checking by Ledger BalanceLimit
                //if (_From_Acc_Limit.AllDefineService == "0")
                //{
                //    _LedgerMaster.SystemAccountNo = _AccLimit.FromSystemAccountNo;
                //    _LedgerMaster.Amount = _AccLimit.Amount;
                //    _LedgerMaster.BalanceLimit = _From_Acc_Limit.BalanceLimit;
                //    _LedgerMaster.DefineServiceId = _AccLimit.DefineServiceId;
                //    var msg = _LedgerService.IfAccCrossTheBalanceLimit(_LedgerMaster);

                //    if (msg != "true")
                //    {
                //        return msg;
                //    }
                //}
                #endregion

                //#region Checking by Event
                //else
                //{
                //    var _ListLedgerTxnFrom = (List<LedgerTxn>)_IUoW.Repository<LedgerTxn>().Get(x => x.AuthStatusId == "A" && x.LastAction != "DEL" &&
                //    x.DefineServiceId == _AccLimit.DefineServiceId && x.FromSystemAccountNo == _AccLimit.FromSystemAccountNo && x.TransectionDate == _AccLimit.TransDT);
                //    var _ListLedgerTxnTo = (List<LedgerTxn>)_IUoW.Repository<LedgerTxn>().Get(x => x.AuthStatusId == "A" && x.LastAction != "DEL" &&
                //    x.DefineServiceId == _AccLimit.DefineServiceId && x.FromSystemAccountNo == _AccLimit.ToSystemAccountNo && x.TransectionDate == _AccLimit.TransDT);

                //    #region Get Daily Number Of Transaction
                //    Acc_Limit_Setup_From.NoOfOccurrence = (_ListLedgerTxnFrom.Count()).ToString();
                //    Acc_Limit_Setup_To.NoOfOccurrence = (_ListLedgerTxnTo.Count()).ToString();
                //    #endregion

                //    #region Get Daily Transaction Amount
                //    Acc_Limit_Setup_From.AmountOftotalOccurrences = Convert.ToDecimal(_ListLedgerTxnFrom.Select(m => m.PaymentAmount + m.ReceiveAmount).Sum());
                //    Acc_Limit_Setup_To.AmountOftotalOccurrences = Convert.ToDecimal(_ListLedgerTxnTo.Select(m => m.PaymentAmount + m.ReceiveAmount).Sum());
                //    #endregion

                //    #region Checking Transaction Limit For From Account
                //    if (Convert.ToInt32(Acc_Limit_Setup_From.NoOfOccurrence) > Convert.ToInt32(_From_Acc_Limit.NoOfOccurrence))
                //    {
                //        return "from account has crossed daily number of transaction limit! the actual limit is " + _From_Acc_Limit.NoOfOccurrence;
                //    }
                //    if (Acc_Limit_Setup_From.AmountOftotalOccurrences > _From_Acc_Limit.AmountOftotalOccurrences)
                //    {
                //        return "from account has crossed daily total amount of transaction limit! the actual limit is " + _From_Acc_Limit.AmountOftotalOccurrences;
                //    }
                //    if (_AccLimit.Amount > _From_Acc_Limit.AmountOfOccurrence)
                //    {
                //        return "from account has crossed amount of transaction limit! the actual limit is " + _From_Acc_Limit.AmountOfOccurrence;
                //    }
                //    #endregion

                //    #region Checking Transaction Limit For To Account
                //    if (Convert.ToInt32(Acc_Limit_Setup_To.NoOfOccurrence) > Convert.ToInt32(_To_Acc_Limit.NoOfOccurrence))
                //    {
                //        return "to account has crossed daily number of transaction limit! the actual limit is " + _To_Acc_Limit.NoOfOccurrence;
                //    }
                //    if (Acc_Limit_Setup_To.AmountOftotalOccurrences > _To_Acc_Limit.AmountOftotalOccurrences)
                //    {
                //        return "to account has crossed daily total amount of transaction limit! the actual limit is " + _To_Acc_Limit.AmountOftotalOccurrences;
                //    }
                //    if (_AccLimit.Amount > _To_Acc_Limit.AmountOfOccurrence)
                //    {
                //        return "to account has crossed amount of transaction limit! the actual limit is " + _To_Acc_Limit.AmountOfOccurrence;
                //    }
                //    #endregion
                //}
                //#endregion
                #endregion
                return("true");
            }
            catch (Exception ex)
            {
                _ObjErrorLogService = new ErrorLogService();
                _ObjErrorLogService.AddErrorLog(ex, string.Empty, "CheckStatusWiseService(obj)", string.Empty);
                return("false");
            }
        }