namespace VECV_WebApi.Controllers.Reports { #region Namespaces using LoggingHelper; using System; using System.Configuration; using System.Web; using System.Web.Http; using System.Web.Mvc; using VECV_WebApi.Models.Reports; #endregion /// /// This controller contain reports releted apis /// public class ReportController : ApiController { #region Global Variable /// /// 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"]); /// /// making data log file path available to this class /// string logtf = (ConfigurationManager.AppSettings["Log"]); /// /// making error log file path available to this class /// string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]); /// /// making the Database connection string available to this class /// private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString(); /// /// making Report Repository object available to this class /// public ReportsRepository objReportRepo; #endregion #region APIs /// /// To get various many reports /// /// type of report /// date range and user info /// status and report data public EosallCountRequestModel Post([FromUri]string type, [FromBody]EosallCountRequestModel model) { EosallCountRequestModel objModel = new EosallCountRequestModel(); try { objReportRepo = new ReportsRepository(_connStr); // get EOS call count report if (type.ToLower().Trim() == "eoscallcount") { objModel = objReportRepo.GetEosCallCountDetail(model); } // get HD, LMD, BUS contribution report else if (type.ToLower().Trim() == "hdlmdbus") { objModel = objReportRepo.GetHdLmdBusContributionDetail(model); } // get Dealer wise report else if (type.ToLower().Trim() == "dealerwise") { objModel = objReportRepo.GetDealerWiseCallDetail(model); } // get timeslot closure report else if (type.ToLower().Trim() == "timeslotclouser") { objModel = objReportRepo.GetTimeSlotClouserDetail(model); } // get reason for call closed > 24 hrs report else if (type.ToLower().Trim() == "dealerwisereasonforcallclosedbeyond24hrs") { objModel = objReportRepo.GetReasonCallCloseBeyond24HrsDetail(model); } // get opportunity loss report else if (type.ToLower().Trim() == "eosopportunityloss") { objModel = objReportRepo.GetOpportunityLossReport(model); } // get toll free number report else if (type.ToLower().Trim() == "eostollfreenosource") { objModel = objReportRepo.GetTollFreeNoSourceReport(model); } // get HD, LMD call closure report else if (type.ToLower().Trim() == "hdlmdcallcloser") { objModel = objReportRepo.GetHdLmdBusCallCloserReport(model); } // get reason for call closed > 24 hrs report else if (type.ToLower().Trim() == "reasonforcallclosedbeyond24hrs") { objModel = objReportRepo.GetReasonWiseCallClosedBeyond24Hrs(model); } // get call feedback report else if (type.ToLower().Trim() == "eoscallfeedbackparameter") { objModel = objReportRepo.GetEosFeedBackCallFeedBackParameter(model); } // get geo analysis report else if (type.ToLower().Trim() == "geo") { objModel = objReportRepo.GeoAnalysis(model); } // get geo analysis report route wise else if (type.ToLower().Trim() == "georoutewise") { objModel = objReportRepo.GeoRouteAnalysis(model); } else if (type.ToLower().Trim() == "countgeokpi") { objModel = objReportRepo.CountGeoRouteAnalysis(model); } // get declined calls report else if (type.ToLower().Trim() == "declined") { objModel = objReportRepo.GetDeclinedReport(model); } // get customer report else if (type.ToLower().Trim() == "customer") { objModel = objReportRepo.GetCustomerReport(model); } // get promise report else if (type.ToLower().Trim() == "promise") { objModel = objReportRepo.GetPromiseReport(model); } return objModel; } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetEosCallCountDetail", Ex.Message, path, errorlogtf); objModel.Status = "0"; objModel.Message = Ex.Message; return objModel; } } /// /// To get closed/open ticket report. /// /// extra param to idenify the api /// ticket info /// closed/open ticket report public TicketRequestModel Post([FromUri]string TicketType, [FromBody]TicketRequestModel model) { // write data log into file TicketRequestModel ObjModel = new TicketRequestModel(); try { ReportsRepository objTicket = new ReportsRepository(_connStr); model.TicketType = TicketType; ObjModel = objTicket.GetCloseTicketDetail(model); } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetCloseTicketDetail", Ex.Message, path, errorlogtf); throw Ex; } return ObjModel; } /// /// To get closed/open ticket report. /// /// extra param to idenify the api /// ticket info /// closed/open ticket report public TicketRequestModel Post([FromUri]string TicketType,[FromUri]int TicketsScore, [FromBody]TicketRequestModel model) { // write data log into file TicketRequestModel ObjModel = new TicketRequestModel(); try { ReportsRepository objTicket = new ReportsRepository(_connStr); model.TicketType = TicketType; ObjModel = objTicket.GetCloseTicketScoresDetail(model); } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetCloseTicketScoresDetail", Ex.Message, path, errorlogtf); throw Ex; } return ObjModel; } /// /// To get closed ticket report. /// /// extra param to idenify the api /// ticket info /// closed/open ticket report public TicketRequestModel Post([FromUri]string ClosedTicket, [FromUri]string ClosedTicketScores, [FromBody]TicketRequestModel model) { // write data log into file TicketRequestModel ObjModel = new TicketRequestModel(); try { ReportsRepository objTicket = new ReportsRepository(_connStr); ObjModel = objTicket.GetCloseTicketList(model); } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetCloseTicketList", Ex.Message, path, errorlogtf); throw Ex; } return ObjModel; } /// /// To get Dealer Current Score . /// /// extra param to idenify the api /// Dealer info With Score /// Score Card report public ScoreRequestModel Post([FromUri]string ReportType, [FromUri]string CompareData, [FromBody]ScoreRequestModel model) { // write data log into file ScoreRequestModel ObjModel = new ScoreRequestModel(); try { ReportsRepository objTicket = new ReportsRepository(_connStr); model.ReportType = ReportType; ObjModel = objTicket.GetScoreCardReport(model); } catch (Exception Ex) { // write error log into file objLog.ErrorLogFile("GetScoreCardReport", Ex.Message, path, errorlogtf); throw Ex; } return ObjModel; } #endregion } }