/// <summary> /// To desirealizeObject_On_TypeBase /// </summary> /// <param name="type"></param> /// <param name="response"></param> /// <returns></returns> private object desirealizeObject_On_TypeBase(int type, object response) { try { switch (type) { case 1: { FareEnquiry_Response_Type1 Response = (FareEnquiry_Response_Type1)response; return(Response); } case 2: { FareEnquiry_Response_Type2 Response = (FareEnquiry_Response_Type2)response; return(Response); } default: { FareEnquiry_Response_Type3 Response = (FareEnquiry_Response_Type3)response; return(Response); } } } catch { return(response); } }
private long addPassenger(long Icardno, long ordrId, passengerList p, FareEnquiry_Response_Type3 Response, TransactionalTrainFareRequest Request) { ITicketPassengersRepository _passenger = new TicketPassengersRepository(_applicationDbContext); TicketPassengers psngr = _passenger.AddPassenger(new TicketPassengers() { ticketOrderId = ordrId, name = p.passengerName, sex = p.passengerGender, age = Convert.ToInt32(p.passengerAge), berthPreference = Request.berthPreference, foodPreference = "", concessionCode = "", idCardType = Convert.ToInt32(Icardno), idCardNumber = p.passengerCardNumber, firstChildName = Request.firstChildName, firstChildAge = Request.firstChildAge, firstChildSex = Request.firstChildSex, secondChildName = Request.secondChildName, secondChildAge = Request.secondChildAge, secondChildSex = Request.secondChildSex, bedRoll = Request.bedRoll, bookingStatus = "", coach = "", seat = "", berth = "", currentStatus = "" }); _passenger.Commit(); return(psngr.Id); }
private long Order(passengerList p, FareEnquiry_Response_Type3 Response, TransactionalTrainFareRequest Request, passengerList[] psngerArray) { IIDCardTypeRepository _card = new IDCardTypeRepository(_applicationDbContext); IQuotaRepository _quota = new QuotaRepository(_applicationDbContext); IUserRegistrationRepository _user = new UserRegistrationRepository(_applicationDbContext); ITicketStatusRepository _status = new TicketStatusRepository(_applicationDbContext); IMerchantTypeRepository _merchantType = new MerchantTypeRepository(_applicationDbContext); var Status = _status.FindBy(x => x.fullName == "ORDERD").FirstOrDefault().Id; var QuotaId = _quota.FindBy(x => x.shortName == Request.quota).FirstOrDefault().Id; var Icardno = _card.FindBy(x => x.name == p.passengerCardType).FirstOrDefault().Id; var User = _user.FindBy(x => x.merchantAccount == Request.loginAccountNo).SingleOrDefault(); var merchantType = _merchantType.FindBy(x => x.merchantId == User.merchantId).SingleOrDefault(); // Dynamic Pgcharges decimal PgCharge = merchantType.conditionalAmount >= Convert.ToDecimal(Response.totalFare) ?decimal.Divide(decimal.Multiply(Convert.ToDecimal(Response.totalFare), Convert.ToDecimal(merchantType.pgChargeUnderCondition)), 100) :decimal.Divide(decimal.Multiply(Convert.ToDecimal(Response.totalFare), Convert.ToDecimal(merchantType.pgChargeBeyondCondition)), 100); TicketOrders Order = _order.AddTicketOrder(new TicketOrders() { sourceStation = Request.trainFrom, destStation = Request.trainTo, trainNumber = Request.trainNo, trainName = Response.trainName, Class = Request.trainClass, reserveUpto = Request.trainTo, bordingPoint = Request.request.boardingStation, ticketAmt = Convert.ToDecimal(Response.totalFare), totalAmt = Convert.ToDecimal(Response.totalFare) + merchantType.oxigenServiceCharge - merchantType.merchantCommission, //from database from -- //merchantConfigTable(totalfare+oxigenServiceCharge-MerchantCommission) journeyDay = Convert.ToInt32(Request.journyDate.Substring(6)), journeyMonth = Convert.ToInt32(Request.journyDate.Substring(4, 2)), journeyYear = Convert.ToInt32(Request.journyDate.Substring(0, 4)), quota = Convert.ToInt32(QuotaId), //from data base based on quota id pmtGatewayName = merchantType.pgName, pmtCardType = Request.pmtCardType, accountNumber = Request.accountNumber, irctcServiceCharge = Convert.ToDecimal(Response.wpServiceCharge) + Convert.ToDecimal(Response.wpServiceTax), operatorCode = Request.operatorCode, mobileNo = Request.request.mobileNumber, idCardNumber = p.passengerCardNumber, idCardType = Convert.ToInt32(Icardno), //will get by p.passengerCardType from database ticketStatus = Convert.ToInt32(Status), //ticketstatus from database paymentGateway = (long)(PgCharge), //payment gateway charges from database in percent session = Request.userSession, bookingDate = DateTime.Now, oxigenServiceCharge = merchantType.oxigenServiceCharge, //from database from merchantConfigTable email = Request.PassengerEmail, //from database using login account no loginAccountNo = Request.loginAccountNo, bookingSource = HttpContext.Connection.RemoteIpAddress.ToString(), reservationChoice = (Request.request.reservationChoice) == "FALSE" ? "N" : "Y", isTatkal = Request.isTatkal, ticketVerificationKey = Request.loginAccountNo + ":" + Request.trainNo + ":" + Request.trainFrom + ":" + Request.trainTo + ":" + Request.userSession + ":" + Request.journyDate + ":" + Request.request.mobileNumber, psgAddress = Request.psgAddress, irctcTxnNumber = Request.request.clientTransactionId }); _order.Commit(); if (psngerArray != null) { foreach (passengerList p1 in psngerArray) { long NewpsngrId = addPassenger(Icardno, Order.Id, p1, Response, Request); } } else { long NewpsngrId = addPassenger(Icardno, Order.Id, p, Response, Request); } return(Order.Id); }
public IActionResult Fetch_NonTransact_TrainFare([FromBody] TrainFareRequest Request) //parameter will be as like /N { object response = ""; ErrorResponse error = new ErrorResponse(); if (!ModelState.IsValid || string.IsNullOrEmpty(Request.trainNo) || string.IsNullOrEmpty(Request.journyDate) || string.IsNullOrEmpty(Request.trainFrom) || string.IsNullOrEmpty(Request.trainTo) || string.IsNullOrEmpty(Request.trainClass) || string.IsNullOrEmpty(Request.quota)) { return(Ok(new Application_ResponseWrapper() { ResponseCode = "1000", ResponseMessage = "Invalid model", Status = "failed", ResponseResult = "" })); } if (string.IsNullOrEmpty(_irctcUrl) || string.IsNullOrEmpty(_irctc_userName) || string.IsNullOrEmpty(_irctc_password)) { return(Ok(new Application_ResponseWrapper() { ResponseCode = "1001", ResponseMessage = "No IRCTC configuration found", Status = "failed" })); } _irctcUrl = _irctcUrl + "taenqservices/avlFareenquiry/" + Request.trainNo + "/" + Request.journyDate + "/" + Request.trainFrom + "/" + Request.trainTo + "/" + Request.trainClass + "/" + Request.quota + "/N"; try { CommunicationLog("OxiRail", "availableFareenquiry OUT->>" + JsonConvert.SerializeObject(Request.request).ToString(), Request.userSession); switch (Convert.ToInt32(Request.request.enquiryType)) { case 1: { FareEnquiry_Response_Type1 Response = new FareEnquiry_Response_Type1(); response = _booking.FindFareEnquiry(_irctcUrl, Request.request, Request.userSession, _authInfo); Response = (FareEnquiry_Response_Type1)JsonConvert.DeserializeObject(response.ToString(), typeof(FareEnquiry_Response_Type1)); if (Response.bkgCfg != null) { error.Dispose(); CommunicationLog("OxiRail", "availableFareenquiry IN->>" + JsonConvert.SerializeObject(response).ToString(), Request.userSession); return(Ok(new Application_ResponseWrapper() { ResponseCode = "0", ResponseMessage = "success", Status = "success", ResponseResult = Response })); } else { error = (ErrorResponse)JsonConvert.DeserializeObject(response.ToString(), typeof(ErrorResponse)); CommunicationLog("OxiRail", "availableFareenquiry IN->>" + JsonConvert.SerializeObject(error).ToString(), Request.userSession); return(Ok(new Application_ResponseWrapper() { ResponseCode = "1000", ResponseMessage = error.errorMessage, Status = "Error", ResponseResult = "" })); } } case 2: { FareEnquiry_Response_Type2 Response = new FareEnquiry_Response_Type2(); response = _booking.FindFareEnquiry(_irctcUrl, Request.request, Request.userSession, _authInfo); Response = (FareEnquiry_Response_Type2)JsonConvert.DeserializeObject(response.ToString(), typeof(FareEnquiry_Response_Type2)); if (Response.bkgCfg != null) { error.Dispose(); CommunicationLog("OxiRail", "availableFareenquiry IN->>" + JsonConvert.SerializeObject(Response).ToString(), Request.userSession); return(Ok(new Application_ResponseWrapper() { ResponseCode = "0", ResponseMessage = "success", Status = "success", ResponseResult = Response })); } else { error = (ErrorResponse)JsonConvert.DeserializeObject(response.ToString(), typeof(ErrorResponse)); CommunicationLog("OxiRail", "availableFareenquiry IN->>" + JsonConvert.SerializeObject(error).ToString(), Request.userSession); return(Ok(new Application_ResponseWrapper() { ResponseCode = "1000", ResponseMessage = error.errorMessage, Status = "Error", ResponseResult = "" })); } } default: { FareEnquiry_Response_Type3 Response = new FareEnquiry_Response_Type3(); response = _booking.FindFareEnquiry(_irctcUrl, Request.request, Request.userSession, _authInfo); Response = (FareEnquiry_Response_Type3)JsonConvert.DeserializeObject(response.ToString(), typeof(FareEnquiry_Response_Type3)); if (Response.bkgCfg != null) { error.Dispose(); CommunicationLog("OxiRail", "availableFareenquiry IN->>" + JsonConvert.SerializeObject(Response).ToString(), Request.userSession); return(Ok(new Application_ResponseWrapper() { ResponseCode = "0", ResponseMessage = "success", Status = "success", ResponseResult = Response })); } else { error = (ErrorResponse)JsonConvert.DeserializeObject(response.ToString(), typeof(ErrorResponse)); CommunicationLog("OxiRail", "availableFareenquiry IN->>" + JsonConvert.SerializeObject(error).ToString(), Request.userSession); return(Ok(new Application_ResponseWrapper() { ResponseCode = "1000", ResponseMessage = error.errorMessage, Status = "Error", ResponseResult = "" })); } } } } catch (Exception e) { CommunicationLog("OxiRail", e.ToString(), Request.userSession); error.Dispose(); return(Ok(new Application_ResponseWrapper() { ResponseCode = "1000", ResponseMessage = "Api_Error or IRCTC Service Down", Status = "Error", ResponseResult = e })); } }