Code Commit

This commit is contained in:
Nidhi Bhargava 2025-09-04 17:30:22 +05:30
parent 4e324e7d51
commit d0ac8a7790
1273 changed files with 2097970 additions and 0 deletions

121
.gitignore vendored Normal file
View File

@ -0,0 +1,121 @@
# OSX
#
.DS_Store
# Xcode
#
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
*.moved-aside
DerivedData
*.hmap
*.ipa
*.xcuserstate
project.xcworkspace
# Android/IJ
#
.idea
.gradle
local.properties
# node.js
#
bin/VECV_WebApi.dll
bin/VECV_WebApi.pdb
obj/
Log/
obj
# BUCK
buck-out/
\.buckd/
android/app/libs
android/keystores/debug.keystore
/Bin
/Logs_04032021115838.txt
/Logs_04032021115809.txt
/Logs_04032021114321.txt
/Logs_04032021113928.txt
/Downloads/Excel_Downloads/DtcData_02Feb2023125434.xlsx
/Downloads/Excel_Downloads/OpenTicket_30Jan2023122507.xlsx
/Downloads/Excel_Downloads/OpenTicket_30Jan2023121727.xlsx
/Downloads/Excel_Downloads/OpenTicket_30Jan2023120914.xlsx
/Downloads/Excel_Downloads/OpenTicket_30Jan2023120529.xlsx
/Downloads/Excel_Downloads/OpenTicket_30Jan2023115721.xlsx
/Downloads/Excel_Downloads/DtcData_09Feb2023093242.xlsx
/Downloads/Excel_Downloads/DtcData_09Feb2023091040.xlsx
/Downloads/Excel_Downloads/DtcData_09Feb2023084747.xlsx
/Downloads/Excel_Downloads/DtcData_08Feb2023035355.xlsx
/Downloads/Excel_Downloads/DtcData_08Feb2023035024.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_31Jan2023112916.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_31Jan2023082654.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_30Jan2023075559.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_16Feb2023062310.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_14Feb2023112125.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_14Feb2023105838.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_14Feb2023105303.xlsx
/Downloads/ConsolidatedReport_17Oct2022123946.xlsx
/Downloads/Excel_Downloads/DtcData_22Mar2023040448.xlsx
/Downloads/Excel_Downloads/CloseTicket_06Apr2023065336.xlsx
/Downloads/Excel_Downloads/OpenTicket_10Apr2023101301.xlsx
/Downloads/Excel_Downloads/OpenTicket_10Apr2023101014.xlsx
/Downloads/Excel_Downloads/OpenTicket_10Apr2023100614.xlsx
/Downloads/Excel_Downloads/OpenTicket_10Apr2023094227.xlsx
/Downloads/Excel_Downloads/OpenTicket_10Apr2023093810.xlsx
/Downloads/Excel_Downloads/OpenTicket_07Apr2023113123.xlsx
/Downloads/Excel_Downloads/OpenTicket_07Apr2023030656.xlsx
/Downloads/Excel_Downloads/OpenTicket_07Apr2023012613.xlsx
/Downloads/Excel_Downloads/OpenTicket_06Apr2023122711.xlsx
/Downloads/Excel_Downloads/OpenTicket_06Apr2023122530.xlsx
/Downloads/Excel_Downloads/OpenTicket_06Apr2023120024.xlsx
/Downloads/Excel_Downloads/OpenTicket_06Apr2023114722.xlsx
/Downloads/Excel_Downloads/OpenTicket_06Apr2023074811.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_31Mar2023060538.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_31Mar2023042424.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_31Mar2023042411.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_31Mar2023042252.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_31Mar2023041333.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_31Mar2023040916.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_31Mar2023040724.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_30Mar2023075621.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_30Mar2023075401.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_30Mar2023075213.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_30Mar2023074721.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_30Mar2023074708.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_30Mar2023053612.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_30Mar2023051334.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_30Mar2023051012.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_30Mar2023050439.xlsx
/Downloads/Excel_Downloads/ConsolidatedReport_30Mar2023050124.xlsx
/Downloads/Excel_Downloads/CloseTicket_07Apr2023123529.xlsx
/Downloads/Excel_Downloads/CloseTicket_07Apr2023123205.xlsx
/Downloads/Excel_Downloads/CloseTicket_07Apr2023123139.xlsx
/Downloads/Excel_Downloads/CloseTicket_07Apr2023122746.xlsx
/Downloads/Excel_Downloads/CloseTicket_07Apr2023122107.xlsx
/Downloads/Excel_Downloads/CloseTicket_07Apr2023113756.xlsx
/Downloads/Excel_Downloads/CloseTicket_06Apr2023074714.xlsx
/Downloads/Excel_Downloads/CloseTicket_06Apr2023065354.xlsx
/Downloads/Excel_Downloads/OpenTicket_11Apr2023111118.xlsx
/Downloads/Excel_Downloads/CloseTicket_12Apr2023105105.xlsx
/Downloads/Excel_Downloads/CloseTicket_12Apr2023104820.xlsx
/Downloads/Excel_Downloads/CloseTicket_11Apr2023040017.xlsx
/Downloads/Excel_Downloads/CloseTicket_11Apr2023035505.xlsx
/Downloads/Excel_Downloads/CloseTicket_11Apr2023035127.xlsx
/Downloads/Excel_Downloads
.vs
.csproj

32
App_Start/AuthConfig.cs Normal file
View File

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Web.WebPages.OAuth;
using VECV_WebApi.Models;
namespace VECV_WebApi
{
public static class AuthConfig
{
public static void RegisterAuth()
{
// To let users of this site log in using their accounts from other sites such as Microsoft, Facebook, and Twitter,
// you must update this site. For more information visit http://go.microsoft.com/fwlink/?LinkID=252166
//OAuthWebSecurity.RegisterMicrosoftClient(
// clientId: "",
// clientSecret: "");
//OAuthWebSecurity.RegisterTwitterClient(
// consumerKey: "",
// consumerSecret: "");
//OAuthWebSecurity.RegisterFacebookClient(
// appId: "",
// appSecret: "");
//OAuthWebSecurity.RegisterGoogleClient();
}
}
}

43
App_Start/BundleConfig.cs Normal file
View File

@ -0,0 +1,43 @@
using System.Web;
using System.Web.Optimization;
namespace VECV_WebApi
{
public class BundleConfig
{
// For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
// Use the development version of Modernizr to develop with and learn from. Then, when you're
// ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
"~/Scripts/modernizr-*"));
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/jquery.ui.core.css",
"~/Content/themes/base/jquery.ui.resizable.css",
"~/Content/themes/base/jquery.ui.selectable.css",
"~/Content/themes/base/jquery.ui.accordion.css",
"~/Content/themes/base/jquery.ui.autocomplete.css",
"~/Content/themes/base/jquery.ui.button.css",
"~/Content/themes/base/jquery.ui.dialog.css",
"~/Content/themes/base/jquery.ui.slider.css",
"~/Content/themes/base/jquery.ui.tabs.css",
"~/Content/themes/base/jquery.ui.datepicker.css",
"~/Content/themes/base/jquery.ui.progressbar.css",
"~/Content/themes/base/jquery.ui.theme.css"));
}
}
}

13
App_Start/FilterConfig.cs Normal file
View File

@ -0,0 +1,13 @@
using System.Web;
using System.Web.Mvc;
namespace VECV_WebApi
{
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
}
}

23
App_Start/RouteConfig.cs Normal file
View File

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace VECV_WebApi
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
}

49
App_Start/TokenService.cs Normal file
View File

@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using System.Web;
namespace VECV_WebApi.App_Start
{
public class TokenService
{
public async Task<string> GetAccessTokenAsync()
{
var tokenEndpoint = "https://your-auth-server.com/oauth/token";
var clientId = "your_client_id";
var clientSecret = "your_client_secret";
var username = "user@example.com";
var password = "user_password";
using (var client = new HttpClient())
{
var formData = new Dictionary<string, string>
{
{"grant_type", "password"},
{"client_id", clientId},
{"client_secret", clientSecret},
{"username", username},
{"password", password}
};
var content = new FormUrlEncodedContent(formData);
var response = await client.PostAsync(tokenEndpoint, content);
var responseContent = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
// Parse and return access_token (you can use JSON.NET)
dynamic result = Newtonsoft.Json.JsonConvert.DeserializeObject(responseContent);
return result.access_token;
}
else
{
throw new Exception("Failed to get token: " + responseContent);
}
}
}
}
}

34
App_Start/WebApiConfig.cs Normal file
View File

@ -0,0 +1,34 @@
using Microsoft.IdentityModel.Tokens;
using Microsoft.Win32;
using Owin;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using VECV_WebApi.Filters;
using WebApi.Jwt;
namespace VECV_WebApi
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// for grafana
//
// config.Filters.Add(new MetricsFilterAttribute());
}
}
}

2
ClassDiagram1.cd Normal file
View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<ClassDiagram />

View File

@ -0,0 +1,39 @@
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Http;
namespace VECV_WebApi.Common
{
public class AddChallengeOnUnauthorizedResult : IHttpActionResult
{
public AddChallengeOnUnauthorizedResult(AuthenticationHeaderValue challenge, IHttpActionResult innerResult)
{
Challenge = challenge;
InnerResult = innerResult;
}
public AuthenticationHeaderValue Challenge { get; }
public IHttpActionResult InnerResult { get; }
public async Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
HttpResponseMessage response = await InnerResult.ExecuteAsync(cancellationToken);
if (response.StatusCode == HttpStatusCode.Unauthorized)
{
// Only add one challenge per authentication scheme.
if (response.Headers.WwwAuthenticate.All(h => h.Scheme != Challenge.Scheme))
{
response.Headers.WwwAuthenticate.Add(Challenge);
}
}
return response;
}
}
}

34
Common/AuthService.cs Normal file
View File

@ -0,0 +1,34 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
namespace VECV_WebApi.Common
{
public class AuthService
{
string connectionString = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
// private string connectionString = "YourConnectionStringHere";
public bool Authenticate(string username, string password)
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("AuthenticateUser", conn))
{
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Username", username);
cmd.Parameters.AddWithValue("@Password", password);
var result = cmd.ExecuteScalar();
return result != null; // If UserID is returned, login is successful
}
}
}
}
}

View File

@ -0,0 +1,37 @@
using System.Net;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Http;
namespace VECV_WebApi.Common
{
public class AuthenticationFailureResult : IHttpActionResult
{
public AuthenticationFailureResult(string reasonPhrase, HttpRequestMessage request)
{
ReasonPhrase = reasonPhrase;
Request = request;
}
public string ReasonPhrase { get; }
public HttpRequestMessage Request { get; }
public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
return Task.FromResult(Execute());
}
private HttpResponseMessage Execute()
{
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
{
RequestMessage = Request,
ReasonPhrase = ReasonPhrase
};
return response;
}
}
}

79
Common/Document.cs Normal file
View File

@ -0,0 +1,79 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace VECV_WebApi.Common
{
public class Root
{
public List<Document> docs { get; set; }
}
public class Document
{
public string _id { get; set; }
public string _rev { get; set; }
public string type { get; set; }
public string value { get; set; }
public string eDateTime { get; set; }
public string eDate { get; set; }
public string cDateTime { get; set; }
public string cDate { get; set; }
public string vc_pdatetime { get; set; }
public string ac_pdatetime { get; set; }
public string kinesis_arrival_time { get; set; }
public DateTime? ParsedEDateTime
{
get
{
DateTime parsedDateTime;
if (DateTime.TryParse(eDateTime, out parsedDateTime))
{
return parsedDateTime;
}
return null;
}
}
public List<string> ParsedValue
{
get
{
return string.IsNullOrEmpty(value)
? new List<string>()
: value.Split(',').ToList();
}
}
}
public class DocumentValue
{
public string _deviceid { get; set; }
public float _latitude { get; set; }
public float _longitude { get; set; }
public Int32 _utc { get; set; }
public float _speed { get; set; }
public Int32 _mainPower { get; set; }
public Int32 _ignition { get; set; }
public Int32 _live { get; set; }
public float _heading { get; set; }
public string _driver_id { get; set; }
public string _sequence_number { get; set; }
public Int32 _digital_input_1 { get; set; }
public Int32 _digital_input_2 { get; set; }
public Int32 _digital_input_3 { get; set; }
public Int32 _digital_input_4 { get; set; }
public Int32 _digital_input_5 { get; set; }
public float _analog_input_1 { get; set; }
public float _analog_input_2 { get; set; }
public float _analog_input_3 { get; set; }
public float _vehicle_battery { get; set; }
public float _internal_battery { get; set; }
public float _gps_odometer { get; set; }
}
}

429
Common/FCMNotification.cs Normal file
View File

@ -0,0 +1,429 @@
using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.Script.Serialization;
namespace VECV_WebApi.Common
{
public class FCMNotification
{
#region Global Variables
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
#endregion
/// <summary>
/// Generates a Firebase Access Token manually using RSA256
/// </summary>
public string GetFirebaseAccessToken()
{
try
{
string serviceAccountPath = (ConfigurationManager.AppSettings["FCMJson"]);
var json = File.ReadAllText(serviceAccountPath);
var serviceAccountData = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(json);
string privateKey = serviceAccountData["private_key"].ToString().Replace("\\n", "\n");
string clientEmail = serviceAccountData["client_email"].ToString();
string tokenUri = serviceAccountData["token_uri"].ToString();
var now = DateTime.UtcNow;
long iat = (int)(now - new DateTime(1970, 1, 1)).TotalSeconds;
long exp = iat + 3600; // 1 hour expiration
var header = new { alg = "RS256", typ = "JWT" };
var payload = new
{
iss = clientEmail,
scope = "https://www.googleapis.com/auth/cloud-platform",
aud = tokenUri,
iat = iat,
exp = exp
};
string encodedHeader = Base64UrlEncode(new JavaScriptSerializer().Serialize(header));
string encodedPayload = Base64UrlEncode(new JavaScriptSerializer().Serialize(payload));
string unsignedToken = $"{encodedHeader}.{encodedPayload}";
string signedToken = SignWithRSA(unsignedToken, privateKey);
return signedToken;
}
catch (Exception ex)
{
Console.WriteLine("Error generating Firebase Access Token: " + ex.Message);
return string.Empty;
}
}
/// <summary>
/// Sends an FCM notification with error handling (For .NET 4.5)
/// </summary>
public bool SendFCMNotification(string fcmToken, string projectId, string accessToken,string ticketid)
{
string url = $"https://fcm.googleapis.com/v1/projects/{projectId}/messages:send";
objLog.ErrorLogFile("GlobalRepository GcmSendNotificationtest1", url, path, errorlogtf);
var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json";
request.Headers["Authorization"] = "Bearer " + accessToken;
objLog.ErrorLogFile("GlobalRepository GcmSendNotificationtest2", accessToken, path, errorlogtf);
var payload1 = new
{
message = new
{
token = fcmToken,
notification = new
{
title = "EOS Notification",
body = "EOS FCM!"
},
data = new
{
TicketId = ticketid,
NotificationCode = "null", // Change null to "null"
NotificationMessage = "2"
}
}
};
string jsonPayload = new JavaScriptSerializer().Serialize(payload1);
objLog.ErrorLogFile("GlobalRepository GcmSendNotification14", jsonPayload, path, errorlogtf);
try
{
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(jsonPayload);
streamWriter.Flush();
streamWriter.Close();
}
var response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
string result = streamReader.ReadToEnd();
Console.WriteLine("FCM Response: " + result);
objLog.ErrorLogFile("GlobalRepository GcmSendNotification12", result, path, errorlogtf);
}
return true;
}
catch (WebException webEx)
{
using (var streamReader = new StreamReader(webEx.Response.GetResponseStream()))
{
string errorResponse = streamReader.ReadToEnd();
if (errorResponse.Contains("UNREGISTERED"))
{
objLog.ErrorLogFile("GlobalRepository GcmSendNotification9", "FCM token is unregistered. Removing from database...", path, errorlogtf);
// objModel.TicketId = model.TicketId;
// Console.WriteLine("FCM token is unregistered. Removing from database...");
// Remove token from DB
}
else
{
objLog.ErrorLogFile("GlobalRepository GcmSendNotification10", errorResponse, path, errorlogtf);
// Console.WriteLine("FCM Error: " + errorResponse);
}
}
}
catch (Exception ex)
{
objLog.ErrorLogFile("GlobalRepository GcmSendNotification11", ex.Message, path, errorlogtf);
// Console.WriteLine("Exception sending FCM: " + ex.Message);
}
return false;
}
public bool SendFCMNotificationWithMessage(string fcmToken, string projectId, string accessToken, string ticketid, string current_status, string previous_status, string show_message, string display_message,string message_tag,string notification_title)
{
string url = $"https://fcm.googleapis.com/v1/projects/{projectId}/messages:send";
objLog.ErrorLogFile("GlobalRepository GcmSendNotificationtest1", url, path, errorlogtf);
var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json";
request.Headers["Authorization"] = "Bearer " + accessToken;
string jsonPayload = "";
objLog.ErrorLogFile("GlobalRepository GcmSendNotificationtest2", accessToken, path, errorlogtf);
var payload1 = new
{
message = new
{
token = fcmToken,
data = new
{
TicketId = ticketid,
NotificationCode = "null", // Change null to "null"
NotificationMessage = "2",
CurrentStatus = current_status,
PreviosStatus = previous_status,
ShowMessage = show_message,
MessageTag = message_tag,
Notification_Title = notification_title,
DisplayMessge = display_message
}
}
};
jsonPayload = new JavaScriptSerializer().Serialize(payload1);
objLog.ErrorLogFile("GlobalRepository GcmSendNotification14", jsonPayload, path, errorlogtf);
try
{
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(jsonPayload);
streamWriter.Flush();
streamWriter.Close();
}
var response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
string result = streamReader.ReadToEnd();
Console.WriteLine("FCM Response: " + result);
objLog.ErrorLogFile("GlobalRepository GcmSendNotification12", result, path, errorlogtf);
objLog.ErrorLogFile("GlobalRepository GcmSendNotification12", jsonPayload, path, errorlogtf);
}
return true;
}
catch (WebException webEx)
{
using (var streamReader = new StreamReader(webEx.Response.GetResponseStream()))
{
string errorResponse = streamReader.ReadToEnd();
if (errorResponse.Contains("UNREGISTERED"))
{
objLog.ErrorLogFile("GlobalRepository GcmSendNotification9", "FCM token is unregistered. Removing from database...", path, errorlogtf);
// objModel.TicketId = model.TicketId;
// Console.WriteLine("FCM token is unregistered. Removing from database...");
// Remove token from DB
}
else
{
objLog.ErrorLogFile("GlobalRepository GcmSendNotification10", errorResponse, path, errorlogtf);
// Console.WriteLine("FCM Error: " + errorResponse);
}
}
}
catch (Exception ex)
{
objLog.ErrorLogFile("GlobalRepository GcmSendNotification11", ex.Message, path, errorlogtf);
// Console.WriteLine("Exception sending FCM: " + ex.Message);
}
return false;
}
/// <summary>
/// Signs JWT using RSA with SHA256
/// </summary>
static string SignWithRSA(string data, string privateKeyPem)
{
byte[] keyBytes = Convert.FromBase64String(privateKeyPem.Replace("-----BEGIN PRIVATE KEY-----", "").Replace("-----END PRIVATE KEY-----", "").Replace("\n", ""));
// RSACryptoServiceProvider rsa = DecodeRSAPrivateKey(keyBytes);
RSACryptoServiceProvider rsa = DecodeRSAPrivateKey(privateKeyPem);
byte[] dataBytes = Encoding.UTF8.GetBytes(data);
byte[] signedBytes = rsa.SignData(dataBytes, CryptoConfig.MapNameToOID("SHA256"));
return $"{data}.{Base64UrlEncode(signedBytes)}";
}
/// <summary>
/// Converts standard Base64 to Base64Url encoding
/// </summary>
static string Base64UrlEncode(object input)
{
string base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(input.ToString()));
return base64.TrimEnd('=').Replace('+', '-').Replace('/', '_');
}
/// <summary>
/// Converts Base64 to Base64Url encoding
/// </summary>
static string Base64UrlEncode(byte[] input)
{
string base64 = Convert.ToBase64String(input);
return base64.TrimEnd('=').Replace('+', '-').Replace('/', '_');
}
/// <summary>
/// Decodes a RSA private key
/// </summary>
//static RSACryptoServiceProvider DecodeRSAPrivateKey(byte[] privateKeyBytes)
//{
// RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
// rsa.DecodeRSAPrivateKey
// // rsa.ImportPkcs8PrivateKey(new ReadOnlySpan<byte>(privateKeyBytes), out _);
// return rsa;
//}
static RSACryptoServiceProvider DecodeRSAPrivateKey(string privateKeyPem)
{
try
{
// Remove headers and footers from PEM
string privateKeyBase64 = privateKeyPem
.Replace("-----BEGIN PRIVATE KEY-----", "")
.Replace("-----END PRIVATE KEY-----", "")
.Replace("\n", "")
.Replace("\r", "")
.Trim();
// Convert Base64 to byte array
byte[] privateKeyBytes = Convert.FromBase64String(privateKeyBase64);
return DecodeRSAPrivateKeyFromBytes(privateKeyBytes);
}
catch (Exception ex)
{
Console.WriteLine("Error decoding private key: " + ex.Message);
return null;
}
}
public async Task<string> SendFCMNotification2(string accesstoken)
{
string str = "success";
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://fcm.googleapis.com/v1/projects/eicher-eos-androidx/messages:send");
request.Headers.Add("Sender", "15420367036");
request.Headers.Add("Authorization", "Bearer " + accesstoken);
// request.Headers.Add("Authorization", "Bearer ya29.c.c0ASRK0GYrBkOReMU8gE-qqt9I3kd0Cop-00wEWRe1iBJBnQ71yWSujJ7S1QHsqngKLQk1ifiDslxNVwdEN8j6NOF9UmOhL9qnWcHpnXM4lXQOBJPyXF6-9eF-zRT1ZVA8Xcrb_EzY8BHsKokQoLcE5JVLDuOcZqqsAhdBZ3Wv5Z5WxweHtOHBhZtXkG3451K3vCLi5nhG-5RploO3PrGoXsMqmJKmXo3jBTO7u9YmMtnrKkK-Pd4cSPyn2pL6qIfJsqi3yn8tFX0X1OGR8gw8rp40AnX3ZL1NdtGoojOUmgBXnLn0Md81EiSdb7ejGfv4aagbIbfOFtcn98a6dls6IhvUWR2u0irEwl5UYQDLz1O-gdVQjaky5fAG384Kc92vQ7X1ct811pm6edjivJIak5Fofb5knYdbg9i9hiluf5teb0a20lsbnyJqQkbeWQjOk_SlhUiee-MeMzfZvcx4rSFOfrsj9RhfQ9voetzYM6znw1l1YBi5klIasd3V7labyrd6kqdcF_ZFqMyse5ButW50R14gZ9UJFgbg2nmYiilx833hkkv5elxX0JSO9rvzaawncZp5apW4Mpp7-6UJ0b6bid8RvZtXsBnMixwOmUiBfSVp2lROBtWu9nrRrvh_QVb5dBllrgbBb1bgwScSo4XcgnY3mcdwYFVB_lk10exd-4RJlqj9kf5QJF3hRY3IjOW02kJiZq2WeQ6w6gu5X3sXRo8cul8surm0i5XMzqB5wqgafeexVda1Osz7t6kvXj7mgnk57Jmxjc823eknaM9Fn-cax-IuR8sze9f2c4rSV2h8sbwbcI3cvinp6ocBnhIoSvFBBjFhhXs5wBVMY_rRZbQijjj8-016JkbIb9ztWYruynx5g2oq3IhWpje_xfnMIjughaboVgmi9c-nvcdQSMygxOOI4Zdmi2YOomv0b2WjvW-wBwtoeJ2gerY3o9xmdX-1wcrdyXsISidezSoz_eWIIVx12ikmzcJ0X5rSoJMhBYti0--");
var content = new StringContent("{\r\n \"message\": {\r\n \"token\":\"eZM2vdFeaTA:APA91bG56oeC0Sv6TeBj1Sf4v4KfBEVpRkGL24yLgXNKU5bKOwZboQiHRbtnWMxzl1yt7bf2zrzyEJNI6HJwDY2iXmwZSJTF0RpRAqTb4pcpOHr7AZA0Gwk\",\r\n \"data\": {\"TicketId\":\"TICKETID-278411\",\"NotificationCode\":null,\"NotificationMessage\":\"2\"}\r\n }\r\n}\r\n\r\n", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
return str;
}
/// <summary>
/// Decodes an RSA private key from byte array (Compatible with .NET 4.5)
/// </summary>
static RSACryptoServiceProvider DecodeRSAPrivateKeyFromBytes(byte[] privateKeyBytes)
{
try
{
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
using (MemoryStream ms = new MemoryStream(privateKeyBytes))
using (BinaryReader br = new BinaryReader(ms))
{
byte[] seqOid = { 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00 };
if (br.ReadByte() != 0x30)
return null;
ReadASNLength(br);
if (br.ReadByte() != 0x02)
return null;
int version = br.ReadByte();
if (version != 0x00)
return null;
if (!CompareByteArrays(br.ReadBytes(15), seqOid))
return null;
if (br.ReadByte() != 0x04)
return null;
ReadASNLength(br);
if (br.ReadByte() != 0x30)
return null;
ReadASNLength(br);
RSAParameters rsaParams = new RSAParameters
{
Modulus = ReadASNInteger(br),
Exponent = ReadASNInteger(br),
D = ReadASNInteger(br),
P = ReadASNInteger(br),
Q = ReadASNInteger(br),
DP = ReadASNInteger(br),
DQ = ReadASNInteger(br),
InverseQ = ReadASNInteger(br)
};
rsa.ImportParameters(rsaParams);
return rsa;
}
}
catch (Exception ex)
{
Console.WriteLine("Error decoding RSA private key from bytes: " + ex.Message);
return null;
}
}
/// <summary>
/// Reads an ASN.1 length
/// </summary>
static int ReadASNLength(BinaryReader br)
{
int length = br.ReadByte();
if ((length & 0x80) == 0)
return length;
int bytesToRead = length & 0x7F;
return br.ReadByte();
}
/// <summary>
/// Reads an ASN.1 Integer
/// </summary>
static byte[] ReadASNInteger(BinaryReader br)
{
if (br.ReadByte() != 0x02)
return null;
int length = ReadASNLength(br);
return br.ReadBytes(length);
}
/// <summary>
/// Compares two byte arrays
/// </summary>
static bool CompareByteArrays(byte[] a, byte[] b)
{
if (a.Length != b.Length)
return false;
for (int i = 0; i < a.Length; i++)
{
if (a[i] != b[i])
return false;
}
return true;
}
}
}

View File

@ -0,0 +1,304 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using System.Web;
using DBHelper;
using Org.BouncyCastle.OpenSsl;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Security;
using Org.BouncyCastle.Crypto.Parameters;
using System.Configuration;
using System.Web.Script.Serialization;
namespace VECV_WebApi.Common
{
public class FirebaseNotificationSender
{
private static string serviceAccountPath = (ConfigurationManager.AppSettings["FCMJson"]);
private static string firebaseProjectId = (ConfigurationManager.AppSettings["ProjectId"]);
//private static string fcmUrl = $"https://fcm.googleapis.com/v1/projects/" + firebaseProjectId + "/messages:send";
private string fcmUrl;
public FirebaseNotificationSender()
{
fcmUrl = $"https://fcm.googleapis.com/v1/projects/{firebaseProjectId}/messages:send";
}
public string GetAccessTokenValue()
{
// var jwtGenerator = new GetAccessToken();
return GetAccessToken();
}
public void SendNotification(string accessToken, string deviceToken, string title, string body)
{
var payload = new
{
message = new
{
token = deviceToken,
notification = new
{
title = title,
body = body
}
}
};
string jsonPayload = JsonConvert.SerializeObject(payload);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(fcmUrl);
request.Method = "POST";
request.ContentType = "application/json";
request.Headers.Add("Authorization", "Bearer " + accessToken);
using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
{
writer.Write(jsonPayload);
}
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string responseContent = reader.ReadToEnd();
Console.WriteLine("FCM Response: " + responseContent);
}
}
private static string GetAccessToken()
{
string json = File.ReadAllText(serviceAccountPath);
var keyData = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(json);
string clientEmail = keyData["client_email"].ToString();
string privateKey = keyData["private_key"].ToString();
string tokenUri = "https://oauth2.googleapis.com/token";
// Create JWT Header & Payload
var now = DateTime.UtcNow;
var payload = new Dictionary<string, object>
{
{ "iss", clientEmail },
{ "scope", "https://www.googleapis.com/auth/firebase.messaging" },
{ "aud", tokenUri },
{ "iat", (int)(now - new DateTime(1970, 1, 1)).TotalSeconds },
{ "exp", (int)(now.AddMinutes(60) - new DateTime(1970, 1, 1)).TotalSeconds }
};
string jwt = CreateJwt(privateKey, payload);
// Exchange JWT for OAuth Token
using (var webClient = new WebClient())
{
var requestParams = new Dictionary<string, string>
{
{ "grant_type", "urn:ietf:params:oauth:grant-type:jwt-bearer" },
{ "assertion", jwt }
};
string postData = new JavaScriptSerializer().Serialize(requestParams);
webClient.Headers[HttpRequestHeader.ContentType] = "application/json";
string response = webClient.UploadString(tokenUri, postData);
var responseObj = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(response);
return responseObj["access_token"].ToString();
}
}
private static string CreateJwt(string privateKey, Dictionary<string, object> payload)
{
var rsaParams = GetRsaParameters(privateKey);
var rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(rsaParams);
var header = new { alg = "RS256", typ = "JWT" };
string encodedHeader = Convert.ToBase64String(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(header)));
string encodedPayload = Convert.ToBase64String(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(payload)));
string unsignedToken = $"{encodedHeader}.{encodedPayload}";
byte[] signature = rsa.SignData(Encoding.UTF8.GetBytes(unsignedToken), CryptoConfig.MapNameToOID("SHA256"));
return $"{unsignedToken}.{Convert.ToBase64String(signature)}";
}
private static RSAParameters GetRsaParameters(string privateKey)
{
var pemReader = new PemReader(new StringReader(privateKey));
var keyObject = pemReader.ReadObject();
// Handle the case where the private key is directly a RsaPrivateCrtKeyParameters
if (keyObject is RsaPrivateCrtKeyParameters privateRsaParams)
{
return DotNetUtilities.ToRSAParameters(privateRsaParams);
}
// Handle AsymmetricCipherKeyPair (private and public key)
if (keyObject is AsymmetricCipherKeyPair keyPair)
{
privateRsaParams = (RsaPrivateCrtKeyParameters)keyPair.Private;
return DotNetUtilities.ToRSAParameters(privateRsaParams);
}
throw new InvalidOperationException("Unsupported private key format.");
}
}
}
/*static string jsonFilePath = @"path-to-your-service-account.json"; // Path to JSON file
string accessToken = GetAccessTokenFromJsonFile(jsonFilePath);
static string GetAccessTokenFromJsonFile(string jsonFilePath)
{
// Read JSON file
string json = File.ReadAllText(jsonFilePath);
var serviceAccountData = JsonConvert.DeserializeObject<ServiceAccount>(json);
if (serviceAccountData == null)
{
throw new Exception("Invalid service account JSON file.");
}
// Generate JWT
string jwtToken = GenerateJwt(serviceAccountData);
// Request access token
string token = RequestAccessToken(jwtToken);
return token;
}
static string RequestAccessToken(string jwtToken)
{
string tokenUrl = "https://oauth2.googleapis.com/token";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(tokenUrl);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
string postData = $"grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion={jwtToken}";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentLength = byteArray.Length;
using (Stream dataStream = request.GetRequestStream())
{
dataStream.Write(byteArray, 0, byteArray.Length);
}
try
{
using (WebResponse response = request.GetResponse())
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string responseString = reader.ReadToEnd();
var jsonResponse = JsonConvert.DeserializeObject<dynamic>(responseString);
return jsonResponse.access_token;
}
}
}
catch (WebException ex)
{
using (var errorResponse = ex.Response)
using (var reader = new StreamReader(errorResponse.GetResponseStream()))
{
string errorText = reader.ReadToEnd();
Console.WriteLine($"Error: {errorText}");
}
return null;
}
}
static string GenerateJwt(ServiceAccount serviceAccount)
{
long iat = GetUnixTimestamp();
long exp = iat + 3600;
var header = new { alg = "RS256", typ = "JWT" };
var payload = new Dictionary<string, object>
{
{ "iss", serviceAccount.client_email },
{ "sub", serviceAccount.client_email },
{ "aud", "https://oauth2.googleapis.com/token" },
{ "iat", iat },
{ "exp", exp },
{ "scope", "https://www.googleapis.com/auth/firebase.messaging" }
};
string headerBase64 = Base64UrlEncode(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(header)));
string payloadBase64 = Base64UrlEncode(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(payload)));
string unsignedToken = $"{headerBase64}.{payloadBase64}";
string signedJwt = SignJwt(unsignedToken, serviceAccount.private_key);
return $"{unsignedToken}.{signedJwt}";
}
public static long GetUnixTimestamp()
{
DateTimeOffset dateTimeOffset = DateTimeOffset.UtcNow;
DateTime epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
TimeSpan elapsedTime = dateTimeOffset.UtcDateTime - epoch;
return (long)elapsedTime.TotalSeconds;
}
static string SignJwt(string unsignedJwt, string privateKey)
{
byte[] privateKeyBytes = Convert.FromBase64String(
privateKey
.Replace("-----BEGIN PRIVATE KEY-----", "")
.Replace("-----END PRIVATE KEY-----", "")
.Replace("\n", "")
);
using (RSACryptoServiceProvider rsa = ImportPrivateKey(privateKey))
{
byte[] hash = HashData(unsignedJwt);
byte[] signature = rsa.SignHash(hash, CryptoConfig.MapNameToOID("SHA256"));
return Base64UrlEncode(signature);
}
}
//static RSACryptoServiceProvider DecodePrivateKey(byte[] privateKeyBytes)
//{
// var rsa = new RSACryptoServiceProvider();
// rsa.ImportPkcs8PrivateKey(privateKeyBytes, out _); // If fails, try importing with OpenSSL-converted private key.
// return rsa;
//}
public static RSACryptoServiceProvider ImportPrivateKey(string pem)
{
PemReader pr = new PemReader(new StringReader(pem));
AsymmetricCipherKeyPair KeyPair = (AsymmetricCipherKeyPair)pr.ReadObject();
RSAParameters rsaParams =
DotNetUtilities.ToRSAParameters((RsaPrivateCrtKeyParameters)KeyPair.Private);
RSACryptoServiceProvider csp = new RSACryptoServiceProvider();// cspParams);
csp.ImportParameters(rsaParams);
return csp;
}
static string Base64UrlEncode(byte[] input)
{
return Convert.ToBase64String(input)
.TrimEnd('=')
.Replace('+', '-')
.Replace('/', '_');
}
static byte[] HashData(string data)
{
using (SHA256 sha256 = SHA256.Create())
{
return sha256.ComputeHash(Encoding.UTF8.GetBytes(data));
}
}
class ServiceAccount
{
public string type { get; set; }
public string project_id { get; set; }
public string private_key_id { get; set; }
public string private_key { get; set; }
public string client_email { get; set; }
public string client_id { get; set; }
public string auth_uri { get; set; }
public string token_uri { get; set; }
public string auth_provider_x509_cert_url { get; set; }
public string client_x509_cert_url { get; set; }
}
}
}
*/

70
Common/GlobalConstants.cs Normal file
View File

@ -0,0 +1,70 @@
using System;
using System.Configuration;
namespace VECV_WebApi.Common
{
class GlobalConstants
{
private GlobalConstants()
{
}
// To get connection string
public static string ConnectionString
{
get
{
return System.Configuration.ConfigurationManager.AppSettings["Vecv_GoData"].ToString();
//ConfigurationSettings.AppSettings["Vecv_GoData"].ToString();
}
}
//Date Time Format
public static string DateTimeFormat
{
get
{
return System.Configuration.ConfigurationManager.AppSettings["DateTimeFormat"].ToString();
}
}
//Date Time Format
public static string DateFormat
{
get
{
return System.Configuration.ConfigurationManager.AppSettings["DateFormat"].ToString();
}
}
//Path At Which The Log file is Created and write
public static string ReportPath
{
get
{
return System.Configuration.ConfigurationManager.AppSettings["Text_FilePath"].ToString() + "_" + DateTime.Now.ToString(GlobalConstants.DateFormat) + ".txt";
}
}
//Report Date Time Format
public static string ReportFormat
{
get
{
return System.Configuration.ConfigurationManager.AppSettings["ReportFormat"].ToString();
}
}
//Get Excel File Path Format
public static string ExcelFilePath
{
get
{
return System.Configuration.ConfigurationManager.AppSettings["Excel_FilePath"].ToString();
}
}
}
}

View File

@ -0,0 +1,29 @@
using System;
using System.Net.Http.Headers;
using System.Web.Http.Filters;
namespace VECV_WebApi.Common
{
public static class HttpAuthenticationChallengeContextExtensions
{
public static void ChallengeWith(this HttpAuthenticationChallengeContext context, string scheme)
{
ChallengeWith(context, new AuthenticationHeaderValue(scheme));
}
public static void ChallengeWith(this HttpAuthenticationChallengeContext context, string scheme, string parameter)
{
ChallengeWith(context, new AuthenticationHeaderValue(scheme, parameter));
}
public static void ChallengeWith(this HttpAuthenticationChallengeContext context, AuthenticationHeaderValue challenge)
{
if (context == null)
{
throw new ArgumentNullException(nameof(context));
}
context.Result = new AddChallengeOnUnauthorizedResult(challenge, context.Result);
}
}
}

72
Common/JwtManager.cs Normal file
View File

@ -0,0 +1,72 @@
using System;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using Microsoft.IdentityModel.Tokens;
namespace VECV_WebApi.Common
{
public static class JwtManager
{
/// <summary>
/// Use the below code to generate symmetric Secret Key
/// var hmac = new HMACSHA256();
/// var key = Convert.ToBase64String(hmac.Key);
/// </summary>
private const string Secret = "db3OIsj+BXE9NZDy0t8W3TcNekrF+2d/1sFnWG4HnV8TZY30iTOdtVWJG8abWvB1GlOgJuQZdcF2Luqm/hccMw==";
public static string GenerateToken(string username, int expireMinutes = 20)
{
var symmetricKey = Convert.FromBase64String(Secret);
var tokenHandler = new JwtSecurityTokenHandler();
var now = DateTime.UtcNow;
var tokenDescriptor = new SecurityTokenDescriptor
{
Subject = new ClaimsIdentity(new[]
{
new Claim(ClaimTypes.Name, username)
}),
Expires = now.AddMinutes(Convert.ToInt32(expireMinutes)),
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(symmetricKey), SecurityAlgorithms.HmacSha256Signature)
};
SecurityToken securityToken = tokenHandler.CreateToken(tokenDescriptor);
var token = tokenHandler.WriteToken(securityToken);
return token;
}
public static ClaimsPrincipal GetPrincipal(string token)
{
try
{
var tokenHandler = new JwtSecurityTokenHandler();
var jwtToken = tokenHandler.ReadToken(token) as JwtSecurityToken;
if (jwtToken == null)
return null;
var symmetricKey = Convert.FromBase64String(Secret);
var validationParameters = new TokenValidationParameters()
{
RequireExpirationTime = true,
ValidateIssuer = false,
ValidateAudience = false,
IssuerSigningKey = new SymmetricSecurityKey(symmetricKey)
};
var principal = tokenHandler.ValidateToken(token, validationParameters, out _);
return principal;
}
catch (Exception)
{
return null;
}
}
}
}

View File

@ -0,0 +1,37 @@
using System.Diagnostics;
using System.Net;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
using Prometheus;
namespace VECV_WebApi.Filters
{
public class MetricsFilterAttribute : ActionFilterAttribute
{
private static readonly Counter RequestCounter = Metrics.CreateCounter(
"app_http_requests_total", "Total HTTP requests", new[] { "method", "endpoint", "status_code" });
private static readonly Histogram ResponseTime = Metrics.CreateHistogram(
"app_http_response_duration_seconds", "API response time", new[] { "endpoint" });
private Stopwatch _timer;
public override void OnActionExecuting(HttpActionContext actionContext)
{
_timer = Stopwatch.StartNew();
}
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
_timer.Stop();
var request = actionExecutedContext.Request;
var response = actionExecutedContext.Response;
var endpoint = request.RequestUri.AbsolutePath;
var method = request.Method.Method;
var status = ((int)(response?.StatusCode ?? HttpStatusCode.InternalServerError)).ToString();
RequestCounter.Labels(method, endpoint, status).Inc();
ResponseTime.Labels(endpoint).Observe(_timer.Elapsed.TotalSeconds);
}
}
}

267
Common/PushData.cs Normal file
View File

@ -0,0 +1,267 @@
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)
{
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
//string vanreachtime = "";
/// <summary>
/// making error log file path available to this class
/// </summary>
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<DT_S_WEBSITE_BI_EOSTABLE> lsDT_S_WEBSITE_BI_EOSTABLE = new List<DT_S_WEBSITE_BI_EOSTABLE>();
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<string> TicketArray = new List<string>();
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<string>();
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);
}
}
}
}
}

35
Common/UrlShortener.cs Normal file
View File

@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Web;
namespace VECV_WebApi.Common
{
public class UrlShortener
{
public string ShortenUrl(string originalUrl)
{
// Compute MD5 hash of the original URL
using (MD5 md5 = MD5.Create())
{
byte[] inputBytes = Encoding.ASCII.GetBytes(originalUrl);
byte[] hashBytes = md5.ComputeHash(inputBytes);
// Convert the byte array to a hexadecimal string
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashBytes.Length; i++)
{
sb.Append(hashBytes[i].ToString("X2"));
}
// Take the first 8 characters of the hash as the short URL
string shortenedHash = sb.ToString().Substring(0, 8);
// Append the hash to the base URL
return shortenedHash;
}
}
}
}

29
Common/WriteInFile.cs Normal file
View File

@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace VECV_WebApi.Common
{
class WriteInFile
{
public void WriteInTextFile(ref TextWriter tw, string StrText)
{
////// write a line of text to the file
//tw = new StreamWriter(path, true);
tw.WriteLine(StrText + " Current Date Time " + DateTime.Now.ToString(GlobalConstants.DateTimeFormat));
////// close the stream
//tw.Close();
}
public void CloseFile(ref TextWriter tw)
{
tw.Close();
}
}
}

View File

@ -0,0 +1,101 @@
using System;
using System.Collections.Generic;
using System.Security.Claims;
using System.Security.Principal;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Http.Filters;
using VECV_WebApi.Common;
namespace VECV_WebApi.CommonAuthorization
{
public class JwtAuthenticationAttribute : Attribute, IAuthenticationFilter
{
public string Realm { get; set; }
public bool AllowMultiple => false;
public async Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken)
{
var request = context.Request;
var authorization = request.Headers.Authorization;
if (authorization == null || authorization.Scheme != "Bearer")
return;
if (string.IsNullOrEmpty(authorization.Parameter))
{
context.ErrorResult = new AuthenticationFailureResult("Missing Jwt Token", request);
return;
}
var token = authorization.Parameter;
var principal = await AuthenticateJwtToken(token);
if (principal == null)
context.ErrorResult = new AuthenticationFailureResult("Invalid token", request);
else
context.Principal = principal;
}
private static bool ValidateToken(string token, out string username)
{
username = null;
var simplePrinciple = JwtManager.GetPrincipal(token);
var identity = simplePrinciple?.Identity as ClaimsIdentity;
if (identity == null)
return false;
if (!identity.IsAuthenticated)
return false;
var usernameClaim = identity.FindFirst(ClaimTypes.Name);
username = usernameClaim?.Value;
if (string.IsNullOrEmpty(username))
return false;
// More validate to check whether username exists in system
return true;
}
protected Task<IPrincipal> AuthenticateJwtToken(string token)
{
if (ValidateToken(token, out var username))
{
// based on username to get more information from database in order to build local identity
var claims = new List<Claim>
{
new Claim(ClaimTypes.Name, username)
// Add more claims if needed: Roles, ...
};
var identity = new ClaimsIdentity(claims, "Jwt");
IPrincipal user = new ClaimsPrincipal(identity);
return Task.FromResult(user);
}
return Task.FromResult<IPrincipal>(null);
}
public Task ChallengeAsync(HttpAuthenticationChallengeContext context, CancellationToken cancellationToken)
{
Challenge(context);
return Task.FromResult(0);
}
private void Challenge(HttpAuthenticationChallengeContext context)
{
string parameter = null;
if (!string.IsNullOrEmpty(Realm))
parameter = "realm=\"" + Realm + "\"";
context.ChallengeWith("Bearer", parameter);
}
}
}

756
Content/Site.css Normal file
View File

@ -0,0 +1,756 @@
html {
background-color: #e2e2e2;
margin: 0;
padding: 0;
}
body {
background-color: #fff;
border-top: solid 10px #000;
color: #333;
font-size: .85em;
font-family: "Segoe UI", Verdana, Helvetica, Sans-Serif;
margin: 0;
padding: 0;
}
a {
color: #333;
outline: none;
padding-left: 3px;
padding-right: 3px;
text-decoration: underline;
}
a:link, a:visited,
a:active, a:hover {
color: #333;
}
a:hover {
background-color: #c7d1d6;
}
header, footer, hgroup,
nav, section {
display: block;
}
mark {
background-color: #a6dbed;
padding-left: 5px;
padding-right: 5px;
}
.float-left {
float: left;
}
.float-right {
float: right;
}
.clear-fix:after {
content: ".";
clear: both;
display: block;
height: 0;
visibility: hidden;
}
h1, h2, h3,
h4, h5, h6 {
color: #000;
margin-bottom: 0;
padding-bottom: 0;
}
h1 {
font-size: 2em;
}
h2 {
font-size: 1.75em;
}
h3 {
font-size: 1.2em;
}
h4 {
font-size: 1.1em;
}
h5, h6 {
font-size: 1em;
}
h5 a:link, h5 a:visited, h5 a:active {
padding: 0;
text-decoration: none;
}
/* main layout
----------------------------------------------------------*/
.content-wrapper {
margin: 0 auto;
max-width: 960px;
}
#body {
background-color: #efeeef;
clear: both;
padding-bottom: 35px;
}
.main-content {
background: url("../Images/accent.png") no-repeat;
padding-left: 10px;
padding-top: 30px;
}
.featured + .main-content {
background: url("../Images/heroAccent.png") no-repeat;
}
header .content-wrapper {
padding-top: 20px;
}
footer {
clear: both;
background-color: #e2e2e2;
font-size: .8em;
height: 100px;
}
/* site title
----------------------------------------------------------*/
.site-title {
color: #c8c8c8;
font-family: Rockwell, Consolas, "Courier New", Courier, monospace;
font-size: 2.3em;
margin: 0;
}
.site-title a, .site-title a:hover, .site-title a:active {
background: none;
color: #c8c8c8;
outline: none;
text-decoration: none;
}
/* login
----------------------------------------------------------*/
#login {
display: block;
font-size: .85em;
margin: 0 0 10px;
text-align: right;
}
#login a {
background-color: #d3dce0;
margin-left: 10px;
margin-right: 3px;
padding: 2px 3px;
text-decoration: none;
}
#login a.username {
background: none;
margin: 0;
padding: 0;
text-decoration: underline;
}
#login ul {
margin: 0;
}
#login li {
display: inline;
list-style: none;
}
/* menu
----------------------------------------------------------*/
ul#menu {
font-size: 1.3em;
font-weight: 600;
margin: 0 0 5px;
padding: 0;
text-align: right;
}
ul#menu li {
display: inline;
list-style: none;
padding-left: 15px;
}
ul#menu li a {
background: none;
color: #999;
text-decoration: none;
}
ul#menu li a:hover {
color: #333;
text-decoration: none;
}
/* page elements
----------------------------------------------------------*/
/* featured */
.featured {
background-color: #fff;
}
.featured .content-wrapper {
background-color: #7ac0da;
background-image: -ms-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
background-image: -o-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
background-image: -webkit-gradient(linear, left top, right top, color-stop(0, #7ac0da), color-stop(1, #a4d4e6));
background-image: -webkit-linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
background-image: linear-gradient(left, #7ac0da 0%, #a4d4e6 100%);
color: #3e5667;
padding: 20px 40px 30px 40px;
}
.featured hgroup.title h1, .featured hgroup.title h2 {
color: #fff;
}
.featured p {
font-size: 1.1em;
}
/* page titles */
hgroup.title {
margin-bottom: 10px;
}
hgroup.title h1, hgroup.title h2 {
display: inline;
}
hgroup.title h2 {
font-weight: normal;
margin-left: 3px;
}
/* features */
section.feature {
width: 300px;
float: left;
padding: 10px;
}
/* ordered list */
ol.round {
list-style-type: none;
padding-left: 0;
}
ol.round li {
margin: 25px 0;
padding-left: 45px;
}
ol.round li.zero {
background: url("../Images/orderedList0.png") no-repeat;
}
ol.round li.one {
background: url("../Images/orderedList1.png") no-repeat;
}
ol.round li.two {
background: url("../Images/orderedList2.png") no-repeat;
}
ol.round li.three {
background: url("../Images/orderedList3.png") no-repeat;
}
ol.round li.four {
background: url("../Images/orderedList4.png") no-repeat;
}
ol.round li.five {
background: url("../Images/orderedList5.png") no-repeat;
}
ol.round li.six {
background: url("../Images/orderedList6.png") no-repeat;
}
ol.round li.seven {
background: url("../Images/orderedList7.png") no-repeat;
}
ol.round li.eight {
background: url("../Images/orderedList8.png") no-repeat;
}
ol.round li.nine {
background: url("../Images/orderedList9.png") no-repeat;
}
/* content */
article {
float: left;
width: 70%;
}
aside {
float: right;
width: 25%;
}
aside ul {
list-style: none;
padding: 0;
}
aside ul li {
background: url("../Images/bullet.png") no-repeat 0 50%;
padding: 2px 0 2px 20px;
}
.label {
font-weight: 700;
}
/* login page */
#loginForm {
border-right: solid 2px #c8c8c8;
float: left;
width: 55%;
}
#loginForm .validation-error {
display: block;
margin-left: 15px;
}
#loginForm .validation-summary-errors ul {
margin: 0;
padding: 0;
}
#loginForm .validation-summary-errors li {
display: inline;
list-style: none;
margin: 0;
}
#loginForm input {
width: 250px;
}
#loginForm input[type="checkbox"],
#loginForm input[type="submit"],
#loginForm input[type="button"],
#loginForm button {
width: auto;
}
#socialLoginForm {
margin-left: 40px;
float: left;
width: 40%;
}
#socialLoginForm h2 {
margin-bottom: 5px;
}
#socialLoginList button {
margin-bottom: 12px;
}
#logoutForm {
display: inline;
}
/* contact */
.contact h3 {
font-size: 1.2em;
}
.contact p {
margin: 5px 0 0 10px;
}
.contact iframe {
border: 1px solid #333;
margin: 5px 0 0 10px;
}
/* forms */
fieldset {
border: none;
margin: 0;
padding: 0;
}
fieldset legend {
display: none;
}
fieldset ol {
padding: 0;
list-style: none;
}
fieldset ol li {
padding-bottom: 5px;
}
label {
display: block;
font-size: 1.2em;
font-weight: 600;
}
label.checkbox {
display: inline;
}
input, textarea {
border: 1px solid #e2e2e2;
background: #fff;
color: #333;
font-size: 1.2em;
margin: 5px 0 6px 0;
padding: 5px;
width: 300px;
}
textarea {
font-family: inherit;
width: 500px;
}
input:focus, textarea:focus {
border: 1px solid #7ac0da;
}
input[type="checkbox"] {
background: transparent;
border: inherit;
width: auto;
}
input[type="submit"],
input[type="button"],
button {
background-color: #d3dce0;
border: 1px solid #787878;
cursor: pointer;
font-size: 1.2em;
font-weight: 600;
padding: 7px;
margin-right: 8px;
width: auto;
}
td input[type="submit"],
td input[type="button"],
td button {
font-size: 1em;
padding: 4px;
margin-right: 4px;
}
/* info and errors */
.message-info {
border: 1px solid;
clear: both;
padding: 10px 20px;
}
.message-error {
clear: both;
color: #e80c4d;
font-size: 1.1em;
font-weight: bold;
margin: 20px 0 10px 0;
}
.message-success {
color: #7ac0da;
font-size: 1.3em;
font-weight: bold;
margin: 20px 0 10px 0;
}
.error {
color: #e80c4d;
}
/* styles for validation helpers */
.field-validation-error {
color: #e80c4d;
font-weight: bold;
}
.field-validation-valid {
display: none;
}
input.input-validation-error {
border: 1px solid #e80c4d;
}
input[type="checkbox"].input-validation-error {
border: 0 none;
}
.validation-summary-errors {
color: #e80c4d;
font-weight: bold;
font-size: 1.1em;
}
.validation-summary-valid {
display: none;
}
/* tables
----------------------------------------------------------*/
table {
border-collapse: collapse;
border-spacing: 0;
margin-top: 0.75em;
border: 0 none;
}
th {
font-size: 1.2em;
text-align: left;
border: none 0px;
padding-left: 0;
}
th a {
display: block;
position: relative;
}
th a:link, th a:visited, th a:active, th a:hover {
color: #333;
font-weight: 600;
text-decoration: none;
padding: 0;
}
th a:hover {
color: #000;
}
th.asc a, th.desc a {
margin-right: .75em;
}
th.asc a:after, th.desc a:after {
display: block;
position: absolute;
right: 0em;
top: 0;
font-size: 0.75em;
}
th.asc a:after {
content: '▲';
}
th.desc a:after {
content: '▼';
}
td {
padding: 0.25em 2em 0.25em 0em;
border: 0 none;
}
tr.pager td {
padding: 0 0.25em 0 0;
}
/********************
* Mobile Styles *
********************/
@media only screen and (max-width: 850px) {
/* header
----------------------------------------------------------*/
header .float-left,
header .float-right {
float: none;
}
/* logo */
header .site-title {
margin: 10px;
text-align: center;
}
/* login */
#login {
font-size: .85em;
margin: 0 0 12px;
text-align: center;
}
#login ul {
margin: 5px 0;
padding: 0;
}
#login li {
display: inline;
list-style: none;
margin: 0;
padding: 0;
}
#login a {
background: none;
color: #999;
font-weight: 600;
margin: 2px;
padding: 0;
}
#login a:hover {
color: #333;
}
/* menu */
nav {
margin-bottom: 5px;
}
ul#menu {
margin: 0;
padding: 0;
text-align: center;
}
ul#menu li {
margin: 0;
padding: 0;
}
/* main layout
----------------------------------------------------------*/
.main-content,
.featured + .main-content {
background-position: 10px 0;
}
.content-wrapper {
padding-right: 10px;
padding-left: 10px;
}
.featured .content-wrapper {
padding: 10px;
}
/* page content */
article, aside {
float: none;
width: 100%;
}
/* ordered list */
ol.round {
list-style-type: none;
padding-left: 0;
}
ol.round li {
padding-left: 10px;
margin: 25px 0;
}
ol.round li.zero,
ol.round li.one,
ol.round li.two,
ol.round li.three,
ol.round li.four,
ol.round li.five,
ol.round li.six,
ol.round li.seven,
ol.round li.eight,
ol.round li.nine {
background: none;
}
/* features */
section.feature {
float: none;
padding: 10px;
width: auto;
}
section.feature img {
color: #999;
content: attr(alt);
font-size: 1.5em;
font-weight: 600;
}
/* forms */
input {
width: 90%;
}
/* login page */
#loginForm {
border-right: none;
float: none;
width: auto;
}
#loginForm .validation-error {
display: block;
margin-left: 15px;
}
#socialLoginForm {
margin-left: 0;
float: none;
width: auto;
}
/* footer
----------------------------------------------------------*/
footer .float-left,
footer .float-right {
float: none;
}
footer {
text-align: center;
height: auto;
padding: 10px 0;
}
footer p {
margin: 0;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

466
Content/themes/base/jquery-ui.css vendored Normal file
View File

@ -0,0 +1,466 @@
/*! jQuery UI - v1.8.20 - 2012-04-30
* https://github.com/jquery/jquery-ui
* Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.tabs.css, jquery.ui.theme.css
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT */
/* Layout helpers
----------------------------------*/
.ui-helper-hidden { display: none; }
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
.ui-helper-clearfix:after { clear: both; }
.ui-helper-clearfix { zoom: 1; }
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
/* Interaction Cues
----------------------------------*/
.ui-state-disabled { cursor: default !important; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
/* IE/Win - Fix animation bug - #4615 */
.ui-accordion { width: 100%; }
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
.ui-accordion .ui-accordion-li-fix { display: inline; }
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
.ui-accordion .ui-accordion-content-active { display: block; }
.ui-autocomplete { position: absolute; cursor: default; }
/* workarounds */
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
/*
* jQuery UI Menu 1.8.20
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Menu#theming
*/
.ui-menu {
list-style:none;
padding: 2px;
margin: 0;
display:block;
float: left;
}
.ui-menu .ui-menu {
margin-top: -3px;
}
.ui-menu .ui-menu-item {
margin:0;
padding: 0;
zoom: 1;
float: left;
clear: left;
width: 100%;
}
.ui-menu .ui-menu-item a {
text-decoration:none;
display:block;
padding:.2em .4em;
line-height:1.5;
zoom:1;
}
.ui-menu .ui-menu-item a.ui-state-hover,
.ui-menu .ui-menu-item a.ui-state-active {
font-weight: normal;
margin: -1px;
}
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
.ui-button-icons-only { width: 3.4em; }
button.ui-button-icons-only { width: 3.7em; }
/*button text element */
.ui-button .ui-button-text { display: block; line-height: 1.4; }
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
/* no icon support for input elements, provide padding by default */
input.ui-button { padding: .4em 1em; }
/*button icon element(s) */
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
/*button sets*/
.ui-buttonset { margin-right: 7px; }
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
/* workarounds */
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
.ui-datepicker .ui-datepicker-prev { left:2px; }
.ui-datepicker .ui-datepicker-next { right:2px; }
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year { width: 49%;}
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
.ui-datepicker td { border: 0; padding: 1px; }
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
/* with multiple calendars */
.ui-datepicker.ui-datepicker-multi { width:auto; }
.ui-datepicker-multi .ui-datepicker-group { float:left; }
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
/* RTL support */
.ui-datepicker-rtl { direction: rtl; }
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
.ui-datepicker-cover {
display: none; /*sorry for IE5*/
display/**/: block; /*sorry for IE5*/
position: absolute; /*must have*/
z-index: -1; /*must have*/
filter: mask(); /*must have*/
top: -4px; /*must have*/
left: -4px; /*must have*/
width: 200px; /*must have*/
height: 200px; /*must have*/
}
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
.ui-draggable .ui-dialog-titlebar { cursor: move; }
.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
.ui-resizable { position: relative;}
.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
.ui-slider { position: relative; text-align: left; }
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
.ui-slider-horizontal { height: .8em; }
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
.ui-slider-vertical { width: .8em; height: 100px; }
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
.ui-slider-vertical .ui-slider-range-max { top: 0; }
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
.ui-tabs .ui-tabs-hide { display: none !important; }
/* Component containers
----------------------------------*/
.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
.ui-widget .ui-widget { font-size: 1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; }
.ui-widget-content a { color: #222222/*{fcContent}*/; }
.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; }
.ui-widget-header a { color: #222222/*{fcHeader}*/; }
/* Interaction states
----------------------------------*/
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; }
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; }
.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; }
.ui-widget :active { outline: none; }
/* Interaction Cues
----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; }
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; }
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; }
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; }
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; }
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; }
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; }
/* positioning */
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
.ui-icon-carat-1-e { background-position: -32px 0; }
.ui-icon-carat-1-se { background-position: -48px 0; }
.ui-icon-carat-1-s { background-position: -64px 0; }
.ui-icon-carat-1-sw { background-position: -80px 0; }
.ui-icon-carat-1-w { background-position: -96px 0; }
.ui-icon-carat-1-nw { background-position: -112px 0; }
.ui-icon-carat-2-n-s { background-position: -128px 0; }
.ui-icon-carat-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -64px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -64px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-off { background-position: -96px -144px; }
.ui-icon-radio-on { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
/* Misc visuals
----------------------------------*/
/* Corner radius */
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -khtml-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; }
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -khtml-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
/* Overlays */
.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; }
.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; }

View File

@ -0,0 +1,19 @@
/*!
* jQuery UI Accordion 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Accordion#theming
*/
/* IE/Win - Fix animation bug - #4615 */
.ui-accordion { width: 100%; }
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
.ui-accordion .ui-accordion-li-fix { display: inline; }
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
.ui-accordion .ui-accordion-content-active { display: block; }

11
Content/themes/base/jquery.ui.all.css vendored Normal file
View File

@ -0,0 +1,11 @@
/*!
* jQuery UI CSS Framework 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming
*/
@import "jquery.ui.base.css";
@import "jquery.ui.theme.css";

View File

@ -0,0 +1,53 @@
/*!
* jQuery UI Autocomplete 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Autocomplete#theming
*/
.ui-autocomplete { position: absolute; cursor: default; }
/* workarounds */
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
/*
* jQuery UI Menu 1.8.20
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Menu#theming
*/
.ui-menu {
list-style:none;
padding: 2px;
margin: 0;
display:block;
float: left;
}
.ui-menu .ui-menu {
margin-top: -3px;
}
.ui-menu .ui-menu-item {
margin:0;
padding: 0;
zoom: 1;
float: left;
clear: left;
width: 100%;
}
.ui-menu .ui-menu-item a {
text-decoration:none;
display:block;
padding:.2em .4em;
line-height:1.5;
zoom:1;
}
.ui-menu .ui-menu-item a.ui-state-hover,
.ui-menu .ui-menu-item a.ui-state-active {
font-weight: normal;
margin: -1px;
}

21
Content/themes/base/jquery.ui.base.css vendored Normal file
View File

@ -0,0 +1,21 @@
/*!
* jQuery UI CSS Framework 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming
*/
@import url("jquery.ui.core.css");
@import url("jquery.ui.accordion.css");
@import url("jquery.ui.autocomplete.css");
@import url("jquery.ui.button.css");
@import url("jquery.ui.datepicker.css");
@import url("jquery.ui.dialog.css");
@import url("jquery.ui.progressbar.css");
@import url("jquery.ui.resizable.css");
@import url("jquery.ui.selectable.css");
@import url("jquery.ui.slider.css");
@import url("jquery.ui.tabs.css");

View File

@ -0,0 +1,38 @@
/*!
* jQuery UI Button 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Button#theming
*/
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
.ui-button-icons-only { width: 3.4em; }
button.ui-button-icons-only { width: 3.7em; }
/*button text element */
.ui-button .ui-button-text { display: block; line-height: 1.4; }
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
/* no icon support for input elements, provide padding by default */
input.ui-button { padding: .4em 1em; }
/*button icon element(s) */
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
/*button sets*/
.ui-buttonset { margin-right: 7px; }
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
/* workarounds */
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */

38
Content/themes/base/jquery.ui.core.css vendored Normal file
View File

@ -0,0 +1,38 @@
/*!
* jQuery UI CSS Framework 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*/
/* Layout helpers
----------------------------------*/
.ui-helper-hidden { display: none; }
.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
.ui-helper-clearfix:after { clear: both; }
.ui-helper-clearfix { zoom: 1; }
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
/* Interaction Cues
----------------------------------*/
.ui-state-disabled { cursor: default !important; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

View File

@ -0,0 +1,68 @@
/*!
* jQuery UI Datepicker 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Datepicker#theming
*/
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
.ui-datepicker .ui-datepicker-prev { left:2px; }
.ui-datepicker .ui-datepicker-next { right:2px; }
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year { width: 49%;}
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
.ui-datepicker td { border: 0; padding: 1px; }
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
/* with multiple calendars */
.ui-datepicker.ui-datepicker-multi { width:auto; }
.ui-datepicker-multi .ui-datepicker-group { float:left; }
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
/* RTL support */
.ui-datepicker-rtl { direction: rtl; }
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
.ui-datepicker-cover {
display: none; /*sorry for IE5*/
display/**/: block; /*sorry for IE5*/
position: absolute; /*must have*/
z-index: -1; /*must have*/
filter: mask(); /*must have*/
top: -4px; /*must have*/
left: -4px; /*must have*/
width: 200px; /*must have*/
height: 200px; /*must have*/
}

View File

@ -0,0 +1,21 @@
/*!
* jQuery UI Dialog 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Dialog#theming
*/
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
.ui-draggable .ui-dialog-titlebar { cursor: move; }

View File

@ -0,0 +1,11 @@
/*!
* jQuery UI Progressbar 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Progressbar#theming
*/
.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }

View File

@ -0,0 +1,20 @@
/*!
* jQuery UI Resizable 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Resizable#theming
*/
.ui-resizable { position: relative;}
.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}

View File

@ -0,0 +1,10 @@
/*!
* jQuery UI Selectable 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Selectable#theming
*/
.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }

View File

@ -0,0 +1,24 @@
/*!
* jQuery UI Slider 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Slider#theming
*/
.ui-slider { position: relative; text-align: left; }
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
.ui-slider-horizontal { height: .8em; }
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
.ui-slider-vertical { width: .8em; height: 100px; }
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
.ui-slider-vertical .ui-slider-range-max { top: 0; }

18
Content/themes/base/jquery.ui.tabs.css vendored Normal file
View File

@ -0,0 +1,18 @@
/*!
* jQuery UI Tabs 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Tabs#theming
*/
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
.ui-tabs .ui-tabs-hide { display: none !important; }

247
Content/themes/base/jquery.ui.theme.css vendored Normal file
View File

@ -0,0 +1,247 @@
/*!
* jQuery UI CSS Framework 1.8.20
*
* Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
* Licensed under the MIT license.
* http://jquery.org/license
*
* http://docs.jquery.com/UI/Theming/API
*
* To view and modify this theme, visit http://jqueryui.com/themeroller/
*/
/* Component containers
----------------------------------*/
.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
.ui-widget .ui-widget { font-size: 1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; }
.ui-widget-content a { color: #222222/*{fcContent}*/; }
.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; }
.ui-widget-header a { color: #222222/*{fcHeader}*/; }
/* Interaction states
----------------------------------*/
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; }
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; }
.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; }
.ui-widget :active { outline: none; }
/* Interaction Cues
----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; }
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; }
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; }
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; }
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; }
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; }
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; }
/* positioning */
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
.ui-icon-carat-1-e { background-position: -32px 0; }
.ui-icon-carat-1-se { background-position: -48px 0; }
.ui-icon-carat-1-s { background-position: -64px 0; }
.ui-icon-carat-1-sw { background-position: -80px 0; }
.ui-icon-carat-1-w { background-position: -96px 0; }
.ui-icon-carat-1-nw { background-position: -112px 0; }
.ui-icon-carat-2-n-s { background-position: -128px 0; }
.ui-icon-carat-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -64px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -64px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-off { background-position: -96px -144px; }
.ui-icon-radio-on { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
/* Misc visuals
----------------------------------*/
/* Corner radius */
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; -khtml-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; }
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; -khtml-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; -khtml-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
/* Overlays */
.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; }
.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -khtml-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; }

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,5 @@
/*! jQuery UI - v1.8.20 - 2012-04-30
* https://github.com/jquery/jquery-ui
* Includes: jquery.ui.accordion.css
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT */
.ui-accordion{width:100%}.ui-accordion .ui-accordion-header{cursor:pointer;position:relative;margin-top:1px;zoom:1}.ui-accordion .ui-accordion-li-fix{display:inline}.ui-accordion .ui-accordion-header-active{border-bottom:0!important}.ui-accordion .ui-accordion-header a{display:block;font-size:1em;padding:.5em .5em .5em .7em}.ui-accordion-icons .ui-accordion-header a{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;margin-top:-2px;position:relative;top:1px;margin-bottom:2px;overflow:auto;display:none;zoom:1}.ui-accordion .ui-accordion-content-active{display:block}

View File

@ -0,0 +1,5 @@
/*! jQuery UI - v1.8.20 - 2012-04-30
* https://github.com/jquery/jquery-ui
* Includes: jquery.ui.autocomplete.css
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT */
.ui-autocomplete{position:absolute;cursor:default}* html .ui-autocomplete{width:1px}.ui-menu{list-style:none;padding:2px;margin:0;display:block;float:left}.ui-menu .ui-menu{margin-top:-3px}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;float:left;clear:left;width:100%}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.5;zoom:1}.ui-menu .ui-menu-item a.ui-state-hover,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}

View File

@ -0,0 +1,5 @@
/*! jQuery UI - v1.8.20 - 2012-04-30
* https://github.com/jquery/jquery-ui
* Includes: jquery.ui.button.css
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT */
.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;text-decoration:none!important;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:1.4}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner{border:0;padding:0}

View File

@ -0,0 +1,5 @@
/*! jQuery UI - v1.8.20 - 2012-04-30
* https://github.com/jquery/jquery-ui
* Includes: jquery.ui.core.css
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT */
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute!important;clip:rect(1px);clip:rect(1px,1px,1px,1px)}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{zoom:1}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}

View File

@ -0,0 +1,5 @@
/*! jQuery UI - v1.8.20 - 2012-04-30
* https://github.com/jquery/jquery-ui
* Includes: jquery.ui.datepicker.css
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT */
.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0em}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{display:none;display position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}

View File

@ -0,0 +1,5 @@
/*! jQuery UI - v1.8.20 - 2012-04-30
* https://github.com/jquery/jquery-ui
* Includes: jquery.ui.dialog.css
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT */
.ui-dialog{position:absolute;padding:.2em;width:300px;overflow:hidden}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}

View File

@ -0,0 +1,5 @@
/*! jQuery UI - v1.8.20 - 2012-04-30
* https://github.com/jquery/jquery-ui
* Includes: jquery.ui.progressbar.css
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT */
.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}

View File

@ -0,0 +1,5 @@
/*! jQuery UI - v1.8.20 - 2012-04-30
* https://github.com/jquery/jquery-ui
* Includes: jquery.ui.resizable.css
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT */
.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}

View File

@ -0,0 +1,5 @@
/*! jQuery UI - v1.8.20 - 2012-04-30
* https://github.com/jquery/jquery-ui
* Includes: jquery.ui.selectable.css
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT */
.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}

View File

@ -0,0 +1,5 @@
/*! jQuery UI - v1.8.20 - 2012-04-30
* https://github.com/jquery/jquery-ui
* Includes: jquery.ui.slider.css
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT */
.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}

View File

@ -0,0 +1,5 @@
/*! jQuery UI - v1.8.20 - 2012-04-30
* https://github.com/jquery/jquery-ui
* Includes: jquery.ui.tabs.css
* Copyright (c) 2012 AUTHORS.txt; Licensed MIT */
.ui-tabs{position:relative;padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:1px;margin:0 .2em 1px 0;border-bottom:0!important;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-selected{margin-bottom:0;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-selected a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-state-processing a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tabs .ui-tabs-hide{display:none!important}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,352 @@
namespace VECV_WebApi.Controllers.Activity
{
#region Namespaces
using LoggingHelper;
using Newtonsoft.Json;
using RestSharp;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Script.Serialization;
using VECV_WebApi.Models.Activity;
using VECV_WebApi.Models.EmailServices;
using VECV_WebApi.Models.Ticket;
using VECV_WebApi.Models.Vehicle;
#endregion
/// <summary>
/// This controller contain APIs releted to actvity on open ticket and close ticket
/// </summary>
public class ActivityController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// making Global Repository object available to this class
/// </summary>
GlobalRepository objGlobalRepository = new GlobalRepository("");
/// <summary>
/// making Activity Repository object available to this class
/// </summary>
ActivityRepository objActivityRepository;
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
/// <summary>
/// This method is used for get activity of open ticket detail, ticket id wise
/// </summary>
/// <param name="model">Ticket information</param>
/// <returns>activities of open ticket, ticket id wise</returns>
public List<OpenTicketActivityTicketWiseModel> Post([FromBody] OpenTicketActivityTicketWiseModel model)
{
//write data logs
OpenTicketActivityTicketWiseModel objModel = new OpenTicketActivityTicketWiseModel();
List<OpenTicketActivityTicketWiseModel> objList = new List<OpenTicketActivityTicketWiseModel>();
try
{
objActivityRepository = new ActivityRepository(_connStr);
objList = objActivityRepository.GetOpenTicketActivityTicketWise(model);
return objList;
}
catch (Exception Ex)
{
objList.Add(new OpenTicketActivityTicketWiseModel
{
Status = "0",
Message = Ex.Message
});
//write error log into file
objLog.ErrorLogFile("GetOpenTicketActivityTicketWise_Controller", Ex.Message, path, errorlogtf);
return objList;
}
}
/// <summary>
/// This method is used for get activities of close ticket, ticket id wise
/// </summary>
/// <param name="model">Ticket Information</param>
/// <returns>activities of close ticket, ticket id wise</returns>
public List<CloseTicketActivityTicketWiseModel> Post([FromUri] string Close, [FromBody] CloseTicketActivityTicketWiseModel model)
{
// write data log into file
CloseTicketActivityTicketWiseModel objModel = new CloseTicketActivityTicketWiseModel();
List<CloseTicketActivityTicketWiseModel> objList = new List<CloseTicketActivityTicketWiseModel>();
try
{
objActivityRepository = new ActivityRepository(_connStr);
objList = objActivityRepository.GetCloseTicketActivityTicketWise(model);
return objList;
}
catch (Exception Ex)
{
objList.Add(new CloseTicketActivityTicketWiseModel
{
Status = "0",
Message = Ex.Message
});
return objList;
}
}
public string Post([FromUri] string preClose,[FromUri] string preClosereason, [FromBody] CloseTicketActivityTicketWiseModel model)
{
// write data log into file
string reasonval = "";
try
{
objActivityRepository = new ActivityRepository(_connStr);
reasonval = objActivityRepository.getPreclosureReason(model.TicketId);
return reasonval;
}
catch (Exception Ex)
{
reasonval = "error";
return reasonval;
}
}
public string Get([FromUri] string chassisno, [FromUri] string regno)
{
//string chassino = "MC2DALRC0ME001921";
VehicleRepository objVehicleRepository;
VehicleModel objModel = new VehicleModel();
try
{
//VehicleRepository objvehicle = new VehicleRepository();
objVehicleRepository = new VehicleRepository(_connStr);
//string[] strings = dtccodes.Split(',');
VehicleModel model = new VehicleModel();
model.Id = "";
model.RegistrationNo = regno;
// model.Id = null;
objVehicleRepository = new VehicleRepository(_connStr);
objModel = objVehicleRepository.GetchessisDetail(model);
}
catch (Exception Ex)
{
objLog.ErrorLogFile("get chasssi number", Ex.Message, path, errorlogtf);
}
return objModel.ChassisNumber;
}
//Added by priya 09 feb 2023
/* public Telematic_Model Get([FromUri] string chassisno)
{
Telematic_Model model = new Telematic_Model();
if (chassisno.Length > 12)
{
try
{
string APIRegistrationNo = string.Format(ConfigurationManager.AppSettings["EOSAPI
"].ToString(), chassisno);
WebRequest req = WebRequest.Create(APIRegistrationNo);
req.Method = "GET";
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12
| SecurityProtocolType.Ssl3
| (SecurityProtocolType)3072;
WebResponse webRes = req.GetResponse();
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
if (resp.StatusCode == HttpStatusCode.Created)
{
StreamReader ResponseDataStream = new StreamReader(resp.GetResponseStream());
String res = ResponseDataStream.ReadToEnd();
JavaScriptSerializer js = new JavaScriptSerializer();
model = js.Deserialize<Telematic_Model>(res);
//model.lastdate = model.positionDateTime.ToShortDateString();
// string jsonified2 = JsonConvert.SerializeObject(model);
// objLog.AddLogFile("telematic detail", jsonified2, path, errorlogtf);
// DateTime? dt = null;
//dt = Convert.ToDateTime(model.positionDateTime);
string strposteddate = model.positionDateTime.ToShortDateString();
if (strposteddate == "1/1/0001")
{
strposteddate = null;
}
else
{
strposteddate =model.positionDateTime.ToShortDateString();
}
model.lastdate = strposteddate;
//odometerreading = model.odometer;
}
}
catch (Exception Ex)
{
objLog.ErrorLogFile("no telematic details", Ex.Message, path, errorlogtf);
}
}
return model;
}
*/
/// <summary>
/// Added for new telematics
/// </summary>
/// <param name="connected"></param>
/// <param name="ticketId"></param>
/// <param name="vehiclestatus"></param>
/// <returns></returns>
public Telematic_Model_new Get([FromUri] string chassisno)
{
Telematic_Model_new model = new Telematic_Model_new();
TicketRepository objTicketRepository = new TicketRepository(_connStr);
var apiurl = "https://apiplatform.vecv.net/volvo-api/getLatestLocation_Volvo/" + chassisno + "/";
if (chassisno.Length > 12)
{
try
{
if (System.Configuration.ConfigurationManager.AppSettings["isProtechAPICall"] != "true")
{
//requestVehicleType.AddParameter("chassisno", chassisno);
var clientVehicleType = new RestClient("https://apiplatform.vecv.net/volvo-api/getLatestLocation_Volvo/" + chassisno + "/");
clientVehicleType.Timeout = 10000;
// clientVehicleType.Timeout =-1;
var requestVehicleType = new RestRequest(Method.GET);
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12
| SecurityProtocolType.Ssl3
| (SecurityProtocolType)3072;
//requestVehicleType.AddParameter("chassisno", chassisno);
var username = ConfigurationManager.AppSettings["EOSUSERNAMEFORGETTINGTELEMATICDATA"].ToString();
var password = ConfigurationManager.AppSettings["EOSPASSWORDFORGETTINGTELEMATICDATA"].ToString();
// Add Basic Authentication
var credentials = Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes($"{username}:{password}"));
// Add Basic Authentication header
requestVehicleType.AddHeader("Authorization", $"Basic {credentials}");
requestVehicleType.AddHeader("Content-Type", "application/json");
IRestResponse responseVehicleType = clientVehicleType.Execute(requestVehicleType);
Console.WriteLine(responseVehicleType.ResponseStatus);
if(responseVehicleType.ResponseStatus.ToString() == "Error")
{
bool isSend = objTicketRepository.emailForError(responseVehicleType.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString());
objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), responseVehicleType.ErrorMessage.ToString(), path, errorlogtf);
}
else {
if (responseVehicleType.ResponseStatus.ToString() == "TimedOut")
{
bool isSend = objTicketRepository.emailForError(responseVehicleType.ErrorMessage.ToString(), clientVehicleType.BaseUrl.ToString());
objLog.ErrorLogFile(clientVehicleType.BaseUrl.ToString(), responseVehicleType.ErrorMessage.ToString(), path, errorlogtf);
}
else
{
var stringvehcileResult = responseVehicleType.Content.ToString();
var telematicList = JsonConvert.DeserializeObject<List<Telematic_Model>>(stringvehcileResult);
// Get the latitude value
if (telematicList[0].status.ToLower() == "success")
{
model.latitude = telematicList[0].latitude;
model.longitude = telematicList[0].longitude;
model.odometer = telematicList[0].odometer;
model.positionDateTime = telematicList[0].positionDateTime;
string format = "yyyyMMddHHmmss";
// Parse the string to DateTime
DateTime dateTime = DateTime.ParseExact(model.positionDateTime, format, CultureInfo.InvariantCulture);
string strposteddate = dateTime.ToShortDateString();
if (strposteddate == "1/1/0001")
{
strposteddate = null;
}
else
{
strposteddate = dateTime.ToShortDateString();
}
model.lastdate = strposteddate;
}
}
}
}
}
catch (Exception Ex)
{
bool isSend = objTicketRepository.emailForError(Ex.Message, apiurl);
objLog.ErrorLogFile("no telematic details", Ex.Message, path, errorlogtf);
}
}
return model;
}
public string Get([FromUri] string connected, [FromUri] string ticketId, [FromUri] string vehiclestatus)
{
//string chassino = "MC2DALRC0ME001921";
VehicleRepository objVehicleRepository;
string strmessage = "";
try
{
//VehicleRepository objvehicle = new VehicleRepository();
objVehicleRepository = new VehicleRepository(_connStr);
objVehicleRepository = new VehicleRepository(_connStr);
strmessage = objVehicleRepository.updateVehicleConnectedFlag(ticketId, vehiclestatus);
}
catch (Exception Ex)
{
objLog.ErrorLogFile("vehicle connected or not", Ex.Message, path, errorlogtf);
}
return strmessage;
}
#endregion
}
}

View File

@ -0,0 +1,830 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using VECV_WebApi.Models.Ticket;
namespace VECV_WebApi.Controllers
{
#region Namespaces
using VECV_WebApi.Models.ServiceEngineer;
using LoggingHelper;
using Newtonsoft.Json;
using System;
using System.Configuration;
using System.Web;
using System.Web.Http;
using VECV_WebApi.Models.EmailServices;
using VECV_WebApi.Models.Ticket;
using ExcelHelper;
using System.Data;
#endregion
/// <summary>
/// This controller contain ticket related api
/// </summary>
public class AdminController : ApiController
{
#region Global Variable
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
string _appName = (ConfigurationManager.AppSettings["ApplicationName"]);
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
/// <summary>
/// making Global Repository object available to this class
/// </summary>
/// GlobalRepository objGlobalRepository;
/// <summary>
/// making Ticket Repository object available to this class
/// </summary>
TicketRepository objTicketRepository;
#endregion
/// <summary>
/// To get state list
/// </summary>
/// <param name="state">extra param to identify the api</param>
/// <param name="state1">extra param to identify the api</param>
/// <param name="model">state info</param>
/// <returns>state list</returns>
public List<StateModel> post([FromUri] string state, [FromUri] string state1, [FromUri] string state2, [FromUri] string state3, [FromUri] string state4, [FromBody] StateModel model)
{
List<StateModel> objList = new List<StateModel>();
try
{
TicketRepository objTicketRepository = new TicketRepository(_connStr);
if (model.StateAlias.ToLower() == "electric")
{
model.StateAlias = "electric";
}
else if (model.StateAlias.ToLower() == "diesel/cng")
{
model.StateAlias = "diesel,cng";
}
else if (model.StateAlias.ToLower() == "diesel/cng/electric")
{
model.StateAlias = "diesel,cng,electric";
}
objList = objTicketRepository.GetStateListIdWiseFuelType(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetAllStateListIdWise_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public string Post([FromBody] ValueModel model)
{
string strmessage = "";
try
{
if (model.fuelValue.ToLower() == "electric")
{
model.fuelValue = "Electric";
}
else if (model.fuelValue.ToLower() == "diesel/cng")
{
model.fuelValue = "Diesel,CNG";
}
else if (model.fuelValue.ToLower() == "diesel/cng/electric")
{
model.fuelValue = "Diesel,CNG,Electric";
}
TicketRepository objTicketRepository = new TicketRepository(_connStr);
strmessage = objTicketRepository.UpdateFuelTypeDealer(model.dealerId, model.fuelValue);
}
catch (Exception Ex)
{
objLog.ErrorLogFile("DashboardController GetTileDashboardDataSet", Ex.Message, path, errorlogtf);
}
return strmessage;
}
public string Post(string van, [FromBody] ValueModel model)
{
string strmessage = "";
try
{
TicketRepository objTicketRepository = new TicketRepository(_connStr);
model.fuelValue = JsonConvert.DeserializeObject<string>(model.fuelValue);
// var json = JsonConvert.DeserializeObject(model.fuelValue);
// string[] strarr = model.fuelValue;
//string strval = "";
//foreach (var item in strobject)
//{
// strval += item + ',';
// //SendItemOverNetwork(JsonConvert.SerializeObject(item));
//}
// strval = strval.Remove(strval.Length - 1);
if (model.fuelValue.ToLower() == "electric")
{
model.fuelValue = "Electric";
}
else if (model.fuelValue.ToLower() == "diesel/cng")
{
model.fuelValue = "Diesel,CNG";
}
else if (model.fuelValue.ToLower() == "diesel/cng/electric")
{
model.fuelValue = "Diesel,CNG,Electric";
}
strmessage = objTicketRepository.UpdateFuelTypeVan(model.regNo, model.fuelValue);
}
catch (Exception Ex)
{
objLog.ErrorLogFile("DashboardController GetTileDashboardDataSet", Ex.Message, path, errorlogtf);
}
return strmessage;
}
public List<DealerModel> post([FromUri] string dealer, [FromUri] string dealer1, [FromUri] string dealer2, [FromBody] VanModel model)
{
DealerModel objDealerModel = new DealerModel();
List<DealerModel> objListDealerModel = new List<DealerModel>();
try
{
GlobalRepository objGlobalRepository = new GlobalRepository(_connStr);
List<StateModel> objList = new List<StateModel>();
string sStateName = "";
string sCityName = "";
try
{
objGlobalRepository = new GlobalRepository(_connStr);
StateModel modelstate = new StateModel();
modelstate.Token = model.Token;
objList = objGlobalRepository.GetAllStateList(modelstate);
sStateName = objList.Where(w => w.StateId.Equals(model.DealerStateParam)).Select(s => s.StateAlias).FirstOrDefault();
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetAllStateList_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
try
{
List<CityModel> objListcity = new List<CityModel>();
CityModel modelcity = new CityModel();
modelcity.Token = model.Token;
modelcity.StateId = model.DealerStateParam;
objGlobalRepository = new GlobalRepository(_connStr);
objListcity = objGlobalRepository.GetAllCityListStateIdWise(modelcity);
sCityName = objListcity.Where(w => w.CityId.Equals(model.DealerCityParam)).Select(s => s.CityName).FirstOrDefault();
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetAllCityListStateIdWise_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
model.DealerStateParam = sStateName;
model.DealerCityParam = sCityName;
if (model.fuel_type.ToLower() == "electric")
{
model.fuel_type = "electric";
}
else if (model.fuel_type.ToLower() == "diesel/cng")
{
model.fuel_type = "diesel,cng";
}
else if (model.fuel_type.ToLower() == "diesel/cng/electric")
{
model.fuel_type = "diesel,cng,electric";
}
objListDealerModel = objGlobalRepository.GetDealerStateCityWiseFuelType(model);
return objListDealerModel;
}
catch (Exception Ex)
{
// write error log into file
objDealerModel.Status = "0";
objDealerModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; ;
objLog.ErrorLogFile("GetDealerStateCityWise_Controller", Ex.Message, path, errorlogtf);
return objListDealerModel;
}
}
public List<VehicleTypeModel> post([FromUri] string dealer, [FromUri] string dealer1, [FromUri] string dealer2, [FromUri] string dealer3, [FromBody] ValueModel model)
{
DealerModel objDealerModel = new DealerModel();
List<VehicleTypeModel> objListDealerModel = new List<VehicleTypeModel>();
try
{
GlobalRepository objGlobalRepository = new GlobalRepository(_connStr);
if (model.fuelValue.ToLower() == "electric")
{
}
else
{
model.fuelValue = "diesel,cng";
}
objListDealerModel = objGlobalRepository.GetAllVehicleTypeListByFuelType(model.fuelValue);
return objListDealerModel;
}
catch (Exception Ex)
{
// write error log into file
objDealerModel.Status = "0";
objDealerModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; ;
objLog.ErrorLogFile("GetDealerStateCityWise_Controller", Ex.Message, path, errorlogtf);
return objListDealerModel;
}
}
public string Post([FromUri] string dealerReport, [FromUri] string isdealer, string dealer, [FromUri] string isajaxcount, [FromUri] string Download, [FromBody] VECVReportRequestModel model)
{ // write data log into file
// write data log into file
ReportRequestModel ObjModel = new ReportRequestModel();
try
{
TicketRepository objTicket = new TicketRepository(_connStr); // model.TicketType = TicketType;
// ObjModel = objTicket.GetTicketDetailVECVCalculation(model);
ObjModel = objTicket.GetAllDealerDetails();
List<DealerReport> oList = new List<DealerReport>();
string fileName = null;
bool isCreated = false;
oList = ObjModel.DelearList;
DataTable OpenTicketTable = oList.ToDataTable();
Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1;
DataSet ds = new DataSet();
ds.Tables.Add(OpenTicketTable);
ds.Tables[0].Columns[0].ColumnName = "Dealer Id";
ds.Tables[0].Columns[1].ColumnName = "Dealer Name";
ds.Tables[0].Columns[2].ColumnName = "State";
ds.Tables[0].Columns[3].ColumnName = "City";
ds.Tables[0].Columns[4].ColumnName = "Latitude";
ds.Tables[0].Columns[5].ColumnName = "Longitude";
ds.Tables[0].Columns[6].ColumnName = "FuelType";
ds.Tables[0].Columns[7].ColumnName = "Organisation";
ds.Tables[0].Columns[8].ColumnName = "App Version";
ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility();
List<WorkbookMappingModel> workbokkMapping = new List<WorkbookMappingModel>();
string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString();
fileName = "DealerReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
// filename = "CloseTicket_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false });
string templatePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString());
string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString();
string pathToExcelFile = _exportLocation + fileName;
//string saveAs = Server.MapPath(_excelExportPathOnServer + fileName);
string SaveCsvAs = HttpContext.Current.Server.MapPath(_excelExportPathOnServer + fileName);
//commented on 24-07-2020(excel download same as consolidate report)
isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs);
if (isCreated == true) { return _exportLocation + fileName; }
else { return "error"; }
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf);
throw Ex;
}
}
// return ObjModel;
// objList = objDealerRepository.GetDealerOpenTicketDetail(model);
public string Post([FromUri] string VanReport, [FromUri] string isdealer, [FromUri] string van,string dealer, [FromUri] string isajaxcount, [FromUri] string Download, [FromBody] VECVReportRequestModel model)
{ // write data log into file
// write data log into file
ReportRequestModel ObjModel = new ReportRequestModel();
try
{
TicketRepository objTicket = new TicketRepository(_connStr);
ObjModel = objTicket.GetAllVanDetails();
List<VanReport> oList = new List<VanReport>();
string fileName = null;
bool isCreated = false;
oList = ObjModel.VanList;
DataTable OpenTicketTable = oList.ToDataTable();
Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1;
DataSet ds = new DataSet();
ds.Tables.Add(OpenTicketTable);
ds.Tables[0].Columns[0].ColumnName = "Dealer Id";
ds.Tables[0].Columns[1].ColumnName = "Dealer Name";
ds.Tables[0].Columns[2].ColumnName = "State";
ds.Tables[0].Columns[3].ColumnName = "City";
ds.Tables[0].Columns[4].ColumnName = "LicenseKey";
ds.Tables[0].Columns[5].ColumnName = "RegistrationNumber";
ds.Tables[0].Columns[6].ColumnName = "FuelType";
ds.Tables[0].Columns[7].ColumnName = "MobileNumber";
ds.Tables[0].Columns[8].ColumnName = "TechnicianName";
ds.Tables[0].Columns[9].ColumnName = "VanStatus";
ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility();
List<WorkbookMappingModel> workbokkMapping = new List<WorkbookMappingModel>();
string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString();
fileName = "VanReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false });
string templatePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString());
string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString();
string pathToExcelFile = _exportLocation + fileName;
string SaveCsvAs = HttpContext.Current.Server.MapPath(_excelExportPathOnServer + fileName);
isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs);
if (isCreated == true) { return _exportLocation + fileName; }
else { return "error"; }
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public string Post([FromUri] string ModelReport,[FromUri] string VanReport, [FromUri] string isdealer, [FromUri] string van, string dealer, [FromUri] string isajaxcount, [FromUri] string Download, [FromBody] VECVReportRequestModel model)
{
// write data log into file
ReportRequestModel ObjModel = new ReportRequestModel();
try
{
TicketRepository objTicket = new TicketRepository(_connStr);
ObjModel = objTicket.GetAllDetailsModelWise();
List<ModelReport> oList = new List<ModelReport>();
string fileName = null;
bool isCreated = false;
oList = ObjModel.MoodelList;
DataTable OpenTicketTable = oList.ToDataTable();
Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1;
DataSet ds = new DataSet();
ds.Tables.Add(OpenTicketTable);
ds.Tables[0].Columns[0].ColumnName = "Ticket Id";
ds.Tables[0].Columns[1].ColumnName = "Created_By";
ds.Tables[0].Columns[2].ColumnName = "Ticket Creation Time";
ds.Tables[0].Columns[3].ColumnName = "Nature of problem";
ds.Tables[0].Columns[4].ColumnName = "Chassis Number";
ds.Tables[0].Columns[5].ColumnName = "Dealer 1scode";
ds.Tables[0].Columns[6].ColumnName = "EOS Team Member/Van Reg No.";
ds.Tables[0].Columns[7].ColumnName = "EOS Team Contact No.";
ds.Tables[0].Columns[8].ColumnName = "Model Number";
ds.Tables[0].Columns[9].ColumnName = "WM Number";
ds.Tables[0].Columns[10].ColumnName = "Wm Name";
ds.Tables[0].Columns[11].ColumnName = "Plant Code";
ds.Tables[0].Columns[12].ColumnName = "Case Id";
ds.Tables[0].Columns[13].ColumnName = "Ticket Status";
ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility();
List<WorkbookMappingModel> workbokkMapping = new List<WorkbookMappingModel>();
string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString();
fileName = "ModelReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false });
string templatePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString());
string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString();
string pathToExcelFile = _exportLocation + fileName;
string SaveCsvAs = HttpContext.Current.Server.MapPath(_excelExportPathOnServer + fileName);
isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs);
if (isCreated == true) { return _exportLocation + fileName; }
else { return "error"; }
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetOpenCloseTicketDetamodelreport_il", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public string Post([FromUri] string TechnicianReport,[FromUri] string techReport, [FromUri] string VanReport, [FromUri] string isdealer, [FromUri] string van, string dealer, [FromUri] string isajaxcount, [FromUri] string Download, [FromBody] VECVReportRequestModel model)
{
// write data log into file
ReportRequestModel ObjModel = new ReportRequestModel();
try
{
TicketRepository objTicket = new TicketRepository(_connStr);
ObjModel = objTicket.GetAlltechinicianNoReport();
List<TechnicianReport> oList = new List<TechnicianReport>();
string fileName = null;
bool isCreated = false;
oList = ObjModel.TechnicianReport;
DataTable OpenTicketTable = oList.ToDataTable();
Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1;
DataSet ds = new DataSet();
ds.Tables.Add(OpenTicketTable);
ds.Tables[0].Columns[0].ColumnName = "Ticket Id";
ds.Tables[0].Columns[1].ColumnName = "Ticket Creation Time";
ds.Tables[0].Columns[2].ColumnName = "Technician Number";
ds.Tables[0].Columns[3].ColumnName = "Ticket Status";
ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility();
List<WorkbookMappingModel> workbokkMapping = new List<WorkbookMappingModel>();
string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString();
fileName = "TechnicianReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false });
string templatePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString());
string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString();
string pathToExcelFile = _exportLocation + fileName;
string SaveCsvAs = HttpContext.Current.Server.MapPath(_excelExportPathOnServer + fileName);
isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs);
if (isCreated == true) { return _exportLocation + fileName; }
else { return "error"; }
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public string Post([FromUri] string ReassignReportNew, [FromUri] string ReassignReport, [FromUri] string TechnicianReport, [FromUri] string techReport, [FromUri] string VanReport, [FromUri] string isdealer, [FromUri] string van, string dealer, [FromUri] string isajaxcount, [FromUri] string Download, [FromBody] VECVReportRequestModel model)
{
// write data log into file
ReportRequestModel ObjModel = new ReportRequestModel();
string startdate = model.StartDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]);
string enddate = model.EndDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]);
string _dateTimeFormat = ConfigurationManager.AppSettings["dateTimeFormat"].ToString();
ObjModel.FromDate = Convert.ToDateTime(startdate);
ObjModel.ToDate = Convert.ToDateTime(enddate);
try
{
TicketRepository objTicket = new TicketRepository(_connStr);
ObjModel = objTicket.GetAllReassignmentReportNew(ObjModel);
List<ReassignmentReportNew> oList = new List<ReassignmentReportNew>();
string fileName = null;
bool isCreated = false;
oList = ObjModel.ReassignmentReportNew;
string ticketCreationDateTime = "", ticketCreationTime = "";
foreach (var item in oList)
{
ticketCreationDateTime = item.ReassignTime;
string[] split_ticketCreationDateTime = ticketCreationDateTime.Split(' ');
ticketCreationTime = split_ticketCreationDateTime[3];
for (var count = 0; count < 12; count++)
{
if ((DateTime.Parse("01/01/0001 " + ticketCreationTime) >= DateTime.Parse("01/01/0001 " + (2 * count) + ":00:00")) && (DateTime.Parse("01/01/0001 " + ticketCreationTime) <= DateTime.Parse("01/01/0001 " + ((2 * count) + 1) + ":59:59")))
{
item.time_slot = (2 * count) + ":00 - " + ((2 * count) + 2) + ":00";
break;
}
}
}
DataTable OpenTicketTable = oList.ToDataTable();
Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1;
DataSet ds = new DataSet();
ds.Tables.Add(OpenTicketTable);
ds.Tables[0].Columns[0].ColumnName = "Ticket Id";
ds.Tables[0].Columns[1].ColumnName = "Ticket Creation Time";
ds.Tables[0].Columns[2].ColumnName = "Dealer 1S Code";
ds.Tables[0].Columns[3].ColumnName = "Dealer Name";
ds.Tables[0].Columns[4].ColumnName = "Ticket Status";
ds.Tables[0].Columns[5].ColumnName = "Reassigned to Dealer/TAB";
ds.Tables[0].Columns[6].ColumnName = "Reassign Reason";
ds.Tables[0].Columns[7].ColumnName = "ReassignTime";
ds.Tables[0].Columns[8].ColumnName = "Reassign Status";
ds.Tables[0].Columns[9].ColumnName = "Reassign Remarks";
ds.Tables[0].Columns[10].ColumnName = "Fuel Type";
ds.Tables[0].Columns[11].ColumnName = "Organisation";
ds.Tables[0].Columns[12].ColumnName = "State";
ds.Tables[0].Columns[13].ColumnName = "Vehicle Owner Name";
ds.Tables[0].Columns[14].ColumnName = "Vehicle Owner Contact No.";
ds.Tables[0].Columns[15].ColumnName = "Vehicle Reg No.";
ds.Tables[0].Columns[16].ColumnName = "Vehicle Model";
ds.Tables[0].Columns[17].ColumnName = "Vehicle Type";
ds.Tables[0].Columns[18].ColumnName = "Vehicle Breakdown Location";
ds.Tables[0].Columns[19].ColumnName = "Breakdown location Long";
ds.Tables[0].Columns[20].ColumnName = "Breakdown location Lat";
ds.Tables[0].Columns[21].ColumnName = "Landmark";
ds.Tables[0].Columns[22].ColumnName = "Nature of Problem";
ds.Tables[0].Columns[23].ColumnName = "Opportunity Loss";
ds.Tables[0].Columns[24].ColumnName = "Opportunity Loss Reason";
ds.Tables[0].Columns[25].ColumnName = "Assigned To";
ds.Tables[0].Columns[26].ColumnName = "Call Preclosed";
ds.Tables[0].Columns[27].ColumnName = "Pre closure remarks";
ds.Tables[0].Columns[28].ColumnName = "IsPreclosed";
ds.Tables[0].Columns[29].ColumnName = "Call Closure";
ds.Tables[0].Columns[30].ColumnName = "Estimated Distance(In KM)";
ds.Tables[0].Columns[31].ColumnName = "Ticket Accepted";
ds.Tables[0].Columns[32].ColumnName = "Time slot";
ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility();
List<WorkbookMappingModel> workbokkMapping = new List<WorkbookMappingModel>();
string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString();
string strfile = "ReassignReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss");
fileName = strfile + ".xlsx";
workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false });
string templatePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString());
string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString();
string pathToExcelFile = _exportLocation + fileName;
string SaveCsvAs = HttpContext.Current.Server.MapPath(_excelExportPathOnServer + fileName);
isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs);
if (isCreated == true) { return _exportLocation + fileName; }
else { return "error"; }
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public string Post([FromUri] string DTCReport, [FromUri] string DTCFlag, [FromUri] string ReassignReport, [FromUri] string TechnicianReport, [FromUri] string techReport, [FromUri] string VanReport, [FromUri] string isdealer, [FromUri] string van, string dealer, [FromUri] string isajaxcount, [FromUri] string Download, [FromBody] VECVReportRequestModel model)
{
// write data log into file
ReportRequestModel ObjModel = new ReportRequestModel();
string startdate = model.StartDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]);
string enddate = model.EndDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]);
string _dateTimeFormat = ConfigurationManager.AppSettings["dateTimeFormat"].ToString();
ObjModel.FromDate = Convert.ToDateTime(startdate);
ObjModel.ToDate = Convert.ToDateTime(enddate);
try
{
TicketRepository objTicket = new TicketRepository(_connStr);
ObjModel = objTicket.GetAllDTCReport(ObjModel);
List<DTCReport> oList = new List<DTCReport>();
string fileName = null;
bool isCreated = false;
oList = ObjModel.DTCReport;
DataTable OpenTicketTable = oList.ToDataTable();
Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1;
DataSet ds = new DataSet();
ds.Tables.Add(OpenTicketTable);
ds.Tables[0].Columns[0].ColumnName = "Ticket Id";
ds.Tables[0].Columns[1].ColumnName = "Ticket Creation Time";
ds.Tables[0].Columns[2].ColumnName = "Organization";
ds.Tables[0].Columns[3].ColumnName = "Dealer 1S Code";
ds.Tables[0].Columns[4].ColumnName = "Dealer Name";
ds.Tables[0].Columns[5].ColumnName = "Opp Lost";
ds.Tables[0].Columns[6].ColumnName = "Opp Lost ReaSon";
ds.Tables[0].Columns[7].ColumnName = "DTC CODE";
ds.Tables[0].Columns[8].ColumnName = "DTC Description";
ds.Tables[0].Columns[9].ColumnName = "DTC Occurance date &Time";
ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility();
List<WorkbookMappingModel> workbokkMapping = new List<WorkbookMappingModel>();
string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString();
fileName = "DTCReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false });
string templatePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString());
string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString();
string pathToExcelFile = _exportLocation + fileName;
string SaveCsvAs = HttpContext.Current.Server.MapPath(_excelExportPathOnServer + fileName);
isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs);
if (isCreated == true) { return _exportLocation + fileName; }
else { return "error"; }
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("DTCReportDownload", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public string Post([FromUri] string ReassignReport,[FromUri] string TechnicianReport, [FromUri] string techReport, [FromUri] string VanReport, [FromUri] string isdealer, [FromUri] string van, string dealer, [FromUri] string isajaxcount, [FromUri] string Download, [FromBody] VECVReportRequestModel model)
{
// write data log into file
ReportRequestModel ObjModel = new ReportRequestModel();
try
{
TicketRepository objTicket = new TicketRepository(_connStr);
ObjModel = objTicket.GetAllReassignmentReport();
List<ReassignmentReport> oList = new List<ReassignmentReport>();
string fileName = null;
bool isCreated = false;
oList = ObjModel.ReassignmentReport;
DataTable OpenTicketTable = oList.ToDataTable();
Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1;
DataSet ds = new DataSet();
ds.Tables.Add(OpenTicketTable);
ds.Tables[0].Columns[0].ColumnName = "Ticket Id";
ds.Tables[0].Columns[1].ColumnName = "Ticket Creation Time";
ds.Tables[0].Columns[2].ColumnName = "Dealer 1S Code";
ds.Tables[0].Columns[3].ColumnName = "Dealer Name";
ds.Tables[0].Columns[4].ColumnName = "Ticket Status";
ds.Tables[0].Columns[5].ColumnName = "Reassigned to Dealer/TAB";
ds.Tables[0].Columns[6].ColumnName = "Reassign Reason";
ds.Tables[0].Columns[7].ColumnName = "ReassignTime";
ds.Tables[0].Columns[8].ColumnName = "Reassign Status";
ds.Tables[0].Columns[9].ColumnName = "Reassign Remarks";
ds.Tables[0].Columns[10].ColumnName = "Fuel Type";
ds.Tables[0].Columns[11].ColumnName = "Organization";
ds.Tables[0].Columns[12].ColumnName = "State";
ds.Tables[0].Columns[13].ColumnName = "Vehicle Owner Name";
ds.Tables[0].Columns[14].ColumnName = "Vehicle Owner Contact No.";
ds.Tables[0].Columns[15].ColumnName = "Vehicle Reg No.";
ds.Tables[0].Columns[16].ColumnName = "Vehicle Model";
ds.Tables[0].Columns[17].ColumnName = "Vehicle Type";
ds.Tables[0].Columns[18].ColumnName = "Vehicle Breakdown Location";
ds.Tables[0].Columns[19].ColumnName = "Breakdown location Lat";
ds.Tables[0].Columns[20].ColumnName = "Breakdown location Long";
ds.Tables[0].Columns[21].ColumnName = "Landmark";
ds.Tables[0].Columns[22].ColumnName = "Nature of Problem";
ds.Tables[0].Columns[23].ColumnName = "Opportunity Loss";
ds.Tables[0].Columns[24].ColumnName = "Opportunity Loss Reason";
ds.Tables[0].Columns[25].ColumnName = "Assigned To";
ds.Tables[0].Columns[26].ColumnName = "Call Preclosed";
ds.Tables[0].Columns[27].ColumnName = "Pre closure remarks";
ds.Tables[0].Columns[28].ColumnName = "IsPreclosed";
ds.Tables[0].Columns[29].ColumnName = "Call Closure";
ds.Tables[0].Columns[30].ColumnName = "Estimated Distance(In KM)";
ds.Tables[0].Columns[31].ColumnName = "Ticket Accepted";
ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility();
List<WorkbookMappingModel> workbokkMapping = new List<WorkbookMappingModel>();
string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString();
fileName = "ReassignReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false });
string templatePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString());
string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString();
string pathToExcelFile = _exportLocation + fileName;
string SaveCsvAs = HttpContext.Current.Server.MapPath(_excelExportPathOnServer + fileName);
isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs);
if (isCreated == true) { return _exportLocation + fileName; }
else { return "error"; }
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf);
throw Ex;
}
}
// }
public string Post(string get, string fuel_type, [FromBody] ValueModel model)
{
string strmessage = "";
try
{
TicketRepository objTicketRepository = new TicketRepository(_connStr);
if (model.fuelValue.ToLower() == "dealer")
{
strmessage = objTicketRepository.getFuelTypeDealer(model.dealerId);
}
else
{
strmessage = objTicketRepository.getFuelTypeVan(model.dealerId);
}
}
catch (Exception Ex)
{
objLog.ErrorLogFile("DashboardController GetTileDashboardDataSet", Ex.Message, path, errorlogtf);
}
return strmessage;
}
public List<PaymentDropDown> Post([FromUri] string getpreclosure, [FromUri] string dropdown, [FromUri] string option)
{
// write data log into file
try
{
List<PaymentDropDown> objListfullDetails = new List<PaymentDropDown>();
// TicketOpenModel objModel = new TicketOpenModel();
objTicketRepository = new TicketRepository(_connStr);
objListfullDetails = objTicketRepository.getPreClosureDropDown();
return objListfullDetails;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("TicketAcceptOrDecliend_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public List<TicketOpenModel> Post([FromUri] string getopen, [FromUri] string tickets, [FromUri] string modelwise, [FromUri] string option,[FromBody] TicketRequestModel model)
{
// write data log into file
try
{
List<TicketOpenModel> objListfullDetails = new List<TicketOpenModel>();
// TicketOpenModel objModel = new TicketOpenModel();
objTicketRepository = new TicketRepository(_connStr);
objListfullDetails = objTicketRepository.getOpenTicketModelWise(model);
return objListfullDetails;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("TicketAcceptOrDecliend_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public string Post([FromUri] string change,[FromUri] string modelcase, [FromUri] string tickets, [FromUri] string modelwise, [FromUri] string option, [FromBody] ValueModel model)
{
// write data log into file
try
{
string strmessage ="";
// TicketOpenModel objModel = new TicketOpenModel();
objTicketRepository = new TicketRepository(_connStr);
strmessage = objTicketRepository.updatecaseid(model.dealerId.Replace(",", ""), model.fuelValue);
return strmessage;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("TicketAcceptOrDecliend_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
}
}

View File

@ -0,0 +1,308 @@

namespace VECV_WebApi.Controllers.BoatAPI
{
using DocumentFormat.OpenXml.Bibliography;
using DocumentFormat.OpenXml.EMMA;
using DocumentFormat.OpenXml.Office2010.ExcelAc;
using DocumentFormat.OpenXml.Wordprocessing;
using ExcelHelper;
#region Namespaces
using LoggingHelper;
using Microsoft.Ajax.Utilities;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Configuration;
using System.Web;
using System.Web.Helpers;
using System.Web.Http;
using System.Web.Http.Results;
using System.Web.Mvc;
using VECV_WebApi.Common;
using VECV_WebApi.CommonAuthorization;
using VECV_WebApi.Models.BoatAPIModel;
using VECV_WebApi.Models.BoatAPIRepository;
using VECV_WebApi.Models.Notification;
using VECV_WebApi.Models.Ticket;
#endregion
/// <summary>
/// This controller contain ticket related api
/// </summary>
[JwtAuthentication]
[System.Web.Http.Authorize]
[RoutePrefix("api/ai-boat")]
public class BoatAPIController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
string _appName = (ConfigurationManager.AppSettings["ApplicationName"]);
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
[System.Web.Http.HttpPost]
[System.Web.Http.Route("Ticket_detail")]
/*{
"TicketId": "T123456",
"Reg_No": "MH12AB1234"
}*/
public IHttpActionResult Ticket_detail([FromBody] TicketDetailsRequestModel model)
{
TicketDetailsResponseModel objTicketDetailsResponseModel = new TicketDetailsResponseModel();
if (model == null)
return BadRequest("Request body is missing or invalid.");
try
{
BoatAPIRepository objBoatAPI = new BoatAPIRepository(_connStr);
objTicketDetailsResponseModel = objBoatAPI.GetTicketDetails(model);
return Ok(objTicketDetailsResponseModel);
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("BoatAPIController Ticket_detail", Ex.Message, path, errorlogtf);
return Ok($"Received: Error = {Ex.Message}");
}
}
[System.Web.Http.HttpPost]
[System.Web.Http.Route("UpdateRemarks")]
public IHttpActionResult UpdateRemarks([FromBody] updateRemarksRequestModel model)
{
ResponseModel objResponseModel = new ResponseModel();
if (model == null)
return BadRequest("Request body is missing or invalid.");
try
{
BoatAPIRepository objBoatAPI = new BoatAPIRepository(_connStr);
string str = objBoatAPI.InsertBoatComment(model);
objResponseModel.Status = "true";
objResponseModel.Message = "Remarks Updated Successfully";
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("BoatAPIController UpdateRemarks", Ex.Message, path, errorlogtf);
objResponseModel.Status = "false";
objResponseModel.Message = Ex.Message;
}
return Ok(objResponseModel);
}
[System.Web.Http.HttpPost]
[System.Web.Http.Route("preclosureUpdate")]
public IHttpActionResult preclosureUpdate([FromBody] preClosureUpdateRequestModel model)
{
ResponseModel objResponseModel = new ResponseModel();
if (model == null)
return BadRequest("Request body is missing or invalid.");
try
{
TicketWhatsupAPIModel objTicketWhatsupAPIModel = new TicketWhatsupAPIModel();
NotificationRepository oNotificationRepository = new NotificationRepository(_connStr);
objTicketWhatsupAPIModel = oNotificationRepository.GetTicketStatusByTicketId(model.Ticket_Id.Trim());
InsertOpenTicket requestmodel = new InsertOpenTicket();
requestmodel.ChassisNo = "DUMMYCHASSISEOS";
requestmodel.LastModifiedBy = "autopreclosure.vecv.in";
requestmodel.OdometerReading = Convert.ToDouble(model.OdoMeter_reading);
requestmodel.preclosure_reason = model.preclosure_reason;
requestmodel.SuggestionComment = model.SuggestionComment;
requestmodel.TicketId = objTicketWhatsupAPIModel.TicketId;
requestmodel.TicketIdAlias = model.SuggestionComment;
requestmodel.VehicleRegistrationNumber = objTicketWhatsupAPIModel.VehicleRegisterNumber;
requestmodel.VehicleType = "Haulage";
requestmodel.TicketStatus = 4;
BoatAPIRepository objBoatAPI = new BoatAPIRepository(_connStr);
InsertOpenTicket objInsertOpenTicket=new InsertOpenTicket();
objInsertOpenTicket= objBoatAPI.UpdateOpenTicketaBoat(requestmodel);
objResponseModel.Status = "true";
objResponseModel.Message = "Ticket Preclose Successfully";
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("BoatAPIController preclosureUpdate", Ex.Message, path, errorlogtf);
objResponseModel.Status = "false";
objResponseModel.Message = Ex.Message;
}
return Ok(objResponseModel);
}
[System.Web.Http.HttpPost]
[System.Web.Http.Route("getVanList")]
public IHttpActionResult getVanList([FromBody] VanListRequestModel model)
{
List<VanListResponseModel> objVanListResponseModel = new List<VanListResponseModel>();
if (model == null)
return BadRequest("Request body is missing or invalid.");
try
{
BoatAPIRepository objBoatAPI = new BoatAPIRepository(_connStr);
objVanListResponseModel = objBoatAPI.GetVanListBoatAPI(model);
return Ok(objVanListResponseModel);
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("BoatAPIController getVanList", Ex.Message, path, errorlogtf);
return Ok($"Received: Error = {Ex.Message}");
}
}
[System.Web.Http.HttpPost]
[System.Web.Http.Route("assignvan")]
public IHttpActionResult assignvan([FromBody] AssignVanRequestModel model)
{
if (model == null)
return BadRequest("Request body is missing or invalid.");
ResponseModel objResponseModel = new ResponseModel();
try
{
BoatAPIRepository objBoatAPI = new BoatAPIRepository(_connStr);
VanDetailsRequestModel objVanDetailsRequestModel = new VanDetailsRequestModel();
TicketRepository objTicketRepository = new TicketRepository(_connStr);
TicketWhatsupAPIModel objTicketWhatsupAPIModel = new TicketWhatsupAPIModel();
NotificationRepository oNotificationRepository = new NotificationRepository(_connStr);
if (model.Type == "Reg_no")
{
objVanDetailsRequestModel.Reg_no = model.Value;
}
else
{
objVanDetailsRequestModel.Liscensce_key = model.Value;
}
objTicketWhatsupAPIModel = oNotificationRepository.GetTicketStatusByTicketId(model.TicketIdAlias.Trim());
// Licsecsce_Key
VanDetailsResponseModel objVanDetailsResponseModel = new VanDetailsResponseModel();
objVanDetailsResponseModel = objBoatAPI.Getvandetailsbyfilter(objVanDetailsRequestModel);
string regno = objTicketWhatsupAPIModel.VehicleRegisterNumber;
InsertOpenTicket objModel = new InsertOpenTicket();
try
{
objModel.AssignedToUserLattitude = objVanDetailsResponseModel.Latitude;
objModel.AssignedToUserLongitude = objVanDetailsResponseModel.Longitude;
objModel.TicketStatusAlias = "new";
objModel.TicketStatus = 1;
objModel.OtherRemarks = "assign van";
objModel.Message = "assign van";
objModel.AssignedTo = "van";
objModel.EstimateDistance = "10";
//model.Token = model.Token;
objModel = objTicketRepository.UpdateOpenTicketWeb(objModel);
objModel.Token = "teramatrix";
objModel.TicketStatus = 2;
objModel.TicketStatusAlias = "assigned";
objModel.OtherRemarks = "assign van";
objModel.Message = "assign van";
objModel.AssignedTo = "van";
objModel.EstimateDistance = "10";
objModel.TicketIdAlias = model.TicketIdAlias;
objModel.VehicleRegistrationNumber = objVanDetailsResponseModel.Reg_no;
objModel.AssignedToUserLattitude = objVanDetailsResponseModel.Latitude;
objModel.AssignedToUserLongitude = objVanDetailsResponseModel.Longitude;
objModel = objTicketRepository.UpdateOpenTicketWeb(objModel);
objResponseModel.Status = "true";
objResponseModel.Message = "Ticket Re-Assign Successfully";
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("getVanList assignvan", Ex.Message, path, errorlogtf);
objResponseModel.Status = "false";
objResponseModel.Message = Ex.Message;
}
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("BoatAPIController getVanList", Ex.Message, path, errorlogtf);
return Ok($"Received: Error = {Ex.Message}");
}
return Ok(objResponseModel);
}
}
#endregion
}

View File

@ -0,0 +1,177 @@
namespace VECV_WebApi.Controllers
{
#region Namespaces
using LoggingHelper;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using VECV_WebApi.Models.Customer;
using VECV_WebApi.Models.EmailServices;
using VECV_WebApi.Models.Ticket;
using VECV_WebApi.Models.Vehicle;
#endregion
public class CogentAPIController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
string _appName = (ConfigurationManager.AppSettings["ApplicationName"]);
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
/// <summary>
/// making Global Repository object available to this class
/// </summary>
// GlobalRepository objGlobalRepository;
/// <summary>
/// making Customer Repository object available to this class
/// </summary>
// CustomerRepository objCustomerRepository;
/// <summary>
/// making Ticket Repository object available to this class
/// </summary>
// TicketRepository objTicketRepository;
#endregion
#region APIs
/// <summary>
/// To get customer details
/// </summary>
/// <param name="model">customer info</param>
/// <returns>customer details</returns>
public TicketOpenModelCogentAPI Post([FromBody] CustomerVehicleModelDBM model)
{
TicketOpenModelCogentAPI objTicketOpenModel = new TicketOpenModelCogentAPI();
try
{
TicketRepository objTicket = new TicketRepository(_connStr);
objTicketOpenModel = objTicket.GetOpenTicketHistoryForCogent(model.CustomerMobile1);
return objTicketOpenModel;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetCustomerDetails_Controller", Ex.Message, path, errorlogtf);
objTicketOpenModel = new TicketOpenModelCogentAPI();
objTicketOpenModel.Status = "0";
objTicketOpenModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message;
return objTicketOpenModel;
}
}
public List<VanDealerListStateWise> Post([FromUri] string getvans, [FromBody] VanDealerListStateWise model)
{
try
{
List<VanDealerListStateWise> objList = new List<VanDealerListStateWise>();
// model.Fuel_type = model.Limit;
model.Limit = "100";
TicketRepository objTicket = new TicketRepository(_connStr);
objList = objTicket.GetVanListStateWise(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetVanDealerListStateWise_Controller COGENT API getvans", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public List<VanDealerListStateWise> Post([FromUri] string getvans, [FromUri] string dealerCode, VanDealerListStateWise model)
{
//VanDealerListStateWise model = new VanDealerListStateWise();
//model.DealerSCode = dealer_1sCode;
//model.UserId = Convert.ToInt32(UserId);
//model.Limit = limit;// Convert.ToInt32(limit);
//model.StateName = StateName;
//model.Token = token;
// write to log into file
List<VanDealerListStateWise> objList = new List<VanDealerListStateWise>();
try
{
TicketRepository objTicket = new TicketRepository(_connStr);
objList = objTicket.GetVanListDealerWise(dealerCode, model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetVanDealerListStateWise_Controller Cogent api getvans dealerCode", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get customer details
/// </summary>
/// <param name="model">customer info</param>
/// <returns>customer details</returns>
public TicketOpenModelCogentAPI Get([FromUri] string MobileNo)
{
TicketOpenModelCogentAPI objTicketOpenModel = new TicketOpenModelCogentAPI();
try
{
TicketRepository objTicket = new TicketRepository(_connStr);
objTicketOpenModel = objTicket.GetOpenTicketHistoryForCogent(MobileNo);
return objTicketOpenModel;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetCustomerDetails_Controller", Ex.Message, path, errorlogtf);
objTicketOpenModel = new TicketOpenModelCogentAPI();
objTicketOpenModel.Status = "0";
objTicketOpenModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message;
return objTicketOpenModel;
}
}
#endregion
}
}

View File

@ -0,0 +1,269 @@
namespace VECV_WebApi.Controllers.Customer
{
#region Namespces
using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using VECV_WebApi.Models.Customer;
#endregion
/// <summary>
/// This controller
/// apis related to customer
/// </summary>
public class CustomerController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// making Customer Repository object available to this class
/// </summary>
CustomerRepository objCustomerRepository;
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
/// <summary>
/// To Insert new customer
/// </summary>
/// <param name="model">Customer detail</param>
/// <returns>Status details</returns>
public CustomerModel Post([FromBody]NewCustomerModel model)
{
CustomerModel objModel = new CustomerModel();
try
{
objCustomerRepository = new CustomerRepository(_connStr);
objModel = objCustomerRepository.InsertNewCustomerDetail(model);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("InsertNewCustomerDetail_Controller", Ex.Message, path, errorlogtf);
return objModel;
}
}
/// <summary>
/// To insert get Owner detail
/// </summary>
/// <param name="customer">Extra parameter to identify the API</param>
/// <param name="model">Owner id detail</param>
/// <returns>Owner details</returns>
public CustomerModel Post([FromUri]string customer, [FromBody]CustomerModel model)
{
CustomerModel objModel = new CustomerModel();
try
{
objCustomerRepository = new CustomerRepository(_connStr);
objModel = objCustomerRepository.GetOwnerDetail(model);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetOwnerDetail_Controller", Ex.Message, path, errorlogtf);
return objModel;
}
}
public CustomerModel Get(string token, string KamUser, string CustomerId, string CustomerType,string CustomerCustomerName, string RegistrationNo,string CustomerMobileNumber1, string VehicleNumberPlate, string VehicleType, string modelnumber)
{
NewCustomerModel model = new NewCustomerModel();
model.Token = token;
CustomerModel objModel = new CustomerModel();
try
{
objCustomerRepository = new CustomerRepository(_connStr);
objModel = objCustomerRepository.InsertNewCustomerDetailDBMByPass(token, RegistrationNo, VehicleNumberPlate, CustomerMobileNumber1, modelnumber, KamUser, VehicleType, CustomerCustomerName);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("InsertNewCustomerDetail_Controller", Ex.Message, path, errorlogtf);
return objModel;
}
}
/// <summary>
/// To get owner or customer complete detail
/// </summary>
/// <param name="owner">Extra parameter to identify the API</param>
/// <param name="model">Customer/Owner Id information</param>
/// <returns>Customer/Owner complete details</returns>
public List<CustomerModel> post([FromUri]string owner, [FromBody]CustomerModel model)
{
List<CustomerModel> objList = new List<CustomerModel>();
CustomerModel objModel = new CustomerModel();
try
{
objCustomerRepository = new CustomerRepository(_connStr);
objList = objCustomerRepository.GetOwnerCompleteDetails(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetOwnerDetail_Controller", Ex.Message, path, errorlogtf);
objList.Add(objModel);
return objList;
}
}
/// <summary>
/// To check customer or vehicle exist or not
/// </summary>
/// <param name="owner">extra parameter to identify the API</param>
/// <param name="type">extra parameter to identify the API</param>
/// <param name="model">customer iformation</param>
/// <returns>customer details</returns>
public CustomerModel Post([FromUri]string owner,[FromUri]string type, [FromBody]CustomerModel model)
{
// write data log into file
CustomerModel objModel = new CustomerModel();
try
{
objCustomerRepository = new CustomerRepository(_connStr);
objModel = objCustomerRepository.CheckOwnerDetailExist(model);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("CustomerController CheckOwnerDetailExist", Ex.Message, path, errorlogtf);
return objModel;
}
}
/// <summary>
/// To insert new owner with multiple customer or vehicle
/// </summary>
/// <param name="customer">extra param to identify the api</param>
/// <param name="owner">extra param to identify the api</param>
/// <param name="vehicle">extra param to identify the api</param>
/// <param name="model">customer/vehicle details with owner info</param>
/// <returns>statas details</returns>
public CustomerModel Post([FromUri]string customer, [FromUri]string owner, [FromUri]string vehicle, [FromBody]NewCustomerModel model)
{
CustomerModel objModel = new CustomerModel();
try
{
objCustomerRepository = new CustomerRepository(_connStr);
objModel = objCustomerRepository.InsertOwnerCustomerVehicle(model);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("CustomerController InsertOwnerCustomerVehicle", Ex.Message, path, errorlogtf);
return objModel;
}
}
/// <summary>
/// To get owner or customer complete detail
/// </summary>
/// <param name="owner">Extra parameter to identify the API</param>
/// <param name="model">Customer/Owner Id information</param>
/// <returns>Customer/Owner complete details</returns>
public List<VehicleRegistrationInfo> post([FromUri]int regNos, [FromBody]CustomerModel model)
{
List<VehicleRegistrationInfo> oListVehicleRegNos = new List<VehicleRegistrationInfo>();
try
{
objCustomerRepository = new CustomerRepository(_connStr);
oListVehicleRegNos = objCustomerRepository.GetVehicleRegNoListByCustomerId(model);
return oListVehicleRegNos;
}
catch (Exception Ex)
{
throw Ex;
}
}
#endregion
/// <summary>
/// To update customer
/// </summary>
/// <param name="model">Customer detail</param>
/// <returns>Status details</returns>
public CustomerModel Post([FromUri]string updatecustomer, [FromBody]NewCustomerModel model)
{
CustomerModel objModel = new CustomerModel();
try
{
objCustomerRepository = new CustomerRepository(_connStr);
// objModel = objCustomerRepository.InsertNewCustomerDetail(model);
objModel = objCustomerRepository.UpdateCustomerDetail(model);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("InsertNewCustomerDetail_Controller", Ex.Message, path, errorlogtf);
return objModel;
}
}
}
}

View File

@ -0,0 +1,595 @@
namespace VECV_WebApi.Controllers.DTCData
{
using ExcelHelper;
#region Namespaces
using LoggingHelper;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using RestSharp;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Script.Serialization;
using VECV_WebApi.Models.EmailServices;
using VECV_WebApi.Models.Sync;
using VECV_WebApi.Models.Ticket;
#endregion
public class DTCDataController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// making Global Repository object available to this class
/// </summary>
GlobalRepository objGlobalRepository = new GlobalRepository("");
/// <summary>
/// making Sync Repository object available to this class
/// </summary>
SyncRepository objSyncRepository;
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
public string Get([FromUri] string dtcDta)
{
var clientVehicleType = new RestClient("https://protech.vecv.net/ProTechApp/vehicleParameter/parameterDetail");
clientVehicleType.Timeout = -1;
var requestVehicleType = new RestRequest(Method.POST);
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12
| SecurityProtocolType.Ssl3
| (SecurityProtocolType)3072;
string customerName = "";
string casenumber = "";
string deviceId = "";
string jsonAuthVariable = "{\"chassisNum\":\"" + dtcDta + "\",\n\"customerName\":\"\"" + customerName + ",\n\"casenumber\":\"\"" + casenumber + ",\n\"deviceId\":\"\"" + deviceId + "}";
requestVehicleType.AddHeader("Content-Type", "application/json");
requestVehicleType.AddParameter("application/json", jsonAuthVariable, ParameterType.RequestBody);
IRestResponse responseVehicleType = clientVehicleType.Execute(requestVehicleType);
Console.WriteLine(responseVehicleType.Content);
var stringvehcileResultVehicleType = responseVehicleType.Content.ToString();
string strdevicetype = "";
if (stringvehcileResultVehicleType.ToString() == "[]")
{
strdevicetype = "";
}
else
{
JArray jsondatavehicletype = (JArray)JsonConvert.DeserializeObject(stringvehcileResultVehicleType);
// JArray vehicletype = (JArray)jsondatavehicletype.First["vehicleDetail"];
string json = jsondatavehicletype.First["vehicleDetail"].ToString();
var obj = JObject.Parse(json);
strdevicetype = obj["devicetype"].ToString();
}
return strdevicetype;
}
public List<DTCRawDataModel> Get([FromUri] string devicetype, [FromUri] string chassisnumber, [FromUri] string startdate, [FromUri] string enddate)
{
List<DTCRawDataModel> dtcrawlist = new List<DTCRawDataModel>();
var client = new RestClient("https://protech.vecv.net/ProTechApp/vehicleDtcDetail/dtcRawDetail");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12
| SecurityProtocolType.Ssl3
| (SecurityProtocolType)3072;
startdate = startdate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]);
enddate = enddate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]);
string emissionNorms = "";
string engineNo = "";
string segment = "";
string dtcStatus = "";
string dtcCode = "";
DateTime dtstart = Convert.ToDateTime(startdate);
DateTime dtEnd = Convert.ToDateTime(enddate);
string strstartdate = string.Format("{0:s}", dtstart);
string strenddate = string.Format("{0:s}", dtEnd);
request.AddHeader("Content-Type", "application/json");
string jsonAuthVariable = "{\"chassisNo\":\"" + chassisnumber + "\",\n\"deviceType\":\"" + devicetype + "\",\n\"endDate\":\"" + strenddate + "\",\n\"startDate\":\"" + strstartdate + "\",\n\"emissionNorms\":\"\"" + emissionNorms + ",\n\"segment\":\"\"" + segment + ", \n\"dtcStatus\":\"\"" + dtcStatus + " ,\n\"engineNo\":\"\"" + engineNo + ",\n\"dtcCode\":\"\"" + dtcCode + "}";
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", jsonAuthVariable, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var stringvehcileResult = response.Content.ToString();
var dtcdetails = string.Concat(stringvehcileResult.Skip(1).Take(stringvehcileResult.Length - 2));
JArray jsondata = (JArray)JsonConvert.DeserializeObject(dtcdetails);
dtcrawlist = jsondata.ToObject<List<DTCRawDataModel>>();
//var result = jsondata.CastTo<List<DTCRawDataModel>>();
//List<DTCRawDataModel> items = (jsondata).Select(x => new DTCRawDataModel
//{
// chassisNo = (string)x["chassisNo"],
// engineNo = (string)x["engineNo"]
//}).ToList();
return dtcrawlist;
}
public List<DTCRawDataModelWabco> Get([FromUri] string devicetype, [FromUri] string chassisnumber, [FromUri] string startdate, [FromUri] string enddate, [FromUri] string iswabco)
{
List<DTCRawDataModelWabco> dtcrawlist = new List<DTCRawDataModelWabco>();
var client = new RestClient("https://protech.vecv.net/ProTechApp/vehicleDtcDetail/dtcRawDetail");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12
| SecurityProtocolType.Ssl3
| (SecurityProtocolType)3072;
// string endDate = "2022-11-30 16:19:24";
// string startDate = "2022-10-30 16:19:24";
startdate = startdate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]);
enddate = enddate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]);
string emissionNorms = "";
string engineNo = "";
string segment = "";
string dtcStatus = "";
string dtcCode = "";
DateTime dtstart = Convert.ToDateTime(startdate);
DateTime dtEnd = Convert.ToDateTime(enddate);
string strstartdate = string.Format("{0:s}", dtstart);
string strenddate = string.Format("{0:s}", dtEnd);
request.AddHeader("Content-Type", "application/json");
string jsonAuthVariable = "{\"chassisNo\":\"" + chassisnumber + "\",\n\"deviceType\":\"" + devicetype + "\",\n\"endDate\":\"" + strenddate + "\",\n\"startDate\":\"" + strstartdate + "\",\n\"emissionNorms\":\"\"" + emissionNorms + ",\n\"segment\":\"\"" + segment + ", \n\"dtcStatus\":\"\"" + dtcStatus + " ,\n\"engineNo\":\"\"" + engineNo + ",\n\"dtcCode\":\"\"" + dtcCode + "}";
request.AddParameter("application/json", jsonAuthVariable, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var stringvehcileResult = response.Content.ToString();
var dtcdetails = string.Concat(stringvehcileResult.Skip(1).Take(stringvehcileResult.Length - 2));
JArray jsondata = (JArray)JsonConvert.DeserializeObject(dtcdetails);
dtcrawlist = jsondata.ToObject<List<DTCRawDataModelWabco>>();
string strdtccode = "";
foreach (var item in dtcrawlist)
{
strdtccode += item.dtccode + ',';
}
strdtccode = strdtccode.TrimEnd(',');
objSyncRepository = new SyncRepository(_connStr);
string[] strings = strdtccode.Split(',');
// int[] ints = Array.ConvertAll(strings, s => int.Parse(s));
List<DTCCodeMaster> objDTCcode = new List<DTCCodeMaster>();
objDTCcode = objSyncRepository.GetAllDtcDescriptionListDataSet(strings);
foreach (var ema in dtcrawlist)
{
if (ema.dtccode == null)
{
}
else
{
if (objDTCcode.Count() == 0) { }
else
{
var isexist = objDTCcode.Any(a => ema.dtccode.Contains(a.DTCCode));
//var isexist = objDTCcode.Contains(ema.dtccode.ToString()).ToString();
if (isexist == true)
{
ema.description = objDTCcode.Where(j => j.DTCCode == ema.dtccode).DefaultIfEmpty().FirstOrDefault().Description;
}
}
}
}
return dtcrawlist;
}
public string Post([FromUri] string devicetype, [FromUri] string chassisnumber, [FromUri] string startdate, [FromUri] string enddate, [FromUri] string iswabco)
{
List<DTCRawDataModelWabco> dtcrawlist = new List<DTCRawDataModelWabco>();
var client = new RestClient("https://protech.vecv.net/ProTechApp/vehicleDtcDetail/dtcRawDetail");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12
| SecurityProtocolType.Ssl3
| (SecurityProtocolType)3072;
// string endDate = "2022-11-30 16:19:24";
// string startDate = "2022-10-30 16:19:24";
startdate = startdate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]);
enddate = enddate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]);
string emissionNorms = "";
string engineNo = "";
string segment = "";
string dtcStatus = "";
string dtcCode = "";
bool isCreated = false;
request.AddHeader("Content-Type", "application/json");
DateTime dtstart = Convert.ToDateTime(startdate);
DateTime dtEnd = Convert.ToDateTime(enddate);
string strstartdate = string.Format("{0:s}", dtstart);
string strenddate = string.Format("{0:s}", dtEnd);
request.AddHeader("Content-Type", "application/json");
string jsonAuthVariable = "{\"chassisNo\":\"" + chassisnumber + "\",\n\"deviceType\":\"" + devicetype + "\",\n\"endDate\":\"" + strenddate + "\",\n\"startDate\":\"" + strstartdate + "\",\n\"emissionNorms\":\"\"" + emissionNorms + ",\n\"segment\":\"\"" + segment + ", \n\"dtcStatus\":\"\"" + dtcStatus + " ,\n\"engineNo\":\"\"" + engineNo + ",\n\"dtcCode\":\"\"" + dtcCode + "}";
request.AddParameter("application/json", jsonAuthVariable, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var stringvehcileResult = response.Content.ToString();
var dtcdetails = string.Concat(stringvehcileResult.Skip(1).Take(stringvehcileResult.Length - 2));
JArray jsondata = (JArray)JsonConvert.DeserializeObject(dtcdetails);
dtcrawlist = jsondata.ToObject<List<DTCRawDataModelWabco>>();
string strdtccode = "";
foreach (var item in dtcrawlist)
{
strdtccode += item.dtccode + ',';
}
strdtccode = strdtccode.TrimEnd(',');
objSyncRepository = new SyncRepository(_connStr);
string[] strings = strdtccode.Split(',');
// int[] ints = Array.ConvertAll(strings, s => int.Parse(s));
List<DTCCodeMaster> objDTCcode = new List<DTCCodeMaster>();
objDTCcode = objSyncRepository.GetAllDtcDescriptionListDataSet(strings);
foreach (var ema in dtcrawlist)
{
if (ema.dtccode == null)
{
}
else
{
if (objDTCcode.Count() == 0) { }
else
{
var isexist = objDTCcode.Any(a => ema.dtccode.Contains(a.DTCCode));
//var isexist = objDTCcode.Contains(ema.dtccode.ToString()).ToString();
if (isexist == true)
{
ema.description = objDTCcode.Where(j => j.DTCCode == ema.dtccode).DefaultIfEmpty().FirstOrDefault().Description;
}
}
}
}
DataTable OpenTicketTable = dtcrawlist.ToDataTable();
Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1;
DataSet ds = new DataSet();
ds.Tables.Add(OpenTicketTable);
ds.Tables[0].Columns[0].ColumnName = "Chassis No";
ds.Tables[0].Columns[1].ColumnName = "Emission Norms";
ds.Tables[0].Columns[2].ColumnName = "Segment";
ds.Tables[0].Columns[3].ColumnName = "Engine No";
ds.Tables[0].Columns[4].ColumnName = "Model";
ds.Tables[0].Columns[5].ColumnName = "Chassis Id";
ds.Tables[0].Columns[6].ColumnName = "Device ID";
ds.Tables[0].Columns[7].ColumnName = "Occurance Count";
ds.Tables[0].Columns[8].ColumnName = "Spn";
ds.Tables[0].Columns[9].ColumnName = "Dtc Code";
ds.Tables[0].Columns[14].ColumnName = "Description";
ds.Tables[0].Columns[10].ColumnName = "Dtc Occurance Date";
ds.Tables[0].Columns[11].ColumnName = "Case Number";
ds.Tables[0].Columns[12].ColumnName = "Dtc Status";
ds.Tables[0].Columns[13].ColumnName = "Packet DateTime";
ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility();
List<WorkbookMappingModel> workbokkMapping = new List<WorkbookMappingModel>();
string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString();
string fileName = "DtcData_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "DTC Data Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false });
string templatePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString());
string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString();
string pathToExcelFile = _exportLocation + fileName;
string SaveCsvAs = HttpContext.Current.Server.MapPath(_excelExportPathOnServer + fileName);
//commented on 24-07-2020(excel download same as consolidate report)
isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs);
if (isCreated == true) { return _exportLocation + fileName; }
else { return "error"; }
}
public string Post([FromUri] string devicetype, [FromUri] string chassisnumber, [FromUri] string startdate, [FromUri] string enddate)
{
string _excelExportPath = ConfigurationManager.AppSettings["excelExportPath"].ToString();
// write data log into file
bool isCreated = false;
List<DTCRawDataModel> dtcrawlist = new List<DTCRawDataModel>();
var client = new RestClient("https://protech.vecv.net/ProTechApp/vehicleDtcDetail/dtcRawDetail");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12
| SecurityProtocolType.Ssl3
| (SecurityProtocolType)3072;
startdate = startdate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]);
enddate = enddate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]);
string emissionNorms = "";
string engineNo = "";
string segment = "";
string dtcStatus = "";
string dtcCode = "";
DateTime dtstart = Convert.ToDateTime(startdate);
DateTime dtEnd = Convert.ToDateTime(enddate);
string strstartdate = string.Format("{0:s}", dtstart);
string strenddate = string.Format("{0:s}", dtEnd);
string jsonAuthVariable = "{\"chassisNo\":\"" + chassisnumber + "\",\n\"deviceType\":\"" + devicetype + "\",\n\"endDate\":\"" + strenddate + "\",\n\"startDate\":\"" + strstartdate + "\",\n\"emissionNorms\":\"\"" + emissionNorms + ",\n\"segment\":\"\"" + segment + ", \n\"dtcStatus\":\"\"" + dtcStatus + " ,\n\"engineNo\":\"\"" + engineNo + ",\n\"dtcCode\":\"\"" + dtcCode + "}";
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", jsonAuthVariable, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var stringvehcileResult = response.Content.ToString();
var dtcdetails = string.Concat(stringvehcileResult.Skip(1).Take(stringvehcileResult.Length - 2));
JArray jsondata = (JArray)JsonConvert.DeserializeObject(dtcdetails);
dtcrawlist = jsondata.ToObject<List<DTCRawDataModel>>();
//foreach (var item in oList)
// {
// ticketCreationDateTime = item.PreClosureTime;
// string[] split_ticketCreationDateTime = ticketCreationDateTime.Split(' ');
// ticketCreationTime = split_ticketCreationDateTime[3];
// for (var count = 0; count < 12; count++)
// {
// //if ((DateTime.Parse("01/01/0001 " + ticketCreationTime) >= DateTime.Parse("01/01/0001 " + (2 * count) + ":00:00")) && (DateTime.Parse("01/01/0001 " + ticketCreationTime) <= DateTime.Parse("01/01/0001 " + ((2 * count) + 1) + ":59:59")))
// if (ticketCreationDateTime == "01 Jan 0001 05:30:00")
// {
// item.PreClosureTime = "";// (2 * count) + ":00 - " + ((2 * count) + 2) + ":00";
// break;
// }
// }
// // item.ChassisNo = item.chassis_number;
// }
//
DataTable OpenTicketTable = dtcrawlist.ToDataTable();
Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1;
DataSet ds = new DataSet();
ds.Tables.Add(OpenTicketTable);
ds.Tables[0].Columns[0].ColumnName = "Chassis No";
ds.Tables[0].Columns[1].ColumnName = "Emission Norms";
ds.Tables[0].Columns[2].ColumnName = "Segment";
ds.Tables[0].Columns[3].ColumnName = "Engine No";
ds.Tables[0].Columns[4].ColumnName = "Model";
ds.Tables[0].Columns[5].ColumnName = "Chassis Id";
ds.Tables[0].Columns[6].ColumnName = "Dtc Code";
ds.Tables[0].Columns[7].ColumnName = "Dtc Status";
ds.Tables[0].Columns[8].ColumnName = "Description";
ds.Tables[0].Columns[9].ColumnName = "Occurance Count";
ds.Tables[0].Columns[10].ColumnName = "First Failure Time";
ds.Tables[0].Columns[11].ColumnName = "Last Failure Time";
ds.Tables[0].Columns[12].ColumnName = "Main Software";
ds.Tables[0].Columns[13].ColumnName = "Packet DateTime";
ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility();
List<WorkbookMappingModel> workbokkMapping = new List<WorkbookMappingModel>();
string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString();
string fileName = "DtcData_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "DTC Data Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false });
string templatePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString());
string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString();
string pathToExcelFile = _exportLocation + fileName;
string SaveCsvAs = HttpContext.Current.Server.MapPath(_excelExportPathOnServer + fileName);
//commented on 24-07-2020(excel download same as consolidate report)
isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs);
if (isCreated == true) { return _exportLocation + fileName; }
else { return "error"; }
}
public string Post([FromUri] string ticketId, [FromUri] string startdate, [FromUri] string enddate)
{
// objDTCcode = objSyncRepository.GetAllDtcDescriptionListDataSet(strings);
// objTicketRepository = new TicketRepository(_connStr);
objSyncRepository = new SyncRepository(_connStr);
var strreg = ticketId.Contains("TICKETID");
string strchassinumber = "";
if (strreg == true)
{
strchassinumber = objSyncRepository.getChassisNumber(ticketId);
}
else
{
strchassinumber = objSyncRepository.getChassisNumberByRegnum(ticketId);
}
string[] res = strchassinumber.Split(',');
string strcount = "0";
if (res[1].ToLower() == "connected")
{
strcount = getDTcCount(res[0], startdate, enddate);
}
return strcount + "," + strchassinumber;
}
public List<DTCReport> Post([FromUri] string ticketId, [FromUri] string startdate,[FromBody] DTCReport model)
{
List<DTCReport> objDTCReport = new List<DTCReport>();
try {
TicketRepository objTicketRepository = new TicketRepository(_connStr);
objDTCReport = objTicketRepository.GetDTCReportByTicketId(model);
}
catch (Exception Ex)
{
objLog.ErrorLogFile("DashboardController GetTileDashboardDataSet", Ex.Message, path, errorlogtf);
}
return objDTCReport;
}
public string Post([FromUri] string DtcCount, [FromUri] string ticketId, [FromUri] string startdate, [FromBody] DTCReport model)
{
string strcount = "0";
try
{
TicketRepository objTicketRepository = new TicketRepository(_connStr);
strcount = objTicketRepository.GetDTCReportCountByTicketId(model);
}
catch (Exception Ex)
{
objLog.ErrorLogFile("DashboardController GetTileDashboardDataSet", Ex.Message, path, errorlogtf);
}
return strcount;
}
//public string Post([FromUri] string Regnum, [FromUri] string startdate, [FromUri] string enddate)
//{
// // objDTCcode = objSyncRepository.GetAllDtcDescriptionListDataSet(strings);
// // objTicketRepository = new TicketRepository(_connStr);
// objSyncRepository = new SyncRepository(_connStr);
// string strchassinumber = objSyncRepository.getChassisNumberByRegnum(Regnum);
// string strcount = getDTcCount( strchassinumber);
// return strchassinumber;
//}
public string getDTcCount(string strchassinumber,string startDate,string EndDate)
{
string count = "0";
var clientVehicleType = new RestClient("https://protech.vecv.net/ProTechApp/vehicleParameter/parameterDetail");
clientVehicleType.Timeout = -1;
var requestVehicleType = new RestRequest(Method.POST);
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12
| SecurityProtocolType.Ssl3
| (SecurityProtocolType)3072;
string customerName = "";
string casenumber = "";
string deviceId = "";
string jsonAuthVariable = "{\"chassisNum\":\"" + strchassinumber + "\",\n\"customerName\":\"\"" + customerName + ",\n\"casenumber\":\"\"" + casenumber + ",\n\"deviceId\":\"\"" + deviceId + "}";
requestVehicleType.AddHeader("Content-Type", "application/json");
requestVehicleType.AddParameter("application/json", jsonAuthVariable, ParameterType.RequestBody);
IRestResponse responseVehicleType = clientVehicleType.Execute(requestVehicleType);
Console.WriteLine(responseVehicleType.Content);
var stringvehcileResultVehicleType = responseVehicleType.Content.ToString();
string strdevicetype = "";
if (stringvehcileResultVehicleType.ToString() == "[]")
{
strdevicetype = "";
}
else
{
JArray jsondatavehicletype = (JArray)JsonConvert.DeserializeObject(stringvehcileResultVehicleType);
// JArray vehicletype = (JArray)jsondatavehicletype.First["vehicleDetail"];
string json = jsondatavehicletype.First["vehicleDetail"].ToString();
var obj = JObject.Parse(json);
strdevicetype = obj["devicetype"].ToString();
}
var client = new RestClient("https://protech.vecv.net/ProTechApp/vehicleDtcDetail/dtcRawDetail");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
| SecurityProtocolType.Tls11
| SecurityProtocolType.Tls12
| SecurityProtocolType.Ssl3
| (SecurityProtocolType)3072;
// string endDate = "2022-11-30 16:19:24";
// string startDate = "2022-10-30 16:19:24";
startDate = startDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["startTimeFormat"]);
EndDate = EndDate + " " + DateTime.Now.ToString(ConfigurationManager.AppSettings["endTimeFormat"]);
string emissionNorms = "";
string engineNo = "";
string segment = "";
string dtcStatus = "";
string dtcCode = "";
DateTime dtstart = Convert.ToDateTime(startDate);
DateTime dtEnd = Convert.ToDateTime(EndDate);
string strstartdate = string.Format("{0:s}", dtstart);
string strenddate = string.Format("{0:s}", dtEnd);
request.AddHeader("Content-Type", "application/json");
string jsonAuthVariablecount = "{\"chassisNo\":\"" + strchassinumber + "\",\n\"deviceType\":\"" + strdevicetype + "\",\n\"endDate\":\"" + strenddate + "\",\n\"startDate\":\"" + strstartdate + "\",\n\"emissionNorms\":\"\"" + emissionNorms + ",\n\"segment\":\"\"" + segment + ", \n\"dtcStatus\":\"\"" + dtcStatus + " ,\n\"engineNo\":\"\"" + engineNo + ",\n\"dtcCode\":\"\"" + dtcCode + "}";
request.AddParameter("application/json", jsonAuthVariablecount, ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
var stringvehcileResult = response.Content.ToString();
var dtcdetails = string.Concat(stringvehcileResult.Skip(1).Take(stringvehcileResult.Length - 2));
JArray jsondata = (JArray)JsonConvert.DeserializeObject(dtcdetails);
if (strdevicetype == "iswabco")
{
List<DTCRawDataModelWabco> dtcrawlist = new List<DTCRawDataModelWabco>();
dtcrawlist = jsondata.ToObject<List<DTCRawDataModelWabco>>();
count = dtcrawlist.Count().ToString();
}
else {
List<DTCRawDataModel> dtcrawlist = new List<DTCRawDataModel>();
dtcrawlist = jsondata.ToObject<List<DTCRawDataModel>>();
count = dtcrawlist.Count().ToString();
}
return count;
}
#endregion
}
}

View File

@ -0,0 +1,181 @@
namespace VECV_WebApi.Controllers.Dashboard
{
using ExcelHelper;
#region Namespaces
using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using VECV_WebApi.Models.Dashboard;
#endregion
/// <summary>
/// This controller contain APIs related to Dashboard
/// </summary>
public class DashboardController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
/// <summary>
/// To get tile dashboard KPIs
/// </summary>
/// <param name="model">Date range and user information</param>
/// <returns>Dashboard KPIs</returns>
public List<DashboardModel> Post([FromBody] DashboardModel model)
{
List<DashboardModel> objList = new List<DashboardModel>();
try
{
DashboardRepository ObjDashBoardRepository = new DashboardRepository(_connStr);
objList = ObjDashBoardRepository.GetTileDashboardDataSet(model);
}
catch (Exception Ex)
{
objList.Add(new DashboardModel
{
Status = "0",
Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message
});
// write error log into file
objLog.ErrorLogFile("DashboardController GetTileDashboardDataSet", Ex.Message, path, errorlogtf);
}
return objList;
}
public List<DashboardModel> Post([FromUri] string VECVUser,[FromBody] DashboardModel model)
{
List<DashboardModel> objList = new List<DashboardModel>();
try
{
DashboardRepository ObjDashBoardRepository = new DashboardRepository(_connStr);
objList = ObjDashBoardRepository.GetTileDashboardDataSetVECV(model);
}
catch (Exception Ex)
{
objList.Add(new DashboardModel
{
Status = "0",
Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message
});
// write error log into file
objLog.ErrorLogFile("DashboardController GetTileDashboardDataSet", Ex.Message, path, errorlogtf);
}
return objList;
}
/// <summary>
/// To get closed/open ticket report.
/// </summary>
/// <param name="TicketType">extra param to idenify the api</param>
/// <param name="model">ticket info</param>
/// <returns>closed/open ticket report</returns>
public VECVTicketRequestModel Post([FromUri] string VECVUser,[FromUri] string TicketType, [FromBody] VECVTicketRequestModel model)
{
// write data log into file
VECVTicketRequestModel ObjModel = new VECVTicketRequestModel();
try
{
DashboardRepository ObjDashBoardRepository = new DashboardRepository(_connStr);
model.TicketType = TicketType;
ObjModel = ObjDashBoardRepository.GetOpenCloseTicketDetailVECV(model);
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf);
throw Ex;
}
return ObjModel;
}
/// <summary>
/// To get open ticket detail of dealer
/// </summary>
/// <param name="model">Dealer info</param>
/// <returns>open ticket details of dealer</returns>
public VECVTicketRequestModel Post([FromUri] string VECVUser, [FromUri] string isdealer,[FromUri] string TicketType, [FromUri] string dealer,[FromBody] VECVTicketRequestModel model)
{ // write data log into file
VECVTicketRequestModel ObjModel = new VECVTicketRequestModel();
try
{
DashboardRepository ObjDashBoardRepository = new DashboardRepository(_connStr);
model.TicketType = TicketType;
ObjModel = ObjDashBoardRepository.GetDealerOpenTicketDetailVECV(model);
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetOpenCloseTicketDetail", Ex.Message, path, errorlogtf);
throw Ex;
}
return ObjModel;
// objList = objDealerRepository.GetDealerOpenTicketDetail(model);
}
public List<VECVSyncModel> Post([FromUri] string Sync, [FromUri] string VECVUser, [FromUri] string VECV, [FromBody] VECVSyncModel model)
{
VECVSyncModel objModel = new VECVSyncModel();
List<VECVSyncModel> objList = new List<VECVSyncModel>();
try
{
DashboardRepository ObjDashBoardRepository = new DashboardRepository(_connStr);
objList = ObjDashBoardRepository.GetSyncTicketDetail_VECV(model);
return objList;
}
catch (Exception Ex)
{
objList.Add(new VECVSyncModel
{
Status = "0",
Message = Ex.Message
});
return objList;
}
}
#endregion
}
}

View File

@ -0,0 +1,401 @@
namespace VECV_WebApi.Controllers.Dealer
{
#region Namespaces
using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using VECV_WebApi.Models.Authorization;
using VECV_WebApi.Models.Dealer;
using VECV_WebApi.Models.User;
#endregion
/// <summary>
/// This cotroller contain apis releted to dealer
/// </summary>
public class DealerController : ApiController
{
#region Global References
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// making Dealer Repository object available to this class
/// </summary>
DealerRepository objDealerRepository;
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
/// <summary>
/// To get open ticket detail of dealer
/// </summary>
/// <param name="model">Dealer info</param>
/// <returns>open ticket details of dealer</returns>
public List<DealerOpenTicketDetailModel> Post([FromBody]DealerOpenTicketDetailModel model)
{
DealerOpenTicketDetailModel objModel = new DealerOpenTicketDetailModel();
List<DealerOpenTicketDetailModel> objList = new List<DealerOpenTicketDetailModel>();
try
{
objDealerRepository = new DealerRepository(_connStr);
objList = objDealerRepository.GetDealerOpenTicketDetail(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetDealerOpenTicketDetail_Controller", Ex.Message, path, errorlogtf);
return objList;
}
}
/// <summary>
/// To get dealer list user-wise organization-wise
/// </summary>
/// <param name="obj">dealer info</param>
/// <param name="GetDealer">extra param to identify the api</param>
/// <returns>dealer list user-wise organization-wise</returns>
public List<DealerModelList> Post([FromBody]DealerModelList obj, [FromUri]string GetDealer)
{
List<DealerModelList> objList = new List<DealerModelList>();
try
{
objDealerRepository = new DealerRepository(_connStr);
objList = objDealerRepository.GetDealerListUserWiseOrgWise(obj);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetDealerList", Ex.Message, path, errorlogtf);
return objList;
}
}
/// <summary>
/// To get close ticket detail of dealer
/// </summary>
/// <param name="dealer">extra param to identify the api</param>
/// <param name="model">dealer info and date range</param>
/// <returns>close ticket detail of dealer</returns>
public List<DealerCloseTicketDetailModel> Post([FromUri] string dealer, [FromBody]DealerCloseTicketDetailModel model)
{
DealerCloseTicketDetailModel objModel = new DealerCloseTicketDetailModel();
List<DealerCloseTicketDetailModel> objList = new List<DealerCloseTicketDetailModel>();
try
{
objDealerRepository = new DealerRepository(_connStr);
objList = objDealerRepository.GetDealerCloseTicketDetail(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetDealerCloseTicketDetail_Controller", Ex.Message, path, errorlogtf);
return objList;
}
}
/// <summary>
/// To get notification of dealer
/// </summary>
/// <param name="notification">extra param to identify the api</param>
/// <param name="model">dealer information</param>
/// <returns>notification of dealer</returns>
public List<DealerNortificationModel> Post([FromUri] string notification, [FromBody]DealerNortificationModel model)
{
DealerNortificationModel objModel = new DealerNortificationModel();
List<DealerNortificationModel> objList = new List<DealerNortificationModel>();
try
{
objDealerRepository = new DealerRepository(_connStr);
objList = objDealerRepository.GetDealerNortification(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetDealerNortificationModel_Controller", Ex.Message, path, errorlogtf);
return objList;
}
}
/// <summary>
/// To perform dealer related operations
/// </summary>
/// <param name="DealerDetail">extra param to identify the api</param>
/// <param name="model">dealer info</param>
/// <returns>status and data</returns>
public DealerDetailModel Post([FromUri]string DealerDetail, [FromBody]DealerDetailModel model)
{
DealerDetailModel objModel = new DealerDetailModel();
try
{
objDealerRepository = new DealerRepository(_connStr);
// get Dealer details
if (DealerDetail.ToLower().Trim() == "get")
{
objModel = objDealerRepository.GetDealerDetailDealerIdWise(model);
}
// Get child dealers for a principal dealer
else if (DealerDetail.ToLower().Trim() == "getchilddealers")
{
objModel = objDealerRepository.GetChildDealerships(model);
}
// Get Principal dealership information
else if (DealerDetail.ToLower().Trim() == "getprincipaldealerdetails")
{
objModel = objDealerRepository.GetPrincipalDealershipDetails(model);
}
// Check Van exist or not by reg no.
else if (DealerDetail.ToLower().Trim() == "van")
{
objModel = objDealerRepository.CheckDealerOrVanStatusExistOrNot(model, DealerDetail);
}
// Check dealer exist or not by mob. no
else if (DealerDetail.ToLower().Trim() == "dealer")
{
objModel = objDealerRepository.CheckDealerOrVanStatusExistOrNot(model, DealerDetail);
}
// Adding principle dealership
else if (DealerDetail.ToLower().Trim() == "principledealer")
{
objModel = objDealerRepository.InsertOrUpdatePrincipleDealerDetail(model);
}
else
{
// insert or update dealer details
objModel = objDealerRepository.InsertOrUpdateDealerDetail(model);
}
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("controller InsertOrUpdateDealerDetail", Ex.Message, path, errorlogtf);
return objModel;
}
}
public DealerOutputModel Post([FromUri]string Dealer, [FromUri]string DealerExistOrNot, [FromBody]DealerInputModel model)
{
// write data log into file
DealerOutputModel objModel = new DealerOutputModel();
try
{
objDealerRepository = new DealerRepository(_connStr);
objModel = objDealerRepository.GetDealerExistOrNot(model);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetDealerExistOrNot", Ex.Message, path, errorlogtf);
return objModel;
}
}
/// <summary>
/// To get dealer postion detail with dealer detail
/// </summary>
/// <param name="model">dealer info</param>
/// <returns>status and data</returns>
public List<DealerPositionModel> Post([FromUri] int PositioningTool, [FromBody]GetDealerPositionModel model)
{
// write data log into file
List<DealerPositionModel> objList = new List<DealerPositionModel>();
DealerPositionModel objDealerModel = new DealerPositionModel();
try
{
DealerRepository objDealerRepository = new DealerRepository(_connStr);
objList = objDealerRepository.GetDealerPositionDetail(model);
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("DealerController post method no parameter", Ex.Message, path, errorlogtf);
objDealerModel.Status = "0";
objDealerModel.Message = Ex.Message;
objList.Add(objDealerModel);
}
return objList;
}
#region dealer list for dealer wise dashboard
/// <summary>
/// Get dealer list with user id of dealer for dealer wise dashboard
/// </summary>
/// <param name="obj">user model containing login user id</param>
/// <param name="dealerDashboard">extra param to identify the api</param>
/// <returns>dealer list with dealer's user id</returns>
public List<DealerUserIdList> Post([FromBody]UserModel obj, string dealerDashboard)
{
List<DealerUserIdList> objList = new List<DealerUserIdList>();
try
{
objDealerRepository = new DealerRepository(_connStr);
objList = objDealerRepository.GetDealerListWithUserId(obj);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetDealerListWithUserId", Ex.Message, path, errorlogtf);
return objList;
}
}
#endregion
#endregion
#region reassign dealers own van
/// <summary>
/// To get van and dealer list state wise.
/// </summary>
/// <param name="ticket">extra param to identify the api</param>
/// <param name="ticket1">extra param to identify the api</param>
/// <param name="ticket2">extra param to identify the api</param>
/// <param name="ticket3">extra param to identify the api</param>
/// <param name="model">state info</param>
/// <returns>van and dealer list state wise</returns>
public List<DealerVanListStateWise> Post([FromUri]string ticket, [FromUri]string ticket1, [FromUri]string ticket2, [FromUri]string ticket3, [FromBody]DealerVanListStateWise model)
{
// write data log into file
try
{
List<DealerVanListStateWise> objList = new List<DealerVanListStateWise>();
DealerRepository objDealer = new DealerRepository(_connStr);
objList = objDealer.GetDealerVanListStateWise(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("DealerVanListStateWise_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To perform van contact number related operations
/// </summary>
/// <param name="DealerDetail">extra param to identify the api</param>
/// <param name="model">van info</param>
/// <returns>status and data</returns>
public DealerDetailModel Post([FromUri] string UserType,[FromUri] string UserType2, [FromBody]DealerDetailModel model)
{
// write data log into file
DealerDetailModel objModel = new DealerDetailModel();
try
{
string type = "van";
objDealerRepository = new DealerRepository(_connStr);
objModel = objDealerRepository.CheckVanContactDetailsExistOrNot(model, type);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("controller CheckVanContactDetailsExistOrNot UserType2", Ex.Message, path, errorlogtf);
return objModel;
}
}
public string Post([FromUri] string UserType, [FromUri] string UserType2, [FromUri] string Isdeleted, [FromBody] DealerDetailModel model)
{
// write data log into file
string msg = "";
DealerDetailModel objModel = new DealerDetailModel();
try
{
string type = "van";
objDealerRepository = new DealerRepository(_connStr);
msg = objDealerRepository.CheckVanContactDetailsExistOrNotIsdeleted(model, type);
return msg;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("contrller CheckVanContactDetailsExistOrNotIsdeleted", Ex.Message, path, errorlogtf);
return msg;
}
}
#endregion
}
}

View File

@ -0,0 +1,398 @@
#region Namespaces
using ExcelHelper;
using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using VECV_WebApi.Models.Authorization;
using VECV_WebApi.Models.Dealer;
using VECV_WebApi.Models.Notification;
using VECV_WebApi.Models.Ticket;
using VECV_WebApi.Models.User;
#endregion
/// <summary>
/// This cotroller
/// apis releted to dealer
/// </summary>
public class TitanDealerController : ApiController
{
#region Global References
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// making Dealer Repository object available to this class
/// </summary>
DealerRepository objDealerRepository;
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
/// <summary>
/// To get open ticket detail of dealer
/// </summary>
/// <param name="model">Dealer info</param>
/// <returns>open ticket details of dealer</returns>
public TiatnResponseModel Post([FromBody] TiatnResponseModel model)
{
TiatnResponseModel objModel = new TiatnResponseModel();
//List<DealerOpenTicketDetailModel> objList = new List<DealerOpenTicketDetailModel>();
try
{
objDealerRepository = new DealerRepository(_connStr);
objModel = objDealerRepository.GetTitanDealerDetail(model);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
// objModel.Status = "0";
// objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetTitanDealerDetail_Controller", Ex.Message, path, errorlogtf);
return objModel;
}
}
public List<TitanTicketDealerModel> Post(string type, string dealerlist,[FromBody] TiatnResponseModel model)
{
List<TitanTicketDealerModel> objModel = new List<TitanTicketDealerModel>();
//List<DealerOpenTicketDetailModel> objList = new List<DealerOpenTicketDetailModel>();
try
{
objDealerRepository = new DealerRepository(_connStr);
// objModel = objDealerRepository.GetTitanticketList(model);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
// objModel.Status = "0";
// objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetTitanDealerDetail_Controller", Ex.Message, path, errorlogtf);
return objModel;
}
}
public string Get()
{
List<SVCDetails> objListfullDetails = new List<SVCDetails>();
try
{
string fileName = null;
bool isCreated = false;
TicketRepository objTicketRepository = new TicketRepository(_connStr);
// TicketOpenModel objModel = new TicketOpenModel();
objTicketRepository = new TicketRepository(_connStr);
objListfullDetails = objTicketRepository.GetAllSVCDeatils();
DataTable OpenTicketTable = objListfullDetails.ToDataTable();
Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1;
DataSet ds = new DataSet();
for (var count = OpenTicketTableColumnCount; count >= 10; count--) //modified count on 25-11-2020 //modified count from 34 to 35 on 23-12-2020
{
OpenTicketTable.Columns.RemoveAt(count);
}
ds.Tables.Add(OpenTicketTable);
ds.Tables[0].Columns[0].ColumnName = "Customer Name";
ds.Tables[0].Columns[1].ColumnName = "Customer Mobile Number";
ds.Tables[0].Columns[2].ColumnName = "Address";
ds.Tables[0].Columns[3].ColumnName = "Existing User of SCV";
ds.Tables[0].Columns[4].ColumnName = "OEM Name";
ds.Tables[0].Columns[5].ColumnName = "Activity Punch By";
ds.Tables[0].Columns[6].ColumnName = "Activity Creation Date & Time";
ds.Tables[0].Columns[7].ColumnName = "Quantity";
ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility();
List<WorkbookMappingModel> workbokkMapping = new List<WorkbookMappingModel>();
string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString();
fileName = "SVCReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
// filename = "CloseTicket_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false });
string templatePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString());
string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString();
string pathToExcelFile = _exportLocation + fileName;
//string saveAs = Server.MapPath(_excelExportPathOnServer + fileName);
string SaveCsvAs = HttpContext.Current.Server.MapPath(_excelExportPathOnServer + fileName);
//commented on 24-07-2020(excel download same as consolidate report)
isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs);
if (isCreated == true) { return _exportLocation + fileName; }
else { return "error"; }
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("TicketAcceptOrDecliend_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
// return objListfullDetails;
}
public string Get(string accidentalReport)
{
List<AccidentalDetails> objListfullDetails = new List<AccidentalDetails>();
try
{
string fileName = null;
bool isCreated = false;
TicketRepository objTicketRepository = new TicketRepository(_connStr);
// TicketOpenModel objModel = new TicketOpenModel();
objTicketRepository = new TicketRepository(_connStr);
objListfullDetails = objTicketRepository.GetAllAccidentalDetails();
DataTable OpenTicketTable = objListfullDetails.ToDataTable();
Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1;
DataSet ds = new DataSet();
for (var count = OpenTicketTableColumnCount; count >= 10; count--) //modified count on 25-11-2020 //modified count from 34 to 35 on 23-12-2020
{
OpenTicketTable.Columns.RemoveAt(count);
}
ds.Tables.Add(OpenTicketTable);
ds.Tables[0].Columns[0].ColumnName = "Customer Name";
ds.Tables[0].Columns[1].ColumnName = "Customer Mobile Number";
ds.Tables[0].Columns[2].ColumnName = "Vehicle Location";
ds.Tables[0].Columns[3].ColumnName = "Ambulance Support Required";
ds.Tables[0].Columns[4].ColumnName = "Dealer Support Required";
ds.Tables[0].Columns[5].ColumnName = "Dealer Connect";
ds.Tables[0].Columns[6].ColumnName = "Activity Punch By";
ds.Tables[0].Columns[7].ColumnName = "Activity Creation Date & Time";
ds.Tables[0].Columns[8].ColumnName = " Registration Number";
ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility();
List<WorkbookMappingModel> workbokkMapping = new List<WorkbookMappingModel>();
string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString();
fileName = "AccidentalReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
// filename = "CloseTicket_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false });
string templatePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString());
string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString();
string pathToExcelFile = _exportLocation + fileName;
//string saveAs = Server.MapPath(_excelExportPathOnServer + fileName);
string SaveCsvAs = HttpContext.Current.Server.MapPath(_excelExportPathOnServer + fileName);
//commented on 24-07-2020(excel download same as consolidate report)
isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs);
if (isCreated == true) { return _exportLocation + fileName; }
else { return "error"; }
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("TicketAcceptOrDecliend_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
// return objListfullDetails;
}
public string Get([FromUri] string dealercode, [FromUri] string getdealer)
{
string dealerEmail = "";
TicketRepository objTicketRepository;
objTicketRepository = new TicketRepository(_connStr);
dealerEmail = objTicketRepository.getEmailFromDealerCode(dealercode);
return dealerEmail;
}
public string Post(string svcdetails, string assignvan, string type, string dealerlist, [FromBody] SVCDetails model)
{
string strmsg = "";
TicketRepository objTicketRepository = new TicketRepository(_connStr);
// VanDealerListStateWise objVanDealerListStateWise = objTicketRepository.GetVanlatlngbydevicealias(model.SenderId);
try
{
strmsg = objTicketRepository.InsertSVCDetails(model);
return strmsg;
}
catch (Exception Ex)
{
// write error log into file
// objModel.Status = "0";
// objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetTitanDealerDetail_Controller", Ex.Message, path, errorlogtf);
return strmsg;
}
}
public string Post(string accidentaldetails, string svcdetails, string assignvan, string type, string dealerlist, [FromBody] AccidentalDetails model)
{
string strmsg = "";
TicketRepository objTicketRepository = new TicketRepository(_connStr);
// VanDealerListStateWise objVanDealerListStateWise = objTicketRepository.GetVanlatlngbydevicealias(model.SenderId);
try
{
strmsg = objTicketRepository.InsertAccidentalDetails(model);
return strmsg;
}
catch (Exception Ex)
{
// write error log into file
// objModel.Status = "0";
// objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetTitanDealerDetail_Controller", Ex.Message, path, errorlogtf);
return strmsg;
}
}
public InsertOpenTicket Post(string assignvan,string type, string dealerlist, [FromBody] InsertOpenTicket model)
{
TicketRepository objTicketRepository = new TicketRepository(_connStr);
string ticketid_alias = objTicketRepository.getticketidalias(model.TicketId);
string[] CSMContactNo = ticketid_alias.Split(',');
ticketid_alias = CSMContactNo[0].ToString();
string regno = CSMContactNo[1].ToString();
InsertOpenTicket objModel = new InsertOpenTicket();
string estimatedkm = model.EstimateDistance;
string lat = model.VanLatitude;
string lng = model.VanLongitude;
//List<DealerOpenTicketDetailModel> objList = new List<DealerOpenTicketDetailModel>();
try
{
string strupdate= objTicketRepository.updatetempvandetail(model);
// VanDealerListStateWise objVanDealerListStateWise = objTicketRepository.GetVanlatlngbydevicealias(model.SenderId);
//model.Token = model.Token;
model = objTicketRepository.GetTitanTicketDetail(model);
model.AssignedToUserLattitude = lat;
model.AssignedToUserLongitude = lng;
model.TicketStatusAlias = "new";
model.TicketStatus = 1;
model.OtherRemarks = "allocated";
model.Message = "allocated";
model.AssignedTo = "van";
model.EstimateDistance = estimatedkm;
model.AssignedToUserLattitude = lat;
model.AssignedToUserLongitude = lng;
//model.Token = model.Token;
objModel = objTicketRepository.UpdateOpenTicketWeb(model);
model.Token = model.Token;
model.TicketStatus = 2;
model.TicketStatusAlias = "assigned";
model.OtherRemarks = "allocated";
model.Message = "allocated";
model.AssignedTo ="van";
model.EstimateDistance = estimatedkm;
model.TicketIdAlias = ticketid_alias;
model.VehicleRegistrationNumber = regno;
model.AssignedToUserLattitude = lat;
model.AssignedToUserLongitude = lng;
objModel = objTicketRepository.UpdateOpenTicketWeb(model);
objDealerRepository = new DealerRepository(_connStr);
TiatnAllocationModel modelTiatnAllocationModel = new TiatnAllocationModel();
modelTiatnAllocationModel.Status = "true";
modelTiatnAllocationModel.ticketid_alias = ticketid_alias;
string strsuccess = objDealerRepository.updateAllocationStatus(modelTiatnAllocationModel);
model.Message = "Ticket Allocated Successfully";
return model;
}
catch (Exception Ex)
{
// write error log into file
// objModel.Status = "0";
// objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetTitanDealerDetail_Controller", Ex.Message, path, errorlogtf);
return objModel;
}
}
public string Post(string updateallocatedstatus, [FromBody] TiatnAllocationModel model)
{
string strsuccess = "";
//List<DealerOpenTicketDetailModel> objList = new List<DealerOpenTicketDetailModel>();
try
{
objDealerRepository = new DealerRepository(_connStr);
strsuccess = objDealerRepository.updateAllocationStatus(model);
return strsuccess;
}
catch (Exception Ex)
{
// write error log into file
// objModel.Status = "0";
// objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetTitanDealerDetail_Controller", Ex.Message, path, errorlogtf);
return strsuccess;
}
}
#endregion
}

View File

@ -0,0 +1,276 @@

namespace VECV_WebApi.Controllers.Dealer
{
#region Namespaces
using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using VECV_WebApi.Models.Dashboard;
using VECV_WebApi.Models.Dealer;
using VECV_WebApi.Models.ServiceEngineer;
using VECV_WebApi.Models.Sync;
using VECV_WebApi.Models.Tracking;
using VECV_WebApi.Models.User;
#endregion
/// <summary>
/// This controller contain api releated to service engineer
/// </summary>
public class WMController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// making ServiceEngineerRegistration Repository object available to this class
/// </summary>
ServiceEngineerRegistrationResponseModel objServiceEngRegistrationResponse;
/// <summary>
/// making ServiceEngineer Repository object available to this class
/// </summary>
DealerRepository objDealerRepository;
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
/// <summary>
/// To get open ticket detail of dealer
/// </summary>
/// <param name="model">Dealer info</param>
/// <returns>open ticket details of dealer</returns>
public List<DealerOpenTicketDetailModel> Post([FromBody] DealerOpenTicketDetailModel model)
{
DealerOpenTicketDetailModel objModel = new DealerOpenTicketDetailModel();
List<DealerOpenTicketDetailModel> objList = new List<DealerOpenTicketDetailModel>();
try
{
objDealerRepository = new DealerRepository(_connStr);
objList = objDealerRepository.GetWMOpenTicketDetail(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetDealerOpenTicketDetail_Controller", Ex.Message, path, errorlogtf);
return objList;
}
}
public List<SyncModel> Post([FromUri] string Sync, [FromUri] string WM, [FromBody] SyncModel model)
{
SyncModel objModel = new SyncModel();
List<SyncModel> objList = new List<SyncModel>();
try
{
objDealerRepository = new DealerRepository(_connStr);
objList = objDealerRepository.GetSyncTicketDetail_WM(model);
return objList;
}
catch (Exception Ex)
{
objList.Add(new SyncModel
{
Status = "0",
Message = Ex.Message
});
return objList;
}
}
public string Post(string _appName, string RegistrationNo, string iswm)
{
objServiceEngRegistrationResponse = new ServiceEngineerRegistrationResponseModel();
objDealerRepository = new DealerRepository(_connStr);
string strappversion = objDealerRepository.updateWMAppVersion(RegistrationNo, _appName);
return strappversion;
}
public List<DashboardModel> Post(string dealercode, string wm, string iswm, string get, [FromBody] DashboardModel model)
{
List<DashboardModel> objList = new List<DashboardModel>();
try
{
objServiceEngRegistrationResponse = new ServiceEngineerRegistrationResponseModel();
objDealerRepository = new DealerRepository(_connStr);
objList = objDealerRepository.GetTileDashboardDataSetWM(model);
}
catch (Exception Ex)
{
objList.Add(new DashboardModel
{
Status = "0",
Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message
});
// write error log into file
objLog.ErrorLogFile("DashboardController GetTileDashboardDataSet", Ex.Message, path, errorlogtf);
}
return objList;
}
public RegistrationResponseModel post([FromUri] string multipleDealer, [FromUri] int dealer, [FromUri] int isAuthenticate, [FromBody] ServiceEngineerRegistrationRequestModel model)
{
RegistrationResponseModel oRegistrationResponseModel = new RegistrationResponseModel();
ServiceEngineerRegistrationResponseModel objServiceEngRegistrationRepsonseModel = new ServiceEngineerRegistrationResponseModel();
try
{
objDealerRepository = new DealerRepository(_connStr);
string Token = ConfigurationManager.AppSettings["Token"].ToString();
model.Token = Token;
oRegistrationResponseModel = objDealerRepository.RegisterWMDevice(model);
if (oRegistrationResponseModel.Status == "0")
{
oRegistrationResponseModel.Status = "0";
oRegistrationResponseModel.Massage = "Login Failed !!! Please enter registered mobile number available in EOS";// oRegistrationResponseModel.Massage;
}
else
{
objServiceEngRegistrationResponse = objDealerRepository.LoginWMUser(model);
if (objServiceEngRegistrationResponse.Status == "1")
{
string strappversion = objDealerRepository.GetWMAppVersion(model.RegistrationNo, Token);
//if (strappversion == ConfigurationManager.AppSettings["latest_app_version_Dealers"].ToString())
//{
// return oRegistrationResponseModel;
//}
if (strappversion == ConfigurationManager.AppSettings["latest_app_version_Dealers"].ToString())
{
string[] saAllowedCharacters = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };
string sRandomOTP = GenerateRandomOTP(4, saAllowedCharacters);
oRegistrationResponseModel.OTP = sRandomOTP;
oRegistrationResponseModel = objDealerRepository.GetUserDetailWMWise(model, sRandomOTP);
oRegistrationResponseModel.UserId = oRegistrationResponseModel.UserName.ToString();
oRegistrationResponseModel.Token = Token;
oRegistrationResponseModel.OTP = sRandomOTP;
oRegistrationResponseModel.IsPasswordExist = "1";
oRegistrationResponseModel.Status = "1";
oRegistrationResponseModel.Massage = "Device Register successfully";
}
else
{
oRegistrationResponseModel.Status = "0";
oRegistrationResponseModel.IsPasswordExist = "1";
oRegistrationResponseModel.Massage = "Please update version from play store";
}
}
else
{
oRegistrationResponseModel.Status = "0";
oRegistrationResponseModel.IsPasswordExist = "1";
oRegistrationResponseModel.Massage = objServiceEngRegistrationResponse.Massage;
}
}
return oRegistrationResponseModel;
}
catch (Exception Ex)
{
oRegistrationResponseModel.Status = "0";
oRegistrationResponseModel.Massage = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message;
return oRegistrationResponseModel;
}
}
public CurrentTracking post([FromUri] string Tracking, [FromUri] string Tracking1, [FromUri] string Tracking2, [FromBody] VanModel model)
{
// write data log into file
CurrentTracking objCurrentTracking = new CurrentTracking();
try
{
TrackingRepository objTrackingRepository = new TrackingRepository(_connStr);
objCurrentTracking = objTrackingRepository.GetCurrentTrackingDetailWMWIse(model);
return objCurrentTracking;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetCurrentTrackingDetailUserIdWIse_Controller", Ex.Message, path, errorlogtf);
objCurrentTracking.status = "0";
objCurrentTracking.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; ;
return objCurrentTracking;
}
}
private string GenerateRandomOTP(int iOTPLength, string[] saAllowedCharacters)
{
string sOTP = String.Empty;
string sTempChars = String.Empty;
Random rand = new Random();
for (int i = 0; i < iOTPLength; i++)
{
int p = rand.Next(0, saAllowedCharacters.Length);
sTempChars = saAllowedCharacters[rand.Next(0, saAllowedCharacters.Length)];
sOTP += sTempChars;
}
return sOTP;
}
#endregion
}
}

View File

@ -0,0 +1,107 @@
namespace VECV_WebApi.Controllers.Ticket
{
#region Namespaces
using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using VECV_WebApi.Common;
using VECV_WebApi.Models.Customer;
using VECV_WebApi.Models.Dealer;
using VECV_WebApi.Models.EmailServices;
//using VECV_WebApi.Models.Sync;
using VECV_WebApi.Models.Ticket;
using VECV_WebApi.Models.Vehicle;
#endregion
/// <summary>
/// This controller contain apis related to open ticket
/// </summary>ticketid
public class EPSNonHarvesterController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// making Ticket Repository object available to this class
/// </summary>
TicketRepository objTicketRepository;
/// <summary>
/// making Ticket Repository object available to this class
/// </summary>
GlobalRepository objGlobalRepository;
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
public InsertOpenTicket Post([FromUri] string Ticket, [FromBody] InsertOpenTicket model)
{
try
{
InsertOpenTicket objModel = new InsertOpenTicket();
InsertOpenTicket objModel1 = new InsertOpenTicket();
DealerRepository obj = new DealerRepository(_connStr);
objModel1 = obj.getDelaerIdByState(model.StateName);
model.AssignedToUserId = objModel1.AssignedToUserId;
model.AssignedToUserLattitude = objModel1.AssignedToUserLattitude;
model.AssignedToUserLongitude = objModel1.AssignedToUserLongitude;
objTicketRepository = new TicketRepository(_connStr);
objModel = objTicketRepository.InsertOpenTicketNonHarvester(model);
//sending email to mulitiple people when ticket got created
// string isSend = objTicketRepository.sendEPSNewTicketmail(objModel.TicketId);
//if (isSend.ToLower().Trim() == "true")
//{
// objModel.Status = "1";
//}
//else
//{
// objModel.Status = "0";
//}
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("EPSNonHarvester_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
#endregion
}
}

View File

@ -0,0 +1,109 @@
using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using VECV_WebApi.Models.EscalationMatrix;
namespace VECV_WebApi.Controllers.EscalationMatrix
{
public class EscalationMatrixController : ApiController
{
#region Global References
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// making EscalationMatrix Repository object available to this class
/// </summary>
EscalationMatrixRepository objEscalationMatrixRepository;
/// <summary>
/// making the Database connection string available to this class
/// </summary
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
/// <summary>
/// To Insert, Update and get Escalation Matrix
/// </summary>
/// <param name="model">escalation matrix info</param>
/// <returns>status and data</returns>
public EscalationMatrixModel Post([FromBody]EscalationMatrixModel model)
{
// write data log into file
EscalationMatrixModel objModel = new EscalationMatrixModel();
try
{
objEscalationMatrixRepository = new EscalationMatrixRepository(_connStr);
if (model.Action.Trim().ToUpper() == "INSERT" || model.Action.Trim().ToUpper() == "UPDATE" || model.Action.Trim().ToUpper() == "DELETE" || model.Action.Trim().ToUpper() == "GET")
{
objModel = objEscalationMatrixRepository.InserUpdateGetEscalationMatrix(model);
}
else
{
objModel = objEscalationMatrixRepository.GetEscalationMatrix(model);
}
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("GetDealerOpenTicketDetail_Controller", Ex.Message, path, errorlogtf);
return objModel;
}
}
public EscalationMatrixModel post([FromUri]string phone, [FromBody]EscalationPhoneNumber model)
{
EscalationMatrixModel objModel = new EscalationMatrixModel();
try
{
objEscalationMatrixRepository = new EscalationMatrixRepository(_connStr);
objModel = objEscalationMatrixRepository.UpdateEscalationPhoneNUmber(model);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = Ex.Message;
objLog.ErrorLogFile("UpdateEscalationPhoneNumber", Ex.Message, path, errorlogtf);
return objModel;
}
}
#endregion
}
}

View File

@ -0,0 +1,142 @@
namespace VECV_WebApi.Controllers.Feedback
{
#region Namespaces
using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using VECV_WebApi.Models.FeedBack;
#endregion
//This controller contain feed back releted api
public class FeedBackController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
/// <summary>
/// making Feedback Repository object available to this class
/// </summary>
public FeedBackRepository objFeedBackRepo;
#endregion
/// <summary>
/// To perform ticket feedback related operations
/// </summary>
/// <param name="model">feedback ticket info</param>
/// <returns>feedback status and data</returns>
public FeedBackModel post([FromBody]FeedBackModel model,[FromUri]string Type)
{
FeedBackModel objModel = new FeedBackModel();
try
{
objFeedBackRepo = new FeedBackRepository(_connStr);
// Insert Feedback details.
if (Type.ToLower().Trim() == "insert")
{
objModel = objFeedBackRepo.InsertFeedBackForTicket(model);
}
// Get feedback details.
else if (Type.ToLower().Trim() == "get")
{
objModel = objFeedBackRepo.GetTicketFeedBackAndOtherInfo(model);
}
// Get feedback history.
else if (Type.ToLower().Trim() == "gethistory")
{
objModel = objFeedBackRepo.GetTicketFeedBackHistory(model);
}
//added on 30-04-2020
else if (Type.ToLower().Trim() == "getcustomerfeedbackhistory")
{
objModel = objFeedBackRepo.GetCustomerFeedBackHistory(model);
}
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("InsertFeedBackForTicket global controller", Ex.Message, path, errorlogtf);
objModel.Status = "0";
objModel.Message = Ex.Message;
}
return objModel;
}
/// <summary>
/// To perform ticket feedback related operations
/// </summary>
/// <param name="model">feedback ticket info</param>
/// <returns>feedback status and data</returns>
public FeedBackModel post([FromBody]FeedBackModel model, [FromUri]string Type, [FromUri]string Type2)
{
FeedBackModel objModel = new FeedBackModel();
try
{
objFeedBackRepo = new FeedBackRepository(_connStr);
// Insert Feedback details.
if (Type.ToLower().Trim() == "insert")
{
objModel = objFeedBackRepo.InsertFeedBackForCustomerTicket(model);
}
// Get feedback details.
else if (Type.ToLower().Trim() == "get")
{
objModel = objFeedBackRepo.GetTicketFeedBackAndOtherInfo(model);
}
// Get feedback history.
else if (Type.ToLower().Trim() == "gethistory")
{
objModel = objFeedBackRepo.GetTicketFeedBackHistory(model);
}
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("InsertFeedBackForTicket global controller", Ex.Message, path, errorlogtf);
objModel.Status = "0";
objModel.Message = Ex.Message;
}
return objModel;
}
}
}

View File

@ -0,0 +1,104 @@
using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using VECV_WebApi.Models.Ticket;
namespace VECV_WebApi.Controllers.Global
{
public class CaseManagementAPIController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
string _appName = (ConfigurationManager.AppSettings["ApplicationName"]);
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
/// <summary>
/// making Ticket Repository object available to this class
/// </summary>
TicketRepository objTicketRepository;
#endregion
#region APIs
public List<CaseManagementAPIModel> Post([FromBody] CaseManagementAPIModel model)
{
// write data log into file
List<CaseManagementAPIModel> objApiResponse = new List<CaseManagementAPIModel>();
try
{
TicketRepository objTicket = new TicketRepository(_connStr);
objApiResponse = objTicket.GetAllOpenTicketCaseManagement(model);
return objApiResponse;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("case mamagement api", Ex.Message, path, errorlogtf);
}
return objApiResponse;
}
public string Post([FromUri] string isupdate, [FromBody] CaseManagementAPIModel model)
{
// write data log into file
string objApiResponse = "";
try
{
TicketRepository objTicket = new TicketRepository(_connStr);
objApiResponse = objTicket.updateremarksCasemanagement(model);
return objApiResponse;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("case mamagement api", Ex.Message, path, errorlogtf);
}
return objApiResponse;
}
#endregion
}
}

View File

@ -0,0 +1,172 @@
using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using VECV_WebApi.Models.EmailServices;
using VECV_WebApi.Models.Ticket;
namespace VECV_WebApi.Controllers.Global
{
public class GetAllVanController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
string _appName = (ConfigurationManager.AppSettings["ApplicationName"]);
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
/// <summary>
/// making Ticket Repository object available to this class
/// </summary>
TicketRepository objTicketRepository;
#endregion
#region APIs
public List<VanDealerListStateWise> Post([FromBody] VanDealerListStateWise model)
{
List<VanDealerListStateWise> objList = new List<VanDealerListStateWise>();
try
{
if (model.Fuel_type == "Diesel/CNG")
{
model.Fuel_type = "diesel,cng";
}
else if (model.Fuel_type == "Diesel/CNG/Electric")
{
model.Fuel_type = "diesel,cng,electric";
}
else if (model.Fuel_type == "Electric")
{
model.Fuel_type = "electric";
}
TicketRepository objTicket = new TicketRepository(_connStr);
objList = objTicket.GetVanDealerListLatLngWise(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetVanDealerListStateWise_Controller Ticket controller ticket3", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public EscalationLevelOutputModel Post([FromUri] string operation, [FromBody] EscalationLevelInputModel model)
{
// write data log into file
EscalationLevelOutputModel oEscalationLevelOutputModel = new EscalationLevelOutputModel();
try
{
if (operation.ToLower() == "getescalationlevels")
{
TicketRepository objTicket = new TicketRepository(_connStr);
oEscalationLevelOutputModel = objTicket.GetEscalationLevelsByDealerId(model);
return oEscalationLevelOutputModel;
}
oEscalationLevelOutputModel.Status = "0";
return oEscalationLevelOutputModel;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetEscalationLevels_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public bool Post([FromUri] string send, [FromUri] string sendmessage,[FromBody] sendSMSInputModel model)
{
// write data log into file
EscalationLevelOutputModel oEscalationLevelOutputModel = new EscalationLevelOutputModel();
try
{
string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString();
GlobalRepository objGlobalRepository = new GlobalRepository(_connStr);
string breakdownLocation = objGlobalRepository.getdealerlatlong(model.DelerId);
string LocationLikn = "https://www.google.com/maps/search/?api=1%26query=" + breakdownLocation;
string msgForEscalationForUser = System.Web.Configuration.WebConfigurationManager.AppSettings["msgForEscalation"].ToString();
string msgforEscalation = string.Format(msgForEscalationForUser, model.DealerName , LocationLikn,model.ManagerName, model.ManagerNo);
//Please contact to(Name Arman / Mohit & Number 9818945971 / 9558820990) at our nearest dealership NONACTIVE - EOS by clicking on following link https://www.google.com/maps?q=23.5391281,87.3047335 Regards, Eicher
string CSMsms = string.Format(url, model.MobileNumber, msgforEscalation);
objGlobalRepository.SendMessageEscalation(CSMsms);
return true;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetEscalationLevels_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public bool Post([FromUri] string sendservicelocation,[FromUri] string send, [FromUri] string sendmessage, [FromBody] ElectricServiceStationModel model)
{
// write data log into file
EscalationLevelOutputModel oEscalationLevelOutputModel = new EscalationLevelOutputModel();
try
{
string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString();
GlobalRepository objGlobalRepository = new GlobalRepository(_connStr);
string breakdownLocation = model.lattitude + ',' + model.longitude;
string LocationLikn = "https://www.google.com/maps/search/?api=1%26query=" + breakdownLocation;
string msgForEscalationForUser = System.Web.Configuration.WebConfigurationManager.AppSettings["msgForServiceLocation"].ToString();
string msgforEscalation = string.Format(msgForEscalationForUser, model.name, LocationLikn);
//Please contact to(Name Arman / Mohit & Number 9818945971 / 9558820990) at our nearest dealership NONACTIVE - EOS by clicking on following link https://www.google.com/maps?q=23.5391281,87.3047335 Regards, Eicher
string CSMsms = string.Format(url, model.MobileNumber, msgforEscalation);
objGlobalRepository.SendMessageEscalation(CSMsms);
return true;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetEscalationLevels_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
#endregion
}
}

View File

@ -0,0 +1,320 @@
namespace VECV_WebApi.Controllers.Ticket
{
using ExcelHelper;
#region Namespaces
using LoggingHelper;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using VECV_WebApi.Common;
using VECV_WebApi.Models.Customer;
using VECV_WebApi.Models.EmailServices;
using VECV_WebApi.Models.Ticket;
using VECV_WebApi.Models.Vehicle;
#endregion
/// <summary>
/// This controller
/// ticket related api
/// </summary>
public class GlobalAPIController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
string _appName = (ConfigurationManager.AppSettings["ApplicationName"]);
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
/// <summary>
/// making Global Repository object available to this class
/// </summary>
/// GlobalRepository objGlobalRepository;
/// <summary>
/// making Customer Repository object available to this class
/// </summary>
CustomerRepository objCustomerRepository;
/// <summary>
/// making Ticket Repository object available to this class
/// </summary>
TicketRepository objTicketRepository;
#endregion
#region APIs
public ApiResponse Post([FromBody] APIValueModel model)
{
// write data log into file
ApiResponse objApiResponse = new ApiResponse();
try
{
TicketRepository objTicket = new TicketRepository(_connStr);
objApiResponse = objTicket.GetCaseManagementDetails(model.ticket_Id);
return objApiResponse;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("case mamagement api", Ex.Message, path, errorlogtf);
}
return objApiResponse;
}
public bool Post([FromUri] string sendEmail, [FromBody] APIValueModel model)
{
bool issend = false;
TicketRepository objTicket = new TicketRepository(_connStr);
try
{
issend = objTicket.SendEmailMultipleUserModelMatrix(model);
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("send model email", Ex.Message, path, errorlogtf);
}
return issend;
}
public Int64 Post([FromUri] string mqCount, [FromUri] string getvalue, [FromBody] TicketRequestModel model)
{
Int64 mqCountvalue = 0;
TicketRepository objTicketRepository = new TicketRepository(_connStr);
try
{
mqCountvalue = objTicketRepository.GetMqCount(model);
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("send model email", Ex.Message, path, errorlogtf);
}
return mqCountvalue;
}
public string Post([FromUri] string VahanAPI, [FromUri] string getChassisNo, [FromUri] string getValue, [FromUri] string getvalue1, [FromBody] TicketListOpenTickets model)
{
string strchassisNo = "";
TicketRepository objTicketRepository = new TicketRepository(_connStr);
try
{
strchassisNo = objTicketRepository.DetailFormVAHANApi(model.VehicleRegistrationNo);
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("send model email", Ex.Message, path, errorlogtf);
}
return strchassisNo;
}
public string Post([FromUri] string VahanDetailsReport, [FromUri] string isDownload, [FromUri] string report, [FromUri] string VahanAPI, [FromUri] string getChassisNo, [FromUri] string getValue, [FromUri] string getvalue1, [FromBody] ReportRequestModel model)
{
string strchassisNo = "";
TicketRepository objTicketRepository = new TicketRepository(_connStr);
List<VAHANAPI> objVAHANAPI = new List<VAHANAPI>();
ReportRequestModel ObjModel = new ReportRequestModel();
ObjModel.VAHANAPIReport = objTicketRepository.VahanDetailReport(model);
string fileName = null;
bool isCreated = false;
List<VAHANAPI> oList = new List<VAHANAPI>();
oList = ObjModel.VAHANAPIReport;
try
{
DataTable OpenTicketTable = oList.ToDataTable();
Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1;
DataSet ds = new DataSet();
ds.Tables.Add(OpenTicketTable);
ds.Tables[0].Columns[0].ColumnName = "Chassis Number";
ds.Tables[0].Columns[1].ColumnName = "vehicle Manufacturer Name";
ds.Tables[0].Columns[2].ColumnName = "Model";
ds.Tables[0].Columns[3].ColumnName = "Norms Type";
ds.Tables[0].Columns[4].ColumnName = "type";
ds.Tables[0].Columns[5].ColumnName = "Owner";
ds.Tables[0].Columns[6].ColumnName = "Ticket Creation Time";
ds.Tables[0].Columns[7].ColumnName = "Regitration Number";
ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility();
List<WorkbookMappingModel> workbokkMapping = new List<WorkbookMappingModel>();
string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString();
fileName = "VahanAPIReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false });
string templatePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString());
string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString();
string pathToExcelFile = _exportLocation + fileName;
string SaveCsvAs = HttpContext.Current.Server.MapPath(_excelExportPathOnServer + fileName);
isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs);
if (isCreated == true) { return _exportLocation + fileName; }
else { return "error"; }
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("VahanDetailsErrorReport", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public string Post([FromUri] string VahanDetailsErrorReport, [FromUri] string isDownload, [FromUri] string report, [FromUri] string reportdownload, [FromUri] string VahanAPI, [FromUri] string getChassisNo, [FromUri] string getValue, [FromUri] string getvalue1, [FromBody] ReportRequestModel model)
{
string strchassisNo = "";
TicketRepository objTicketRepository = new TicketRepository(_connStr);
List<VAHANAPIError> objVAHANAPI = new List<VAHANAPIError>();
ReportRequestModel ObjModel = new ReportRequestModel();
try
{
ObjModel.VAHANAPIErrorReport = objTicketRepository.VahanDetailErrorReport(model);
List<VAHANAPIError> oList = new List<VAHANAPIError>();
string fileName = null;
bool isCreated = false;
oList = ObjModel.VAHANAPIErrorReport;
DataTable OpenTicketTable = oList.ToDataTable();
Int32 OpenTicketTableColumnCount = OpenTicketTable.Columns.Count - 1;
DataSet ds = new DataSet();
ds.Tables.Add(OpenTicketTable);
ds.Tables[0].Columns[0].ColumnName = "Message";
ds.Tables[0].Columns[1].ColumnName = "Status";
ds.Tables[0].Columns[2].ColumnName = "Reason";
ds.Tables[0].Columns[3].ColumnName = "Fuel Type";
ds.Tables[0].Columns[4].ColumnName = "Status Code";
ds.Tables[0].Columns[5].ColumnName = "Regitration Number";
ds.Tables[0].Columns[6].ColumnName = "Ticket Creation Time";
ExcelUtility objExcelUtility = new ExcelHelper.ExcelUtility();
List<WorkbookMappingModel> workbokkMapping = new List<WorkbookMappingModel>();
string _excelExportPathOnServer = ConfigurationManager.AppSettings["excelExportPathOnServer"].ToString();
fileName = "VahanErrorReport_" + DateTime.Now.ToString("ddMMMyyyyhhmmss") + ".xlsx";
workbokkMapping.Add(new WorkbookMappingModel { DataTableName = ds.Tables[0].TableName, WorkSheetName = "Open Report", StartColumnName = "A", StartRowNumber = 2, WorkSheetNumber = 1, AutoFit = false });
string templatePath = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["OpenTicketReportTemplate"].ToString());
string _exportLocation = ConfigurationManager.AppSettings["excelExportPath"].ToString();
string pathToExcelFile = _exportLocation + fileName;
string SaveCsvAs = HttpContext.Current.Server.MapPath(_excelExportPathOnServer + fileName);
isCreated = CreateExcelFile.CreateExcelDocument(ds, SaveCsvAs);
if (isCreated == true) { return _exportLocation + fileName; }
else { return "error"; }
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("VahanDetailsErrorReport", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public string Post([FromUri] string BatteryVoltage, [FromUri] string BatteryVoltagevalue, [FromUri] string getvalue, [FromUri] string getChassisNo, [FromBody] ClodantAPIModel model)
{
string batteryVoltage = "";
GlobalRepository objGlobalRepository = new GlobalRepository(_connStr);
try
{
/*string devicedetailapi = objGlobalRepository.getDeviceType(model.chassis_no);
string[] DeviceDetails = devicedetailapi.Split(',');
model.device_id = DeviceDetails[1];
if (DeviceDetails[0] == "TCU 350A")
{
model.packet_info = "PER_BS4";
}
if (DeviceDetails[0] == "TCU 350C")
{
model.packet_info = "PER_BS6";
}
*/
model.device_id = "359207068381993";
model.packet_info = "PER_BS4";
Task<string> starval = objGlobalRepository.getBatteryVoltage(model);
batteryVoltage = starval.Result;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("send model email", Ex.Message, path, errorlogtf);
}
return batteryVoltage;
}
#endregion
}
}

View File

@ -0,0 +1,754 @@
namespace VECV_WebApi.Controllers.Global
{
#region Namespaces
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using VECV_WebApi.Models.EmailServices;
using LoggingHelper;
using VECV_WebApi.Models.ServiceEngineer;
using VECV_WebApi.Models.Customer;
using VECV_WebApi.Models.Dealer;
using VECV_WebApi.Models.Ticket;
#endregion
/// <summary>
/// This controller contain global apis which is used by any user
/// </summary>
public class GlobalController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
/// <summary>
/// making Global Repository object available to this class
/// </summary>
GlobalRepository objGlobalRepository;
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
#region APIs
/// <summary>
/// To get all regions list
/// </summary>
/// <returns>all regions list</returns>
public List<RegionModel> Get()
{
List<RegionModel> objList = new List<RegionModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetAllRegionList();
return objList;
}
catch (Exception Ex)
{
// writing error logs
objLog.ErrorLogFile("GetAllRegionList_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get all time zone list
/// </summary>
/// <param name="TimeZone">extra param to identify the api</param>
/// <returns>all time zone list</returns>
public DealerDetailModel Post(string IMEI, string ReleaseIMEI1, string ReleaseIMEI2,string ReleaseIMEI3, string ReleaseIMEI4,string ReleaseIMEI6,string ReleaseIMEI7)
{
try
{
DealerDetailModel objDealerDetailModel = new DealerDetailModel();
objGlobalRepository = new GlobalRepository(_connStr);
objDealerDetailModel = objGlobalRepository.ReleaseIMEI(IMEI);
return objDealerDetailModel;
}
catch (Exception Ex)
{
// writing error logs
objLog.ErrorLogFile("ReleaseIMEI", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get all time zone list
/// </summary>
/// <param name="TimeZone">extra param to identify the api</param>
/// <returns>all time zone list</returns>
public List<TimeZoneModel> Get(string TimeZone)
{
List<TimeZoneModel> objList = new List<TimeZoneModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetAllTimeZoneList();
return objList;
}
catch (Exception Ex)
{
// writing error logs
objLog.ErrorLogFile("GetAllTimeZoneList_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get all Vehicle Type List
/// </summary>
/// <param name="Global">extra param to identify the api</param>
/// <param name="VehicleType">extra param to identify the api</param>
/// <returns>all Vehicle Type List </returns>
public List<VehicleTypeModel> Get(string Global, string VehicleType)
{
try
{
List<VehicleTypeModel> objList = new List<VehicleTypeModel>();
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetAllVehicleTypeList();
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetAllVehicleTypeList_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To insert vehicle type.
/// </summary>
/// <param name="Global">extra param to identify the api</param>
/// <param name="VehicleType">extra param to identify the api</param>
/// <param name="model">vehicle info</param>
/// <returns>status</returns>
public VehicleTypeModel Post(string Global, string VehicleType, VehicleTypeModel model)
{
try
{
VehicleTypeModel objModel = new VehicleTypeModel();
objGlobalRepository = new GlobalRepository(_connStr);
objModel = objGlobalRepository.InsertNewVehicleType(model);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("InsertNewVehicletype global controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get all Reason details list
/// </summary>
/// <param name="Reason">extra param to identify the api</param>
/// <returns>all Reason details list</returns>
public List<ReasonsModel> get([FromUri] string Reason)
{
List<ReasonsModel> objList = new List<ReasonsModel>();
try
{
//Get reason for android
if (Reason.Trim().ToUpper() == "ANDROID")
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetReason();
objList.RemoveAll(s => s.TypeId == null);
objList = objList.AsEnumerable().Where(s => s.TypeId == "1" || s.TypeId == "2" || s.TypeId == "12" || s.TypeId == "13").ToList();
return objList;
}
//Get reason for web apps.
else
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetReason();
return objList;
}
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetReason_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get Estimate Cost details list
/// </summary>
/// <param name="EstimateCost">extra param to identify the api</param>
/// <param name="EstimateCost1">extra param to identify the api</param>
/// <returns>Estimate Cost details list</returns>
public List<EstimateCostModel> get([FromUri] string EstimateCost, [FromUri] string EstimateCost1)
{
List<EstimateCostModel> objList = new List<EstimateCostModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetEstimateCost();
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetEstimateCost_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To perform diffrent dropdown get operations
/// </summary>
/// <param name="Type">extra param to identify the api</param>
/// <returns>dropdown list</returns>
public List<TollFreeNoSourceModel> Post(string Type)
{
List<TollFreeNoSourceModel> objList = new List<TollFreeNoSourceModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
// get warrenty dropdown list
if (Type.ToLower().Trim() == "warranty")
{
objList = objGlobalRepository.GetWarranty();
}
// get dropdown list
else if (Type.ToLower().Trim() == "dropdown")
{
objList = objGlobalRepository.GetDropDownList();
}
// get vehicle type dropdown list
else if (Type.ToLower().Trim() == "vehicletype")
{
objList = objGlobalRepository.GetAllVehicleType();
}
// get all reasons dropdown list
else if (Type.ToLower().Trim() == "all")
{
objList = objGlobalRepository.GetAllReasons();
}
// get closer reason for more then 24 hrs dropdown list
else if (Type.ToLower().Trim() == "24hrs")
{
objList = objGlobalRepository.GetAll24HrsClouserReason();
}
// get oppotunity lost dropdown list
else if (Type.ToLower().Trim() == "opportunitylost")
{
objList = objGlobalRepository.GetAllOpportunityLostReason();
}
else if (Type.ToLower().Trim() == "delayedreasonmorethan24hrs")
{
objList = objGlobalRepository.GetAllDelayedReasonMorethan24Hrs();
}
// added on 25-11-2020
else if (Type.ToLower().Trim() == "closedticketreason")
{
objList = objGlobalRepository.GetAllClosedTicketReason();
}
// get feedback dropdown list
else if (Type.ToLower().Trim() == "feedback")
{
objList = objGlobalRepository.GetAllFeedBackTypes();
}
// get customer feedback dropdown list
else if (Type.ToLower().Trim() == "customer_feedback")
{
objList = objGlobalRepository.GetAllCustomerFeedBackTypes();
}
// get suggestion dropdown list
else if (Type.ToLower().Trim() == "suggestion")
{
objList = objGlobalRepository.GetAllSuggestion();
}
// get complain dropdown list
else if (Type.ToLower().Trim() == "complain")
{
objList = objGlobalRepository.GetAllComplaint();
}
// get call status dropdown list
else if (Type.ToLower().Trim() == "callstatus")
{
objList = objGlobalRepository.GetAllCallStatus();
}
else if (Type.ToLower().Trim() == "reasonfordealer")
{
objList = objGlobalRepository.GetReasonForDealer();
}
//added on 28-04-2020 for customer_not_satisfied_questions
else if (Type.ToLower().Trim() == "customer_not_satisfied_questions")
{
objList = objGlobalRepository.GetAllCustomerNotSatisfiedQuestions();
}
else if (Type.ToLower().Trim() == "nature_of_problem")
{
objList = objGlobalRepository.GetNatureOfProblem();
}
else if (Type.ToLower().Trim() == "reason_list")
{
objList = objGlobalRepository.GetFeedBackReasonList();
}
// get toll free number source dropdown list
else
{
objList = objGlobalRepository.GetTollFreeNoSources();
}
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetTollFreeNoSources global controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get organisation chart list
/// </summary>
/// <param name="Global">extra param to identify the api</param>
/// <param name="Organization">extra param to identify the api</param>
/// <returns>organisation chart list</returns>
public List<OrgganizationModel> Post(string Global, string Organization)
{
objGlobalRepository = new GlobalRepository(_connStr);
return objGlobalRepository.GetOrganizationListChart();
}
/// <summary>
/// To get language list
/// </summary>
/// <param name="Language">extra param to identify the api</param>
/// <param name="model">extra param to identify the api</param>
/// <returns>language list</returns>
public List<LanguageModel> Post(string Language, LanguageModel model)
{
List<LanguageModel> objList = new List<LanguageModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetLanguageList(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetLanguageList global controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get all states List
/// </summary>
/// <param name="state">extra param to identify the api</param>
/// <param name="model">extra param to identify the api</param>
/// <returns>all states List</returns>
public List<StateModel> post([FromUri]string state, [FromBody]StateModel model)
{
List<StateModel> objList = new List<StateModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetAllStateList(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetAllStateList_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public Telematic_Model Post([FromUri]string Chassis_Detail, [FromBody]Telematic_Model model)
{
Telematic_Model objModel = new Telematic_Model();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objModel = objGlobalRepository.ChassisTelematicDetail(model.chassis_no);
return objModel;
}
catch (Exception Ex)
{
objLog.ErrorLogFile("Telematic_chasis_details", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get all City List State Id Wise
/// </summary>
/// <param name="state">extra param to identify the api</param>
/// <param name="city">extra param to identify the api</param>
/// <param name="model">city info</param>
/// <returns>all City List State Id Wise</returns>
public List<CityModel> post([FromUri]string state, [FromUri]string city, [FromBody]CityModel model)
{
try
{
List<CityModel> objList = new List<CityModel>();
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetAllCityListStateIdWise(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetAllCityListStateIdWise_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get all Organization List User Id Wise
/// </summary>
/// <param name="model">organization info</param>
/// <returns>Organization List User Id Wise</returns>
public List<OrgganizationModel> post([FromBody]OrgganizationModel model)
{
List<OrgganizationModel> objList = new List<OrgganizationModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetAllOrganizationListUserIdWise(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetAllOrganizationListUserIdWise_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get state list
/// </summary>
/// <param name="state">extra param to identify the api</param>
/// <param name="state1">extra param to identify the api</param>
/// <param name="model">state info</param>
/// <returns>state list</returns>
public List<StateModel> post([FromUri]string state, [FromUri]string state1, [FromBody]StateModel model)
{
List<StateModel> objList = new List<StateModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetStateListIdWise(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetAllStateListIdWise_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public List<StateModel> post([FromUri]string state, [FromUri]string state1, [FromUri]string state2, [FromBody]OrgganizationModel model)
{
List<StateModel> objList = new List<StateModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetAllStateListRegionWise(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetAllStateListRegionWise_controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get city list state id wise
/// </summary>
/// <param name="state">extra param to identify the api</param>
/// <param name="city">extra param to identify the api</param>
/// <param name="city1">extra param to identify the api</param>
/// <param name="model">state info</param>
/// <returns>city list state id wise</returns>
public List<CityModel> post([FromUri]string state, [FromUri]string city, [FromUri]string city1, [FromBody]CityModel model)
{
List<CityModel> objList = new List<CityModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetCityListStateIdWise(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetCityListStateIdWise_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get dealer list state and city name wise
/// </summary>
/// <param name="dealer">extra param to identify the api</param>
/// <param name="dealer1">extra param to identify the api</param>
/// <param name="dealer2">extra param to identify the api</param>
/// <param name="dealer3">extra param to identify the api</param>
/// <param name="model">state and city info</param>
/// <returns>dealer list state and city name wise</returns>
public List<DealerModel> post([FromUri]string dealer, [FromUri]string dealer1, [FromUri]string dealer2, [FromUri]string dealer3, [FromBody]VanModel model)
{
DealerModel objDealerModel = new DealerModel();
List<DealerModel> objListDealerModel = new List<DealerModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objListDealerModel = objGlobalRepository.GetDealerStateCityWise(model);
return objListDealerModel;
}
catch (Exception Ex)
{
// write error log into file
objDealerModel.Status = "0";
objDealerModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message; ;
objLog.ErrorLogFile("GetDealerStateCityWise_Controller", Ex.Message, path, errorlogtf);
return objListDealerModel;
}
}
/// <summary>
/// To get SLA list
/// </summary>
/// <param name="sla">extra param to identify the api</param>
/// <param name="model">sla info</param>
/// <returns>SLA list</returns>
public List<SlaModel> post([FromUri]string sla, [FromBody]SlaModel model)
{
SlaModel objSlaModel = new SlaModel();
List<SlaModel> objListSlaModel = new List<SlaModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objListSlaModel = objGlobalRepository.GetSla(model);
return objListSlaModel;
}
catch (Exception Ex)
{
// write error log into file
objSlaModel.Status = "0";
objSlaModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message;
objLog.ErrorLogFile("GetDealerStateCityWise_Controller", Ex.Message, path, errorlogtf);
return objListSlaModel;
}
}
/// <summary>
/// To insert or update reason
/// </summary>
/// <param name="UpdateReason">extra param to identify the api</param>
/// <param name="model">reason info</param>
/// <returns>status and data</returns>
public ReasonsModel Post([FromUri]string UpdateReason, [FromBody]ReasonsModel model)
{
ReasonsModel objModel = new ReasonsModel();
objModel.Status = "0";
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objModel = objGlobalRepository.UpdateOrInsertReason(model);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message;
return objModel;
}
}
/// <summary>
/// To insert or update reason
/// </summary>
/// <param name="UpdateReason">extra param to identify the api</param>
/// <param name="model">reason info</param>
/// <returns>status and data</returns>
public CustomerModel Post([FromUri]string checkRegistartionNoandGetDetail, [FromBody]CustomerModel model)
{
CustomerModel objModel = new CustomerModel();
objModel.Status = "0";
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objModel = objGlobalRepository.checkRegistartionNoandGetDetail(model);
return objModel;
}
catch (Exception Ex)
{
// write error log into file
objModel.Status = "0";
objModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message;
return objModel;
}
}
//commented by shekhar
// uncommented by priya 0n 21 oct 2022 for mobile version update
public List<Models.EmailServices.AppModel> post([FromUri] string AppConfig, [FromUri] string AppVersion, [FromUri] int AppVersion1, [FromBody] Models.EmailServices.AppModel model)
{
List<Models.EmailServices.AppModel> objList = new List<Models.EmailServices.AppModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.GetAppVersion(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("GetAppVersion_Controller", Ex.Message, path, errorlogtf);
throw Ex;
}
}
/// <summary>
/// To get city list state id wise
/// </summary>
/// <param name="state">extra param to identify the api</param>
/// <param name="city">extra param to identify the api</param>
/// <param name="city1">extra param to identify the api</param>
/// <param name="model">state info</param>
/// <returns>city list state id wise</returns>
public List<CHASSIS_SRCH_Model> post([FromUri]string chassisSearch, [FromBody]CHASSIS_SRCH_Model model)
{
List<CHASSIS_SRCH_Model> objList = new List<CHASSIS_SRCH_Model>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.getChassisBysuggestion(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("EOS Chassis Search", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public List<Engine_SRCH_Model> post([FromUri] string engineSearch, [FromBody] Engine_SRCH_Model model)
{
List<Engine_SRCH_Model> objList = new List<Engine_SRCH_Model>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.getEngineBysuggestion(model);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("EOS engine Search", Ex.Message, path, errorlogtf);
throw Ex;
}
}
public CHASSIS_ODOMETER_Model post([FromUri]string chassisSearch, [FromUri]string getOdoMeter, [FromBody]CHASSIS_ODOMETER_Model model)
{
CHASSIS_ODOMETER_Model objList = new CHASSIS_ODOMETER_Model();
/// test
CHASSIS_ODOMETER_Model objList1 = new CHASSIS_ODOMETER_Model();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.getOdoMeterBYChassis(model);
//objList1 = objGlobalRepository.InsertOdoMeterInEOSAPI("NL1119000983", "17EC30290775", "9000330","KM");
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("EOS Gey OdoMeter BY Chassis", Ex.Message, path, errorlogtf);
throw Ex;
}
}
#endregion
#region "Get Registration number by Engine Number"
public List<EngineDetailModel> post([FromUri] string enginebyregistration, EngineDetailModel model)
{
List<EngineDetailModel> objList = new List<EngineDetailModel>();
try
{
objGlobalRepository = new GlobalRepository(_connStr);
objList = objGlobalRepository.getRegistrationByEngines(model.engine_number);
return objList;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("EOS engine Search", Ex.Message, path, errorlogtf);
throw Ex;
}
}
#endregion
}
}

View File

@ -0,0 +1,27 @@
namespace VECV_WebApi.Controllers.Metrics
{
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Web.Http;
using Prometheus;
public class MetricsController : ApiController
{
[HttpGet]
public HttpResponseMessage Index()
{
var stream = new MemoryStream();
Metrics.DefaultRegistry.CollectAndExportAsTextAsync(stream).Wait();
stream.Position = 0;
return new HttpResponseMessage
{
Content = new StreamContent(stream)
{
Headers = { ContentType = new MediaTypeHeaderValue("text/plain") }
}
};
}
}
}

View File

@ -0,0 +1,258 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace VECV_WebApi.Controllers.Global
{
using DBHelper;
using ExcelHelper;
#region Namespaces
using LoggingHelper;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Npgsql;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using VECV_WebApi.Common;
using VECV_WebApi.Models.Customer;
using VECV_WebApi.Models.EmailServices;
using VECV_WebApi.Models.Ticket;
using VECV_WebApi.Models.Vehicle;
#endregion
public class SMSController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
string _appName = (ConfigurationManager.AppSettings["ApplicationName"]);
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
/// <summary>
/// making Global Repository object available to this class
/// </summary>
/// GlobalRepository objGlobalRepository;
/// <summary>
/// making Customer Repository object available to this class
/// </summary>
CustomerRepository objCustomerRepository;
/// <summary>
/// making Ticket Repository object available to this class
/// </summary>
TicketRepository objTicketRepository;
#endregion
public string Post([FromBody] SMSApiResponse model)
{
string stsuccess = "";
// write data log into file
GlobalRepository objGlobalRepository = new GlobalRepository(_connStr);
try
{
string msgownerSMSTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgOtpSMSTicket"].ToString();
string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString();
msgownerSMSTicket = string.Format(msgownerSMSTicket,
model.ticket_id,
model.OTP.ToString() );
string CustomerSms = string.Format(url,model.Customer_name, msgownerSMSTicket);
objLog.ErrorLogFile("owner otp", CustomerSms, path, errorlogtf);
objGlobalRepository.SendMessage(CustomerSms);
stsuccess = "success";
return stsuccess;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("case mamagement api", Ex.Message, path, errorlogtf);
}
return stsuccess;
}
public string Post(string otp, string getotp, [FromBody] InsertOpenTicket model)
{
string stsuccess = "";
// write data log into file
TicketRepository objTicketRepository = new TicketRepository(_connStr);
stsuccess = objTicketRepository.getOTP(model);
return stsuccess;
}
public string Post(string sendsms,[FromBody] SMSApiResponse model)
{
string stsuccess = "";
// write data log into file
GlobalRepository objGlobalRepository = new GlobalRepository(_connStr);
try
{
DataSet ds = new DataSet();
string msgownerSMSTicket = System.Web.Configuration.WebConfigurationManager.AppSettings["msgDealerSMSTicket"].ToString();
string url = System.Web.Configuration.WebConfigurationManager.AppSettings["SmsUrl"].ToString();
NpgsqlParameter[] nSqlParam1 = new NpgsqlParameter[2];
nSqlParam1[0] = new NpgsqlParameter("inticket_id", model.ticket_id);
nSqlParam1[1] = new NpgsqlParameter("invehicle_reg", null);
ds = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_contact_details_for_sms_api"], nSqlParam1);
// ds.Tables[0].Rows[0]["_dealer_dealer_name"].ToString()
//ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString()
// ds.Tables[0].Rows[0]["WM_contact_no"].ToString()
if (model.ModelNumber == null)
{
if (model.ProductVariant == null)
{
model.VehicleType = model.VehicleType;
}
else
{
if (model.ProductVariant.ToLower() == "electric")
{
model.VehicleType = model.VehicleType + " EV";
}
}
}
else
{
string str = model.ModelNumber.ToLower();
string substring = "titan";
if (str.Contains(substring))
{
if (model.ProductVariant == null)
{
model.VehicleType = model.VehicleType + " TITAN";
}
else
{
if (model.ProductVariant.ToLower() == "electric")
{
model.VehicleType = model.VehicleType + " TITAN" + " EV";
}
}
}
}
List<EscalationLevel> oEscalationLevelList = new List<EscalationLevel>();
DataSet escalationLevelDataset = new DataSet();
NpgsqlParameter[] nSqlParam = new NpgsqlParameter[2];
nSqlParam[0] = new NpgsqlParameter("in_dealer_id", model.Dealer_code);
nSqlParam[1] = new NpgsqlParameter("in_vehicle_type", model.VehicleType);
escalationLevelDataset = NpgSqlHelper.ExecuteDataset(_connStr, CommandType.StoredProcedure, ConfigurationManager.AppSettings["usp_get_escalation_level_by_dealer_id_vehicle_type"], nSqlParam);
if (escalationLevelDataset.Tables[0].Rows.Count > 0)
{
oEscalationLevelList = escalationLevelDataset.Tables[0].AsEnumerable().Select(s => new EscalationLevel
{
DelaerId = s.Field<string>("dealer_id"),
ManagerName = s.Field<string>("manager_name"),
ManagerLevel = s.Field<string>("manager_level"),
ManagerPhoneNo = s.Field<string>("phones"),
VehicleType = s.Field<string>("van_type")
}).ToList();
}
string sitename = "";
string wmname = "";
for (int i = 0; i < oEscalationLevelList.Count; i++)
{
if (oEscalationLevelList[i].ManagerLevel == "EOS Site Incharge")
{
model.EOSSiteName = oEscalationLevelList[i].ManagerName;
model.EOSSiteNo = oEscalationLevelList[i].ManagerPhoneNo;
sitename = model.EOSSiteName + "/" + model.EOSSiteNo;
}
if (oEscalationLevelList[i].ManagerLevel.ToString() == "WM")
{
if (model.EOSSiteName == "")
{
sitename = model.WMName;
wmname = model.WmNo; ;
}
else
{
model.WMName = oEscalationLevelList[i].ManagerName;
model.WmNo = oEscalationLevelList[i].ManagerPhoneNo;
wmname = model.WMName + "/" + model.WmNo;
}
}
}
model.DealerName = ds.Tables[0].Rows[0]["dealer_dealer_name"].ToString();
model.DealerNo = ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString();
//ds.Tables[0].Rows[0]["_dealer_contact_number1"].ToString()
msgownerSMSTicket = string.Format(msgownerSMSTicket,
sitename,
wmname,
model.DealerName);
string CustomerSms = string.Format(url, model.Customer_name, msgownerSMSTicket);
objGlobalRepository.SendMessage(CustomerSms);
objLog.ErrorLogFile("GetDealerStateCityWise_Controller", CustomerSms, path, errorlogtf);
stsuccess = "success";
return stsuccess;
}
catch (Exception Ex)
{
// write error log into file
objLog.ErrorLogFile("case mamagement api", Ex.Message, path, errorlogtf);
}
return stsuccess;
}
}
}

View File

@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web.Http;
using VECV_WebApi.Common;
namespace VECV_WebApi.Controllers.Global
{
public class TokenJWTController : ApiController
{
[AllowAnonymous]
[HttpPost]
[Route("api/TokenJ-WT/token")]
public IHttpActionResult GetToken()
{
var auth = Request.Headers.Authorization;
if (auth == null || auth.Scheme != "Basic")
return ResponseMessage(Request.CreateResponse(HttpStatusCode.Unauthorized, "Missing Basic Auth"));
var encodedCredentials = auth.Parameter;
var credentialBytes = Convert.FromBase64String(encodedCredentials);
var credentials = Encoding.UTF8.GetString(credentialBytes).Split(':');
if (credentials.Length != 2)
return BadRequest("Invalid Basic Auth format");
var username = credentials[0];
var password = credentials[1];
// Replace this check with actual DB/user validation
if (username != ConfigurationManager.AppSettings["JWTAuthId"].ToString() || password != ConfigurationManager.AppSettings["JWTAuthPwd"].ToString())
return Unauthorized();
var token = JwtManager.GenerateToken(username);
return Ok(new { token });
}
public bool CheckUser(string username, string password)
{
// should check in the database
if(username == ConfigurationManager.AppSettings["JWTAuthId"].ToString() && password == ConfigurationManager.AppSettings["JWTAuthPwd"].ToString())
{
return true;
}
else
{
return false;
}
}
}
}

View File

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using VECV_WebApi.Common;
using VECV_WebApi.CommonAuthorization;
namespace VECV_WebApi.Controllers.Global
{
public class ValueJWTController : ApiController
{
[JwtAuthentication]
public string Get()
{
return "value";
}
}
}

View File

@ -0,0 +1,96 @@
namespace VECV_WebApi.Controllers
{
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Web.Http;
using VECV_WebApi.Models.EmailServices;
using VECV_WebApi.Models.Ticket;
public class LocationController : ApiController
{
#region Global Variable
/// <summary>
/// making Ticket Repository object available to this class
/// </summary>
TicketRepository objTicketRepository;
/// <summary>
/// making the Database connection string available to this class
/// </summary>
private string _connStr = ConfigurationManager.ConnectionStrings["Vecv_GoData"].ToString();
#endregion
/// <summary>
/// To Insert new customer
/// </summary>
/// <param name="model">Customer detail</param>
/// <returns>Status details</returns>breakdownLongitude
public string Post([FromUri] string islocationchange, [FromUri] string ticketId, [FromUri] string BreakdownLocation, [FromUri] string breakdownLongitude, [FromUri] string breakdownLattitude, [FromUri] string state, [FromUri] string City, [FromUri] string Route, [FromUri] string Landmark)
{
objTicketRepository = new TicketRepository(_connStr);
string strsucess = objTicketRepository.updateislocationchange(ticketId, BreakdownLocation, breakdownLongitude, breakdownLattitude,state,City,Route,Landmark);
return strsucess;
}
//public string Post([FromUri] string getDummyId, [FromUri] string RegistrationNumber)
//{
// objTicketRepository = new TicketRepository(_connStr);
// if (RegistrationNumber != null && RegistrationNumber != "")
// {
// //replace "-" to blank space and than replace blank space to empty string in registration no.
// RegistrationNumber = RegistrationNumber.Replace("-", " ").Replace(" ", String.Empty);
// }
// string strsucess = objTicketRepository.GetDummyTicketByTicketId(RegistrationNumber);
// return strsucess;
//}
public string Post([FromUri] string isdealearchange, [FromUri] string ticketId, [FromUri] string reason, [FromUri] string OtherReason)
{
objTicketRepository = new TicketRepository(_connStr);
string strsucess = objTicketRepository.updatedealerchangereason(ticketId, reason, OtherReason);
return strsucess;
}
public List<TollFreeNoSourceModel> Get()
{
objTicketRepository = new TicketRepository(_connStr);
List<TollFreeNoSourceModel> objModel = new List<TollFreeNoSourceModel>();
objModel = objTicketRepository.GetdealerchangereasonList();
return objModel;
}
public CustomerVehicleModelDBM Post([FromBody] CustomerVehicleModelDBM model)
{
CustomerVehicleModelDBM objTicketOpenModel = new CustomerVehicleModelDBM();
try
{
TicketRepository objTicket = new TicketRepository(_connStr);
objTicketOpenModel = objTicket.GetCustomerDetailsDBM(model);
return objTicketOpenModel;
}
catch (Exception Ex)
{
// write error log into file
// objLog.ErrorLogFile("GetCustomerDetails_Controller", Ex.Message, path, errorlogtf);
objTicketOpenModel = new CustomerVehicleModelDBM();
objTicketOpenModel.Status = 0;
objTicketOpenModel.Message = ConfigurationManager.AppSettings["PwdErrorMsg"].ToString() + Ex.Message;
return objTicketOpenModel;
}
}
/// <summary>
}
}

View File

@ -0,0 +1,73 @@
using LoggingHelper;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using VECV_WebApi.Common;
using VECV_WebApi.Models.Activity;
using VECV_WebApi.Models.Customer;
using VECV_WebApi.Models.EmailServices;
using VECV_WebApi.Models.LogOn;
using VECV_WebApi.Models.Mobile;
using VECV_WebApi.Models.Ticket;
using VECV_WebApi.Models.User;
using VECV_WebApi.Models.Vehicle;
using VECV_WebApi.UserClient;
namespace VECV_WebApi.Controllers.LogOn
{
/// <summary>
/// This controller contain apis, related to Mobile users
/// </summary>
public class LogOnController : ApiController
{
#region Global Variable
/// <summary>
/// making object of LoggingUtility class available to this class
/// </summary>
LoggingUtility objLog = new LoggingUtility();
/// <summary>
/// making the data-log file path available to this class
/// </summary>
string path = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["PathLog"]);
/// <summary>
/// making data log file path available to this class
/// </summary>
string logtf = (ConfigurationManager.AppSettings["Log"]);
/// <summary>
/// making error log file path available to this class
/// </summary>
string errorlogtf = (ConfigurationManager.AppSettings["ErrorLog"]);
AuthService objAuthService = new AuthService();
#endregion
#region APIs
/// <summary>
/// Merging following 6 APIs result into one api :-
/// 1. Get Open/Close Ticket activities
/// 2. Get Customer Details
/// 3. Get Owner Details
/// 4. Get Ticket Details
/// 5. Get Escalation Levels
/// 6. Get Vehicle Details
/// </summary>
/// <param name="model">required input parameters for ticket/vehicle/customer etc</param>
/// <returns>status and data</returns>
public void Post([FromBody] LogonModel model)
{
bool islogin = objAuthService.Authenticate(model.Username, model.Password);
}
#endregion
}
}

Some files were not shown because too many files have changed in this diff Show More