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);
}
}
}
}
}