public async Task <ActionResult> Login(ICMS.Lite.Repository.ViewModels.AccountViewModel.LoginViewModel model) { ViewBag.Response = null; if (!ModelState.IsValid) { return(View(model)); } try { var isValid = await _accountService.AUTHENTICATEUSER(model); if (!isValid) { ViewBag.Response = "Invalid username or password"; return(View(model)); } await this.LoginAuthenticationTicketInitializer(model); var returnUrl = string.Empty; if (string.IsNullOrEmpty(returnUrl)) { var authCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; if (authCookie == null) { ViewBag.Response = "Unable to determine your role. Contact your administrator"; } //ModelState.AddModelError("", "Unable to determine your role. Contact your administrator"); else { //Extract the forms authentication cookie FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value); //If caching roles in userData field then extract var role = authTicket.UserData; var roleName = authTicket.UserData; //Todo::Get menu for the user role //if (string.IsNullOrEmpty(roleName)) //{ // ModelState.AddModelError("", "Invalid login attempt."); // return View(model); //} return(RedirectToAction("Index", new { Controller = "Indents", action = "Index" })); } } } catch (Exception ex) { var error = await ExceptionRefiner.LogError(ex); ViewBag.Response = error; return(View(model)); } return(View(model)); }
public async Task <UserViewModel> GETUSERBYUSERID(string username) { try { var parameters = new List <IDbDataParameter>(); parameters.Add(_db.CreateParameter("P_USER_ID", 10, username, DbType.String, ParameterDirection.Input)); parameters.Add(_db.CreateParameter("P_USER_NAME", 10, "", DbType.String, ParameterDirection.Output)); parameters.Add(_db.CreateParameter("P_USER_ROLE", 10, "", DbType.String, ParameterDirection.Output)); parameters.Add(_db.CreateParameter("P_APPROVED", 10, "", DbType.String, ParameterDirection.Output)); parameters.Add(_db.CreateParameter("P_DELETED", 10, "", DbType.String, ParameterDirection.Output)); parameters.Add(_db.CreateParameter("P_ERROR_MSG", 100, "", DbType.String, ParameterDirection.Output)); DbConnection connection = null; var userCommand = _db.GetExecuteNonQuery(STOREDPROC.GETUSERBYUSERID, CommandType.StoredProcedure, parameters, 0, out connection); string uId = userCommand.Parameters["P_USER_ID"].Value.ToString(); string uname = userCommand.Parameters["P_USER_NAME"].Value.ToString(); string urole = userCommand.Parameters["P_USER_ROLE"].Value.ToString(); string uapproved = userCommand.Parameters["P_APPROVED"].Value.ToString(); string udeleted = userCommand.Parameters["P_DELETED"].Value.ToString(); string error = userCommand.Parameters["P_ERROR_MSG"].Value.ToString(); if (string.IsNullOrEmpty(error)) { var objUser = new UserViewModel() { USER_ID = uId, USER_NAME = uname, USER_ROLE = urole, APPROVED = uapproved, DELETED = udeleted, Status = true, Message = "Success" }; ErrorWriter.WriteLog($"Fetch user data returned : { objUser.Message } at { DateTime.Now }"); return(objUser); } else { ErrorWriter.WriteLog($"Fetch user data returned : { error } at { DateTime.Now }"); throw new Exception(error); } } catch (Exception ex) { var error = await ExceptionRefiner.LogError(ex); ErrorWriter.WriteLog($"Fetch user data returned : { ex.Message } at { DateTime.Now }"); throw new Exception(error); } }
public async Task <bool> AUTHENTICATEUSER(LoginViewModel loginModel) { if (loginModel == null) { throw new PlatformCustomException("Invalid username or password"); } try { var objUser = new DataResult <UserViewModel>(); var parameters = new List <IDbDataParameter>(); var authorizedRole = GetConfigValue("AuthorizedUserRole"); //implement password hashing here loginModel.Password = HashUtil.EncryptStringValue(loginModel.Password); parameters.Add(_db.CreateParameter("p_user_id", 10, loginModel.UserId, DbType.String, ParameterDirection.Input)); parameters.Add(_db.CreateParameter("p_password", 70, loginModel.Password, DbType.String, ParameterDirection.Input)); parameters.Add(_db.CreateParameter("p_authorized_role", 70, authorizedRole, DbType.String, ParameterDirection.Input)); parameters.Add(_db.CreateParameter("p_error_msg", 100, "", DbType.String, ParameterDirection.Output)); parameters.Add(_db.CreateParameter("p_success", 100, "", DbType.String, ParameterDirection.Output)); DbConnection connection = null; var authCommand = _db.GetExecuteNonQuery(STOREDPROC.AUTHUSER, CommandType.StoredProcedure, parameters, 0, out connection); string error = authCommand.Parameters["p_error_msg"].Value.ToString(); string success = authCommand.Parameters["p_success"].Value.ToString(); if (!string.IsNullOrEmpty(error)) { throw new PlatformCustomException("Invalid username or password."); } var message = string.IsNullOrEmpty(error) ? error : success; ErrorWriter.WriteLog($"Login operation returned : { message } at { DateTime.Now }"); return(true); } catch (Exception ex) { var error = await ExceptionRefiner.LogError(ex); ErrorWriter.WriteLog($"Login operation returned : { ex.Message } at { DateTime.Now }"); throw new Exception(error); } }
public async Task <DataResult <List <AvailableIndentsViewModel> > > GETINDENTSFORENCRYPTION() { var objIndents = new DataResult <List <AvailableIndentsViewModel> >(); try { var parameter = new List <IDbDataParameter>(); parameter.Add(_db.CreateParameter("P_ERROR_MSG", string.Empty, DbType.String)); parameter.Add(_db.CreateParameter("P_INDENTFORENCRYPTION", OracleDbType.RefCursor, null)); var indentsDT = _db.GetDataTable(STOREDPROC.GENERATEDINDENTLIST, CommandType.StoredProcedure, 0, parameter); if (indentsDT.Rows.Count == 0) { objIndents.Data = null; objIndents.Status = false; objIndents.Message = "No record currently available for processing"; } var indentsList = ConvertDataTableToList <AvailableIndentsViewModel>(indentsDT); objIndents.Data = indentsList; objIndents.Status = true; objIndents.Message = "Successful"; } catch (Exception ex) { var error = await ExceptionRefiner.LogError(ex); ErrorWriter.WriteLog($"Fetch indents returned error: { ex.Message } at { DateTime.Now }"); objIndents.Data = null; objIndents.Status = false; objIndents.Message = error; } ErrorWriter.WriteLog($"Fetch indents returned : { objIndents.Message } at { DateTime.Now }"); return(objIndents); }
public async Task <DataResult <List <ReportViewModel> > > GETINDENTSREPORTS(string startDate, string endDate) { var objReport = new DataResult <List <ReportViewModel> >(); try { var dt = new DataTable(); var ds = _dr.GETINDENTSREPORTS(startDate, endDate); dt = ds.Tables[0]; if (dt.Rows.Count == 0) { objReport.Data = null; objReport.Status = false; objReport.Message = "No record currently available for processing"; return(objReport); } var reportList = ConvertDataTableToList <ReportViewModel>(dt); objReport.Data = reportList; objReport.Status = true; objReport.Message = "Successful"; } catch (Exception ex) { var error = await ExceptionRefiner.LogError(ex); ErrorWriter.WriteLog($"Indent reports returned error: { ex.Message } at { DateTime.Now }"); objReport.Data = null; objReport.Status = false; objReport.Message = error; } return(objReport); }
public async Task <DataResult <MfbViewModel> > UPLOADMFBEXCEL(HttpPostedFileBase upload, string username) { try { if (string.IsNullOrEmpty(username)) { throw new PlatformCustomException("invalid user"); } var objResult = new DataResult <MfbViewModel>(); var parameter = new List <IDbDataParameter>(); //declare all variables for indents for excel #region IndentVariables var indentId = string.Empty; var micrAccountNo = string.Empty; var sortCode = string.Empty; var lastSerialNumber = 0; var branchCode = string.Empty; var branchName = string.Empty; var firstChequeNumber = string.Empty; var numberOfCheques = string.Empty; var numberOfChequesPrinted = string.Empty; var chequeType = string.Empty; var dateOfRequest = DateTime.Now.ToString("dd-MMM-yy"); var dateEnterted = DateTime.Now.ToString("dd-MMM-yy"); var pulled = string.Empty; var datePulled = DateTime.Now.ToString("dd-MMM-yy"); var printed = string.Empty; var approved = string.Empty; var approver = string.Empty; var uploaded = string.Empty; var requisitionId = string.Empty; var scheduleNo = string.Empty; var indentSource = string.Empty; var deliveryBranchCode = string.Empty; var customerName = string.Empty; var ranged = string.Empty; var recieved = string.Empty; var dateRecieved = DateTime.Now.ToString("dd-MMM-yy"); var deleted = string.Empty; var acknowledged = string.Empty; var dateAcknowledged = DateTime.Now.ToString("dd-MMM-yy"); var dispatched = string.Empty; var dateDispatched = DateTime.Now.ToString("dd-MMM-yy"); var dispatchNumber = string.Empty; var dateApproved = DateTime.Now.ToString("dd-MMM-yy"); var costOfBooklet = string.Empty; var cancel = string.Empty; var mult = string.Empty; var cmcCode = string.Empty; var batchId = string.Empty; var generated = string.Empty; var dateOfPrinting = DateTime.Now.ToString("dd-MMM-yy"); var receivedApprovedBy = string.Empty; int lastSerialCounter = 0; #endregion var validateUpload = await MfbExcelValidation(upload); //convert excel to list var convertExcelToDT = FileUploadToDataTable(upload); //convert databaTable to List var convertDtToList = ConvertDataTableToList <MFBIndentsUpload>(convertExcelToDT); var listMfb = new List <MFBIndentsUpload>(); foreach (var item in convertDtToList) { var branchParam = new List <IDbDataParameter>(); DbConnection connection = null; branchParam.Add(_db.CreateParameter("p_branchname", 100, item.BRANCHNAME, DbType.String, ParameterDirection.Input)); branchParam.Add(_db.CreateParameter("p_branchcode", 5, string.Empty, DbType.String, ParameterDirection.Output)); branchParam.Add(_db.CreateParameter("p_sortcode", 9, string.Empty, DbType.String, ParameterDirection.Output)); branchParam.Add(_db.CreateParameter("p_cmcinuse", 5, string.Empty, DbType.String, ParameterDirection.Output)); branchParam.Add(_db.CreateParameter("p_error_msg", 200, string.Empty, DbType.String, ParameterDirection.Output)); if (string.IsNullOrEmpty(branchCode)) { var getBranchCodeByName = _db.GetExecuteNonQuery(STOREDPROC.GETBRANCHCODEBYBRANCHNAME, CommandType.StoredProcedure, branchParam, 0, out connection); branchCode = getBranchCodeByName.Parameters["p_branchcode"].Value.ToString(); sortCode = getBranchCodeByName.Parameters["p_sortcode"].Value.ToString(); cmcCode = getBranchCodeByName.Parameters["p_cmcinuse"].Value.ToString(); string error = getBranchCodeByName.Parameters["p_error_msg"].Value.ToString(); if (!string.IsNullOrEmpty(error)) { objResult.Data = null; objResult.Status = false; objResult.Message = error; ErrorWriter.WriteLog($"MFB upload process returned : { objResult.Message } at { DateTime.Now }"); return(objResult); } } var currentUser = username; var reqId = item.REQUISITION_ID.ToString(); micrAccountNo = item.MICR_ACCOUNT_NO; requisitionId = Convert.ToInt32(item.REQUISITION_ID).ToString("D8"); approved = "N"; branchName = item.BRANCHNAME; cancel = "N"; chequeType = GetConfigValue("MFBChequeType"); deleted = "N"; dispatched = "N"; numberOfCheques = item.NUMBEROFCHEQUES; indentSource = GetConfigValue("IndentSource"); pulled = "N"; acknowledged = "N"; printed = "N"; scheduleNo = item.SCHEDULE_NO; deliveryBranchCode = item.DELIVERY_BRANCHCODE; customerName = item.CUSTOMER_NAME; recieved = "N"; deleted = "N"; dispatched = "N"; indentId = $"{branchCode}{micrAccountNo}{requisitionId}"; var lastSerialParam = new List <IDbDataParameter>(); if (lastSerialCounter <= Convert.ToInt32(lastSerialNumber)) { var dR = new DataRead(); var dt = new DataTable(); var ds = dR.GetLastSerialNumberByBranchCode(branchCode); if (ds.Tables[0].Rows.Count < 1) { //SETLAST_SERIAL_NUMBER TO 1 lastSerialCounter = 1; var insertParams = new List <IDbDataParameter>(); insertParams.Add(_db.CreateParameter("p_branchcode", 13, branchCode, DbType.String, ParameterDirection.Input)); insertParams.Add(_db.CreateParameter("p_sortcode", 9, sortCode, DbType.String, ParameterDirection.Input)); insertParams.Add(_db.CreateParameter("p_lastserial", 12, 0, DbType.Decimal, ParameterDirection.Input)); insertParams.Add(_db.CreateParameter("p_cmccode", 3, cmcCode, DbType.String, ParameterDirection.Input)); insertParams.Add(_db.CreateParameter("p_error_msg", 200, string.Empty, DbType.String, ParameterDirection.Output)); //INSERT NEW RECORD FOR THE BRANCH _db.InsertWithTransaction(STOREDPROC.INSERTINTOLASTSERIALNUMBER, CommandType.StoredProcedure, insertParams, 0); } else { dt = ds.Tables[0]; var getLastSerial = dt.Rows[0]["LAST_SERIAL_NUMBER"].ToString(); lastSerialNumber = Convert.ToInt32(getLastSerial); var lastSerialNumberToUse = Convert.ToInt32(lastSerialNumber) + 1; lastSerialCounter = Convert.ToInt32(lastSerialNumberToUse); } } var objMfb = new MFBIndentsUpload() { INDENT_ID = indentId, MICR_ACCOUNT_NO = micrAccountNo, SORTCODE = sortCode, BRANCHNAME = branchName, BRANCHCODE = branchCode, FIRST_CHEQUE_NUMBER = lastSerialCounter.ToString(), NUMBEROFCHEQUES = numberOfCheques, NUMBEROFCHEQUESPRINTED = numberOfChequesPrinted, CHEQUETYPE = chequeType, DATEOFREQUEST = dateOfRequest, DATEENTERED = dateEnterted, PULLED = pulled, DATEPULLED = datePulled, PRINTED = printed, DATEOFPRINTING = dateOfPrinting, RECEIVEDAPPROVED_BY = receivedApprovedBy, ORIGINATOR = currentUser, APPROVED = approved, APPROVER = approver, UPLOADED = uploaded, REQUISITION_ID = requisitionId, SCHEDULE_NO = scheduleNo, INDENTSOURCE = indentSource, DELIVERY_BRANCHCODE = deliveryBranchCode, CUSTOMER_NAME = customerName, RANGED = ranged, RECEIVED = recieved, DATERECEIVED = dateRecieved, DELETED = deleted, ACKNOWLEDGED = acknowledged, DATEACKNOWLEDGED = dateAcknowledged, DISPATCHED = dispatched, DATEDISPATCHED = dateDispatched, DISPATCHNUMBER = dispatchNumber, DATEAPPROVED = dateApproved, COST_OF_BOOKLET = costOfBooklet, CANCEL = cancel, MULT = mult, BATCHID = batchId, GENERATED = generated }; lastSerialCounter++; listMfb.Add(objMfb); } var listMfbDT = new ListtoDataTable().ToDataTable(listMfb); _db.BulkCopyWriteToServer(listMfbDT, "INDENTS_TEST"); //update last serial table with the last id used by branch code var updateParam = new List <IDbDataParameter>(); updateParam.Add(_db.CreateParameter("p_lastserialnumber", 100, lastSerialCounter - 1, DbType.String, ParameterDirection.Input)); updateParam.Add(_db.CreateParameter("p_branchcode", 5, branchCode, DbType.String, ParameterDirection.Input)); updateParam.Add(_db.CreateParameter("p_error_msg", 200, string.Empty, DbType.String, ParameterDirection.Output)); _db.Update(STOREDPROC.UPDATELASTSERIALNUMBER, CommandType.StoredProcedure, updateParam, 0); objResult.Data = null; objResult.Status = true; objResult.Message = listMfbDT.Rows.Count.ToString(); ErrorWriter.WriteLog($"MFB upload process returned : { objResult.Message } indents processed at { DateTime.Now }"); return(objResult); } catch (Exception ex) { var error = await ExceptionRefiner.LogError(ex); ErrorWriter.WriteLog($"MFB upload process returned error: { ex.Message } at { DateTime.Now }"); return(new DataResult <MfbViewModel>() { Data = null, Message = error, Status = false }); } }
public async Task <DataResult <IndentsToGenerate> > GENERATEDINDENTSANDENCRYPT(string userId) { var objIndents = new DataResult <IndentsToGenerate>(); var parameter = new List <IDbDataParameter>(); var exportDataToExcel = false; var listIndents = new List <GeneratedIndents>(); //var copyOfGeneratedIndents = new DataTable(); DbConnection db = null; var transCode = GetConfigValue("TransactionCode"); try { parameter.Add(_db.CreateParameter("P_ERROR_MSG", string.Empty, DbType.String)); parameter.Add(_db.CreateParameter("P_INDENTGENERATED", OracleDbType.RefCursor, null)); parameter.Add(_db.CreateParameter("p_transcode", 13, transCode, DbType.String, ParameterDirection.Input)); var generateIndentsForProcessing = _db.GetDataTable(STOREDPROC.GENERATEINDENTFORPROC, CommandType.StoredProcedure, 0, parameter); if (generateIndentsForProcessing.Rows.Count == 0) { objIndents.Data = null; objIndents.Status = false; objIndents.Message = "No record currently available for processing."; ErrorWriter.WriteLog($"Fetch indetns for encryption returned : { objIndents.Message } at { DateTime.Now }"); return(objIndents); } //This part is used to remove indentId column from excel report. Uncomment if you want to generate indents without Indent_Id //copyOfGeneratedIndents = generateIndentsForProcessing.Copy(); //generateIndentsForProcessing.Columns.RemoveAt(0); DeleteExistingFilesInFolder(GetConfigValue("GeneratedIndentLocation")); var fullPath = ServerPath(); var fileName = Path.GetFileName(fullPath); exportDataToExcel = await ExportDataToExcelAndEncrypt(generateIndentsForProcessing, fileName, fullPath); var convertDTToList = ConvertDataTableToList <IndentsToGenerate>(generateIndentsForProcessing); string id = DateTime.Now.ToFileTimeUtc().ToString(); foreach (var item in convertDTToList) { var model = new GeneratedIndents(); model.GENERATED_ID = id; model.BATCHID = id; model.INDENT_ID = item.INDENT_ID; model.STATUSID = 0; model.DOM_BRANCH_ADD = item.DOMICILEBRANCHADDRESS; model.DOM_BRANCH_CODE = item.DOMICILEBRANCHCODE; model.SORTCODE = item.SORTCODE; model.CHEAQUETYPE = item.CHEQUETYPE; model.NUMBER_OF_LEAVES = item.NOOFLEAVES.ToString(); model.DEL_BRANCH_ADD = item.DELIVERYBRANCHADDRESS; model.SCHEMECODE = item.SCHEMECODE; model.DEL_BRANCH_CODE = item.DELIVERYBRANCHCODE; model.RANGE_START = item.RANGESTART.ToString(); model.RANGE_STOP = item.RANGESTOP.ToString(); model.GENERATEDBY = userId; model.GENERATEDON = DateTime.Now.ToString("dd-MMMM-yy"); model.SECNUM = null; model.DATECAPTURED = DateTime.Now.ToString("dd-MMMM-yy"); model.ACCOUNTNO = item.ACCOUNTNUMBER; model.ACCOUNTNAME = item.ACCOUNTNAME; model.CURRENCY = item.CURRENCY; listIndents.Add(model); } var listIndentDT = new ListtoDataTable().ToDataTable(listIndents); var updateParam = new List <IDbDataParameter>(); updateParam.Add(_db.CreateParameter("P_ERROR_MSG", 200, string.Empty, DbType.String, ParameterDirection.Output)); var updateCommand = _db.UpdateWithTransaction(STOREDPROC.UPDATEGENERATEDINDENTS, CommandType.StoredProcedure, updateParam, 0); _db.BulkCopyWriteToServer(listIndentDT, "GENERATEDINDENTS"); objIndents.Data = null; objIndents.Status = true; objIndents.Message = generateIndentsForProcessing.Rows.Count.ToString(); return(objIndents); } catch (Exception ex) { var error = await ExceptionRefiner.LogError(ex); ErrorWriter.WriteLog($"Encryption process returned error: { ex.Message } at { DateTime.Now }"); objIndents.Data = null; objIndents.Status = false; objIndents.Message = error; return(objIndents); } }
public async Task <DataResult <DecryptViewModel> > DECRYPTINDENTS(DecryptViewModel model) { var objDecrypt = new DataResult <DecryptViewModel>(); var listOfIndentId = new List <string>(); var listSec = new List <SecurityNumberUpdateVM>(); try { var dModel = new DecryptViewModel(); string outputFile = Path.Combine($"{model.OutputPath}\\DecryptedFile.xls"); var decrypt = PGPDecryptMain.Decrypt(model.EncryptedFilePath, GetConfigValue("PFSPrivateKey"), HashUtil.DecryptStringValue(GetConfigValue("PGPPassword")), outputFile); dModel.OutputPath = outputFile; if (!string.IsNullOrEmpty(dModel.OutputPath)) { var excelToDT = ParseExcelNow(outputFile); var excelToList = ConvertDataTableToList <ExcelFileViewModel>(excelToDT).Select(x => new ExcelFileViewModel { //INDENTID = x.INDENTID.Remove(0,1), INDENTID = x.INDENTID, ACCOUNTNUMBER = x.ACCOUNTNUMBER, ACCOUNTNAME = x.ACCOUNTNAME, //DOMICILEBRANCHNAME = x.DOMICILEBRANCHNAME, DOMICILEBRANCHADDRESS = x.DOMICILEBRANCHADDRESS, SORTCODE = x.SORTCODE, CHEQUETYPE = x.CHEQUETYPE, NOOFLEAVES = x.NOOFLEAVES, DELIVERYBRANCHADDRESS = x.DELIVERYBRANCHADDRESS, SCHEMECODE = x.SCHEMECODE, DOMICILEBRANCHCODE = x.DOMICILEBRANCHCODE, //DELIVERYBRANCHCODE = x.DELIVERYBRANCHCODE, RANGESTART = x.RANGESTART, RANGESTOP = x.RANGESTOP, STARTAUDIT = x.STARTAUDIT }); var accountNo = excelToList.FirstOrDefault().ACCOUNTNUMBER; var parameter = new List <IDbDataParameter>(); parameter.Add(_db.CreateParameter("P_ACCOUNTNO", accountNo, OracleDbType.Varchar2, ParameterDirection.Input)); parameter.Add(_db.CreateParameter("P_BATCHGENERATED", OracleDbType.RefCursor, null)); parameter.Add(_db.CreateParameter("P_ERROR_MSG", 100, string.Empty, DbType.String, ParameterDirection.Output)); var generatedIndentsByAccountNo = _db.GetDataTable(STOREDPROC.GETGENERATEDINDENTSBYACCTNO, CommandType.StoredProcedure, 0, parameter); if (generatedIndentsByAccountNo.Rows.Count == 0) { objDecrypt.Data = null; objDecrypt.Status = true; objDecrypt.Message = "No matching record in database"; } var generatedIndentsByAccountNoToList = ConvertDataTableToList <LocalValidateIndents>(generatedIndentsByAccountNo); foreach (var item in excelToList) { var objIndent = generatedIndentsByAccountNoToList.Where(x => x.ACCOUNTNO == item.ACCOUNTNUMBER && x.INDENT_ID == item.INDENTID).Select(x => new CompareObjectFromDb { INDENTID = x.INDENT_ID, ACCOUNTNUMBER = x.ACCOUNTNO, ACCOUNTNAME = x.ACCOUNTNAME, DOMICILEBRANCHADDRESS = x.DOM_BRANCH_ADD, SORTCODE = x.SORTCODE, CHEQUETYPE = x.CHEAQUETYPE, NOOFLEAVES = x.NUMBER_OF_LEAVES, DELIVERYBRANCHADDRESS = x.DEL_BRANCH_ADD, SCHEMECODE = x.SCHEMECODE, DOMICILEBRANCHCODE = x.DOM_BRANCH_CODE, RANGESTART = x.RANGE_START, RANGESTOP = x.RANGE_STOP, }).FirstOrDefault(); if (objIndent == null) { objDecrypt.Data = null; objDecrypt.Status = false; objDecrypt.Message = "Excel record(s) does not match generated indents"; ErrorWriter.WriteLog($"Decryption process returned : { objDecrypt.Message } at { DateTime.Now }"); return(objDecrypt); } if (item.CHEQUETYPE != objIndent.CHEQUETYPE || item.DELIVERYBRANCHADDRESS != objIndent.DELIVERYBRANCHADDRESS || item.DOMICILEBRANCHADDRESS != objIndent.DOMICILEBRANCHADDRESS || item.DOMICILEBRANCHCODE != objIndent.DOMICILEBRANCHCODE || item.RANGESTART != Convert.ToDouble(objIndent.RANGESTART) || item.RANGESTOP != Convert.ToDouble(objIndent.RANGESTOP) || item.NOOFLEAVES != Convert.ToDouble(objIndent.NOOFLEAVES) || item.SORTCODE != objIndent.SORTCODE) { objDecrypt.Data = null; objDecrypt.Status = false; objDecrypt.Message = "Excel record(s) does not match generated indents"; ErrorWriter.WriteLog($"Decryption process returned : { objDecrypt.Message } at { DateTime.Now }"); return(objDecrypt); } listOfIndentId.Add(item.INDENTID); var secModel = new SecurityNumberUpdateVM() { ACCOUNTNUMBER = item.ACCOUNTNUMBER, APPROVED = "0", CHEQUESTATE = "0", CHEQUE_NUMBER = item.RANGESTART.ToString(), CMC_CODE = "985", DATECAPTURED = DateTime.Now.ToString("dd-MMM-yy"), INDENT_ID = item.INDENTID, INITUPLOAD = "1", NUMBER_OF_CHEQUES_PRINTED = item.NOOFLEAVES.ToString(), OPERATOR_ID = "Superflux", PREFIX = "PO", REPLACES = "", REPLACESPREFIX = "", SECURITY_NUMBER = item.STARTAUDIT.ToString(), SEQ = "", SN = "1", UPLOADED = "0" }; listSec.Add(secModel); } using (var orcl = new OracleConnection(_connectionString)) { orcl.Open(); var command = new OracleCommand() { Connection = orcl, CommandText = STOREDPROC.UPDATEINDENTTABLE, CommandType = CommandType.StoredProcedure, BindByName = true }; command.Parameters.Add(new OracleParameter("P_ERROR_MSG", OracleDbType.Varchar2)).Direction = ParameterDirection.Output; command.Parameters.Add(new OracleParameter("n_array", OracleDbType.Varchar2) { CollectionType = OracleCollectionType.PLSQLAssociativeArray, Value = listOfIndentId.ToArray() }); try { command.ExecuteNonQuery(); } catch (Exception ex) { ErrorWriter.WriteLog($"Decryption process returned error : { ex.Message } at { DateTime.Now }"); } finally { orcl.Close(); } var listSecDT = new ListtoDataTable().ToDataTable(listSec); _db.BulkCopyWriteToServer(listSecDT, "SECURITYCHEQUENUMBEROLD"); } } objDecrypt.Status = true; objDecrypt.Message = $"File successfully decrypted to { outputFile } at { DateTime.Now }"; objDecrypt.Data = dModel; ErrorWriter.WriteLog($"Decryption process returned : { objDecrypt.Message } at { DateTime.Now }"); return(objDecrypt); } catch (Exception ex) { var error = await ExceptionRefiner.LogError(ex); ErrorWriter.WriteLog($"Decryption process returned error: { ex.Message } at { DateTime.Now }"); objDecrypt.Status = false; objDecrypt.Message = error; objDecrypt.Data = null; return(objDecrypt); } }