using VECV_WebApi.Common; using VECV_WebApi.EOS_Service; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.IO; using System.Linq; using System.ServiceModel; using System.Text; using System.Threading.Tasks; using System.Xml; using System.Xml.Linq; using System.Xml.Serialization; using VECV_WebApi.Models.Udan; using Npgsql; using DBHelper; using System.Net; using System.Web; using LoggingHelper; using Newtonsoft.Json; using VECV_WebApi.Models.Ticket; namespace VECV_WebApi.Common { public class PushData { public void SendDataToSAP(string VehicleRegistrationNumber, int? TicketStatus, string TicketId,string vanreachtime) { /// /// making object of LoggingUtility class available to this class /// LoggingUtility objLog = new LoggingUtility(); /// /// making the data-log file path available to this class /// string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]); //string vanreachtime = ""; /// /// making error log file path available to this class /// string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]); string TicketIdDBM = ""; string TicketStatusDBM = ""; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; DT_S_WEBSITE_BI_EOSTABLE obj = new DT_S_WEBSITE_BI_EOSTABLE(); DT_S_WEBSITE_BI_EOSTABLE objCreation = new DT_S_WEBSITE_BI_EOSTABLE(); DT_S_WEBSITE_BI_EOSTABLE objClosed = new DT_S_WEBSITE_BI_EOSTABLE(); DT_S_WEBSITE_BI_EOSTABLE objTripEnd = new DT_S_WEBSITE_BI_EOSTABLE(); List lsDT_S_WEBSITE_BI_EOSTABLE = new List(); SI_S_WEBSITE_BI_EOSClient objSI_S_WEBSITE_BI_EOSClient = new EOS_Service.SI_S_WEBSITE_BI_EOSClient(); SI_S_WEBSITE_BI_EOS1 objSI_S_WEBSITE_BI_EOS1 = new EOS_Service.SI_S_WEBSITE_BI_EOS1(); ConsolidateReportRepository objConsolidateReportRepository = new ConsolidateReportRepository(); List TicketArray = new List(); try { string spName = null; NpgsqlParameter[] nSqlParam = new NpgsqlParameter[1]; if ((TicketStatus) == 1 || (TicketStatus) == 2) { objLog.AddLogFile("push dataa 1", VehicleRegistrationNumber, path, errorlogtf); spName = ConfigurationManager.AppSettings["usp_udan_get_open_tickets_vehicle_wise"].ToString(); nSqlParam[0] = new NpgsqlParameter("inregistration_number ", VehicleRegistrationNumber); } else if ((TicketStatus) == 8) { spName = ConfigurationManager.AppSettings["usp_udan_get_ticket_details_ticket_wise"].ToString(); nSqlParam[0] = new NpgsqlParameter("inticket_id ", TicketId); } else if ((TicketStatus) == 5) { spName = ConfigurationManager.AppSettings["usp_udan_get_ticket_details_ticket_wise_for_dealer"].ToString(); nSqlParam[0] = new NpgsqlParameter("inticket_id ", TicketId); } DataSet ds = new DataSet(); try { ds = NpgSqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["Vecv_GoData"].ConnectionString, CommandType.StoredProcedure, spName, nSqlParam); objLog.AddLogFile("push dataa 2", TicketStatus.ToString(), path, errorlogtf); if ((TicketStatus) == 1 || (TicketStatus) == 2) { if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { string mystring = ds.Tables[0].Rows[0]["_ticket_id"].ToString(); mystring = mystring.Substring(mystring.Length - 6); TicketId = "TICKETID-" + mystring; } } } } catch (Exception Ex) { objLog.ErrorLogFile("pushdata " + spName + TicketId, Ex.Message, path, errorlogtf); } objLog.AddLogFile("push dataa 3", TicketId, path, errorlogtf); /* if ((TicketStatus) == 1 || (TicketStatus) == 2) { } else { DataSet dsvanReach = new DataSet(); try { NpgsqlParameter[] nSqlParamvanReach = new NpgsqlParameter[1]; string spNamevanReach = ConfigurationManager.AppSettings["usp_get_van_reach_time_close"].ToString(); nSqlParamvanReach[0] = new NpgsqlParameter("inticket_id ", TicketId); dsvanReach = NpgSqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["Vecv_GoData"].ConnectionString, CommandType.StoredProcedure, spNamevanReach, nSqlParamvanReach); } catch (Exception Ex) { objLog.ErrorLogFile("pushdata usp_get_van_reach_time_close" + TicketId, Ex.Message, path, errorlogtf); } // for rabbitt mq if (dsvanReach == null) { } else { if (dsvanReach.Tables[0].Rows.Count > 0) { vanreachtime = Convert.ToString(dsvanReach.Tables[0].Rows[0]["_creation_time"]) == "" ? "" : Convert.ToDateTime(dsvanReach.Tables[0].Rows[0]["_creation_time"]).ToString(System.Configuration.ConfigurationManager.AppSettings["DateTimeFormatSAP"]); } } }*/ if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { if ((TicketStatus) == 1 || (TicketStatus) == 2) { objCreation.Creation_Time = Convert.ToString(dr["_creation_time"]) == "" ? "" : Convert.ToDateTime(dr["_creation_time"]).ToString(System.Configuration.ConfigurationManager.AppSettings["DateTimeFormatSAP"]); objCreation.Vehicle_Owner_Contact_No = Convert.ToString(dr["_customer_contact_no"]); objCreation.Dealer_SCode = Convert.ToString(dr["_dealer_code"]); objCreation.Ticket_Id = Convert.ToString(dr["_ticket_id"]); objCreation.Vehicle_Model = Convert.ToString(dr["_customer_vehicle_model_tagging"]); objCreation.Vehicle_Reg_No = Convert.ToString(dr["_vehicle_registration_number"]); objLog.AddLogFile("push dataa5", objCreation.Vehicle_Model, path, errorlogtf); if (objCreation.Vehicle_Model == "TITAN 3T") { objCreation.Vehicle_Model = "Pro X 3T EV"; } if (objCreation.Vehicle_Model == "TITAN 3.5T") { objCreation.Vehicle_Model = "Pro X 3.5T EV"; } objCreation.Vehicle_Owner_Name = Convert.ToString(dr["_customer_name"]); objCreation.Vehicle_Type = Convert.ToString(dr["_model_tagging"]); objCreation.Fuel_Type = Convert.ToString(dr["_fuel_type"]); objCreation.Van_Reached = vanreachtime; TicketIdDBM = objCreation.Ticket_Id.ToString(); TicketStatusDBM = TicketStatus.ToString(); lsDT_S_WEBSITE_BI_EOSTABLE.Add(objCreation); objLog.AddLogFile("push dataa6", objCreation.Ticket_Id, path, errorlogtf); } else if ((TicketStatus) == 8) { //obj.Ticket_Id = Convert.ToString(dr["_ticket_id"]); //obj.EOS_VAN_Actual_Travelled_Distance = Convert.ToString(dr["_van_covered_distance"]); //obj.EOS_VAN_Estimated_Distance = Convert.ToString(dr["_km_covered"]); //obj.Van_Reached = vanreachtime; objTripEnd.Ticket_Id = Convert.ToString(dr["_ticket_id"]); objTripEnd.EOS_VAN_Actual_Travelled_Distance = Convert.ToString(dr["_van_covered_distance"]); objTripEnd.EOS_VAN_Estimated_Distance = Convert.ToString(dr["_km_covered"]); objTripEnd.Van_Reached = vanreachtime; TicketIdDBM = objTripEnd.Ticket_Id.ToString(); TicketStatusDBM = TicketStatus.ToString(); lsDT_S_WEBSITE_BI_EOSTABLE.Add(objTripEnd); } else if ((TicketStatus) == 5) { //obj.Ticket_Id = Convert.ToString(dr["_ticket_id"]); //obj.EOS_VAN_Estimated_Distance = Convert.ToString(dr["_km_covered"]); //obj.Van_Reached = vanreachtime; //obj.fuel_type = Convert.ToString(dr["_fuel_type"]); objClosed.Ticket_Id = Convert.ToString(dr["_ticket_id"]); objClosed.EOS_VAN_Estimated_Distance = Convert.ToString(dr["_km_covered"]); objClosed.Van_Reached = vanreachtime; objClosed.Fuel_Type = Convert.ToString(dr["_fuel_type"]); TicketIdDBM = objClosed.Ticket_Id.ToString(); TicketStatusDBM = TicketStatus.ToString(); lsDT_S_WEBSITE_BI_EOSTABLE.Add(objClosed); } } lsDT_S_WEBSITE_BI_EOSTABLE.TrimExcess(); objSI_S_WEBSITE_BI_EOS1.MT_S_WEBSITE_BI_EOS = lsDT_S_WEBSITE_BI_EOSTABLE.ToArray(); objSI_S_WEBSITE_BI_EOSClient.ClientCredentials.UserName.UserName = System.Configuration.ConfigurationManager.AppSettings["UserName"].ToString(); objSI_S_WEBSITE_BI_EOSClient.ClientCredentials.UserName.Password = System.Configuration.ConfigurationManager.AppSettings["Password"].ToString(); objSI_S_WEBSITE_BI_EOSClient.SI_S_WEBSITE_BI_EOS(objSI_S_WEBSITE_BI_EOS1.MT_S_WEBSITE_BI_EOS.ToArray()); TicketArray = lsDT_S_WEBSITE_BI_EOSTABLE.Select(x => x.Ticket_Id).ToList(); } } catch (Exception ex) { if (ex is ProtocolException && ex.Message == "The one-way operation returned a non-null message with Action=''.") { objLog.AddLogFile("push dataa 7", TicketStatus.ToString(), path, errorlogtf); if ((TicketStatus) == 1 || (TicketStatus) == 2) { string jsonified2 = JsonConvert.SerializeObject(objCreation); objLog.AddLogFile("push dataa 8", jsonified2, path, errorlogtf); objLog.AddLogFile("DBM Payload Creation", jsonified2, path, errorlogtf); } else if ((TicketStatus) == 8) { string jsonified2 = JsonConvert.SerializeObject(objTripEnd); objLog.AddLogFile("DBM Payload trip end", jsonified2, path, errorlogtf); } else if ((TicketStatus) == 5) { string jsonified2 = JsonConvert.SerializeObject(objClosed); objLog.AddLogFile("DBM Payload closed", jsonified2, path, errorlogtf); } TicketArray = new List(); TicketArray.TrimExcess(); TicketArray = lsDT_S_WEBSITE_BI_EOSTABLE.Select(x => x.Ticket_Id).ToList(); } else { TicketRepository objTicketRepository = new TicketRepository(ConfigurationManager.ConnectionStrings["Vecv_GoData"].ConnectionString); bool isSend = objTicketRepository.emailForError("DBM Error: SendDataToSAP", ex.Message.ToString()); objLog.ErrorLogFile("DBM Error:", ex.Message, path, errorlogtf); } } } } }