Localhost Site not reached if web application runs.
Solution: Go to C:\Windows\System32\drivers\etc
Open 'host' File
Add '127.0.0.1 http://localhost:54499/'
Localhost Site not reached if web application runs.
Solution: Go to C:\Windows\System32\drivers\etc
Open 'host' File
Add '127.0.0.1 http://localhost:54499/'
Function IN SQL:
-
--SELECT [dbo].[GetYearDuration] (REPLACE(CONVERT(Date,e.DateOfBirth,103),' ','-') , REPLACE(CONVERT(Date,e.FirstJoiningDate,103),' ','-') ) as JoiningAge
--FROM Employee e
--WHERE e.EmployeeId = 3734
--SELECT [dbo].[GetDurationYear_Month_Day]('06 June, 1985', '04 July, 2020')
--SELECT [dbo].[GetDurationYear_Month_Day]('01 April, 1960', '26 March, 1986')
ALTER FUNCTION [dbo].[GetDurationYear_Month_Day]
(
@FromDate1 nvarchar(20), @ToDate1 nvarchar(20)
)
RETURNS NVARCHAR(300)
AS
BEGIN
Declare @Message NVARCHAR(300)
if isDate(@FromDate1) = 1 and isDate(@ToDate1) = 1
BEGIN
Declare @FromDate DATETIME, @ToDate DATETIME
SET @FromDate = @FromDate1
SET @ToDate = @ToDate1
DECLARE @date datetime, @tmpdate datetime, @years int, @months int, @days int
Declare @currentdatetime datetime
--SELECT @date = '15-Jun-1986'
set @date = @FromDate
set @currentdatetime = @ToDate
--SELECT
-- @date = REPLACE(CONVERT(Date,e.DateOfBirth,103),' ','-'),
-- @currentdatetime = REPLACE(CONVERT(Date,e.FirstJoiningDate,103),' ','-')
-- FROM Employee as e WHERE e.EmployeeId = 26380 --12390
SELECT @tmpdate = @date
SELECT @years = DATEDIFF(yy, @tmpdate, @currentdatetime) - CASE WHEN (MONTH(@date) > MONTH(@currentdatetime)) OR (MONTH(@date) = MONTH(@currentdatetime) AND DAY(@date) > DAY(@currentdatetime)) THEN 1 ELSE 0 END
SELECT @tmpdate = DATEADD(yy, @years, @tmpdate)
SELECT @months = DATEDIFF(m, @tmpdate, @currentdatetime) - CASE WHEN DAY(@date) > DAY(@currentdatetime) THEN 1 ELSE 0 END
SELECT @tmpdate = DATEADD(m, @months, @tmpdate)
SELECT @days = DATEDIFF(d, @tmpdate, @currentdatetime)
SET @Message = CAST(@years AS VARCHAR(4)) + '-' + CAST(@months AS VARCHAR(4)) + '-' + CAST(@days AS VARCHAR(4))
END -- END if
ELSE
BEGIN
SET @Message = 'Problem With Date:GetDurationYear_Month_Day'
END
RETURN @Message;
END
Javascript Code:
let EPOCH = new Date(0);
let EPOCH_YEAR = EPOCH.getUTCFullYear();
let EPOCH_MONTH = EPOCH.getUTCMonth();
let EPOCH_DAY = EPOCH.getUTCDate();
var dob = document.getElementById("BirthDate").value;
var birthDate = new Date(dob);
const diff = new Date(Date.now() - birthDate.getTime());
var years = Math.abs(diff.getUTCFullYear() - EPOCH_YEAR);
var months = Math.abs(diff.getUTCMonth() - EPOCH_MONTH);
var days = Math.abs(diff.getUTCDate() - EPOCH_DAY);
$("#Result").html(years + " year(s) " + months + " month(s) " + days + " and day(s)").css("color", "red");;
HTML:::
<div class="col-md-3">
<div class="form-group">
@Html.LabelFor(model => model.BirthDate, htmlAttributes: new { @class = "control-label", @autocomplete = "off" })<span style="color:red; font-size:15px;"> * </span>
<div style="margin:.1%;" id="Result"> </div>
@Html.EditorFor(model => model.BirthDate, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.BirthDate, "", new { @class = "text-danger" })
</div>
</div>
Reference: https://dev.to/code_mystery/javascript-age-calculator-calculate-age-from-date-of-birth-o9b
---
declare
@InitialData Table(
RowNum int IDENTITY(1,1) NOT NULL ,
EmployeeCode nvarchar(20)
)
INSERT INTO @InitialData
SELECT [Employee Code] FROM NXTRPTEmployeeProfile WHERE [daysIN Zone Office] is NULL
DECLARE @RowSl INT
,@Count INT
SET @RowSl = 1
SET @Count = (SELECT COUNT(*) FROM @InitialData)
WHILE @RowSl <= @Count
BEGIN
declare @currentEmployee varchar(20)
SELECT @currentEmployee = [EmployeeCode] FROM @InitialData WHERE RowNum = @RowSl
Update NXTRPTEmployeeProfile SET [daysIN Zone Office] = dbo.GetZoneOfficeDurationKF1Days(@currentEmployee)
WHERE [Employee code] = @currentEmployee
SET @RowSl += 1
END -- End While
Canvas always returns images in png format. But for crystal report, it does not accept png. So it is necessary to convert png to jpeg image format.
Steps:
1. From base64 get byte array. (png)
2. then convert to a logical file. (png)
3. get the logical file and convert it to a jpeg file (bitmap png to jpeg)
4. get a jpeg logical file and convert it to the binary array.
5. save in the database. Field Type varbinary(max)
View::
@model gBanker.Web.ViewModels.MemberInfoViewModel
@{
ViewBag.Title = "DigitalSignature";
Layout = "~/Views/Shared/_LayoutMaster.cshtml";
}
<h2>Add Digital Signature</h2>
@using (Html.BeginForm("DigitalSignature", "newMember", FormMethod.Post, new { id = "drawingForm" }))
{
@Html.HiddenFor(model => model.MemberID)
<div class="row">
<div class="col-md-4">
<div class="form-group">
@Html.LabelFor(model => model.CenterID, htmlAttributes: new { @class = "control-label" })
@Html.TextBox(" ", ViewData["CenterID"].ToString(), new { @ID = "CenterID", @class = "form-control", @readonly = true })
@Html.ValidationMessageFor(model => model.CenterID, "", new { @class = "text-danger" })
</div>
</div>
<div class="col-md-4">
<div class="form-group">
@Html.LabelFor(model => model.MemberCode, htmlAttributes: new { @class = "control-label" })
@Html.TextBox(" ", ViewData["MemberCode"].ToString(), new { @ID = "MemberCode", @class = "form-control", @readonly = true })
@Html.ValidationMessageFor(model => model.MemberCode, "", new { @class = "text-danger" })
</div>
</div>
</div>
<div class="row">
<div class="col-md-5">
<input type="hidden" name="imageData" id="imageData" />
<input type="hidden" MemberId_Sig="@ViewData["MemberID"]" />
<canvas id="kfCanvas" name="kfCanvas" typeof="jpg" height="300px;" width="400px;" style="border: 3px dotted #000; cursor: crosshair;">
Sorry, your browser doesn't support canvas technology.
</canvas>
</div>
<div class="col-md-3">
<input type="submit" id="btnSave" class="btn btn-success" onfocus="SetBase64();" value="Save Signature" />
<input type="button" id="btnClear" class="btn btn-warning" value="Clear" onclick="erase();" />
</div>
</div>
<div class="row">
<div class="col-md-3"><h4>4 of 4 pages</h4><label>@ViewBag.Message</label></div>
<div class="col-md-3">
<div class="form-group">
</div>
</div>
</div>
<div class="row">
<div style="height:350px; margin:10px;">
<img id="rsDiagram" src="" class="partDiagram">
</div>
<!-- Button for calling ajax request -->
<button type="button" class="btn btn-primary" onclick="ShowImage();" data-toggle="modal" data-target="">
Load Signature
</button>
</div>
<img id="rsDiagram2" src="" class="partDiagram">
}
<script>
var canvas, ctx, flag = false,
prevX = 0,
currX = 0,
prevY = 0,
currY = 0,
dot_flag = false;
var x = "black",
y = 2.5;
function initSignatureInput() {
canvas = document.getElementById('kfCanvas');
ctx = canvas.getContext("2d");
w = canvas.width;
h = canvas.height;
canvas.addEventListener("mousemove", function (e) {
findxy('move', e)
}, false);
canvas.addEventListener("mousedown", function (e) {
findxy('down', e)
}, false);
canvas.addEventListener("mouseup", function (e) {
findxy('up', e)
}, false);
canvas.addEventListener("mouseout", function (e) {
findxy('out', e)
}, false);
}
function color(obj) {
switch (obj.id) {
case "green":
x = "green";
break;
case "blue":
x = "blue";
break;
case "red":
x = "red";
break;
case "yellow":
x = "yellow";
break;
case "orange":
x = "orange";
break;
case "black":
x = "black";
break;
case "white":
x = "white";
break;
}
if (x == "white") y = 14;
else y = 2.5;
}
function draw() {
ctx.beginPath();
ctx.lineCap = 'round';
ctx.moveTo(prevX, prevY);
ctx.lineTo(currX, currY);
ctx.strokeStyle = x;
ctx.lineWidth = y;
ctx.stroke();
ctx.closePath();
}
function erase() {
var m = confirm("Want to clear");
if (m) {
ctx.clearRect(0, 0, w, h);
}
}
//function draw2() {
// ctx.beginPath();
// ctx.moveTo(prevX, prevY);
// ctx.lineTo(currX, currY);
// ctx.strokeStyle = x;
// ctx.lineWidth = y;
// ctx.stroke();
// ctx.closePath();
//}
function findxy(res, e) {
// var staticX = 33, staticY = 13;
var staticX = 30, staticY = 120;
if (res == 'down') {
prevX = currX;
prevY = currY;
//currX = e.clientX - (canvas.offsetLeft+235);
//currY = e.clientY - (canvas.offsetTop +135);
currX = (e.pageX - canvas.offsetLeft) - canvas.width / 2;
currY = (e.pageY - canvas.offsetTop) - canvas.height / 2;
currX -= staticX;
currY -= staticY;
flag = true;
}
if (res == 'up' || res == "out") {
flag = false;
}
if (res == 'move') {
if (flag) {
prevX = currX;
prevY = currY;
// currX = e.clientX - (canvas.offsetLeft + 235);
// currY = e.clientY - (canvas.offsetTop + 135);
currX = (e.pageX - canvas.offsetLeft) - canvas.width / 2;
currY = (e.pageY - canvas.offsetTop) - canvas.height / 2;
currX -= staticX;
currY -= staticY;
draw();
}
}
}
initSignatureInput();
function SetBase64() {
var image = document.getElementById("kfCanvas").toDataURL("image/png");
//var image = document.getElementById("kfCanvas").toDataURL();
// image = image.replace('data:image/png;base64,', '');
//image = image.replace('data:image/png;base64,', '');
document.getElementById('rsDiagram2').src = image;
//var rsDiagram = $("#rsDiagram").attr('src');
$('#imageData').val(image);
}
function ShowImage() {
//alert($('#MemberID').val());
$.ajax({
type: "GET",
url: "/NewMember/RSView/",
data: { MemberID: $('#MemberID').val() },
success: function (response) {
// console.log(response);
// alert(response);
$("#rsDiagram").attr('src', 'data:image/png;base64,' + response);
},
error: function (response) {
alert(response.responseText);
}
});
}// END Show Image
$(document).ready(function () {
});// END document Ready
</script>
IN Controller:
[HttpPost]
public ActionResult DigitalSignature()
{
string Message_ = "Signature Saved.";
MemberInfoViewModel obj = new MemberInfoViewModel();
try
{
NameValueCollection nvc = Request.Form;
string memberIDs = nvc["MemberID"];
var imageDatas = nvc["imageData"];
var member = memberService.GetByIdLong(Convert.ToInt32(memberIDs));
ViewData["CenterID"] = centerService.GetById(member.CenterID).CenterName;
ViewData["MemberID"] = member.MemberID;
ViewData["MemberCode"] = member.MemberCode;
imageDatas = imageDatas.Substring(22);
byte[] data = Convert.FromBase64String(imageDatas);
// test: Save image
string fileName = Guid.NewGuid().ToString() + ".png";
byte[] imageBytes = data;
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
ms.Write(imageBytes, 0, imageBytes.Length);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
image.Save(Server.MapPath("~/CapturedImages/" + fileName),
System.Drawing.Imaging.ImageFormat.Png);
//prphoto.ImageName = "/Uploads/" + fileName;
// END Save Image
// Get Image and Convert to jpg
// Assumes myImage is the PNG you are converting
string imageName = Server.MapPath("~/CapturedImages/" + fileName);//@"~/CapturedImages/" + fileName;
//var ifExist = System.IO.File.Exists(imageName);
var imageFile = System.IO.File.Open(imageName, FileMode.Open);
Image myImage = Image.FromStream(imageFile);
//myImage.Save(Server.MapPath("~/CapturedImages/" + fileName),
// System.Drawing.Imaging.ImageFormat.Jpeg);
string fileNameJPEG = "";
using (var b = new Bitmap(myImage.Width, myImage.Height))
{
b.SetResolution(myImage.HorizontalResolution, myImage.VerticalResolution);
using (var g = Graphics.FromImage(b))
{
g.Clear(Color.White);
g.DrawImageUnscaled(myImage, 0, 0);
}
myImage.Dispose();
imageFile.Close();
fileNameJPEG = Guid.NewGuid().ToString() + ".jpeg";
b.Save(Server.MapPath("~/CapturedImages/" + fileNameJPEG),
System.Drawing.Imaging.ImageFormat.Jpeg);
}
// END jpg
// Convert jpeg to byte Array and save
string imageNameJPEG = Server.MapPath("~/CapturedImages/" + fileNameJPEG);//@"~/CapturedImages/" + fileName;
//var ifExistJPEG = System.IO.File.Exists(imageNameJPEG);
var imageFileJPEG = System.IO.File.Open(imageNameJPEG, FileMode.Open);
var memoryStream = new MemoryStream();
imageFileJPEG.CopyTo(memoryStream);
var dataJPEG = memoryStream.ToArray();
imageFileJPEG.Close();
var objs = memberService.GetById(Convert.ToInt32(memberIDs));
objs.DigitalSignature = dataJPEG;
memberService.Update(objs);
// Delete png and JPEG file
System.IO.File.Delete(imageNameJPEG);
System.IO.File.Delete(imageName);
//END Delete
//var objs = memberService.GetById(Convert.ToInt32(memberIDs));
//objs.DigitalSignature = data;
//memberService.Update(objs);
}
catch (Exception ex)
{
return GetErrorMessageResult("Sorry, Please try again.");
}
ViewBag.Message = Message_;
return GetSuccessMessageResult("Signature Added.");
}
public ActionResult RSView(long MemberID)
{
var member = memberService.GetByIdLong(Convert.ToInt32(MemberID));
string fileToSend = Convert.ToBase64String(member.DigitalSignature);
return Json(fileToSend,JsonRequestBehavior.AllowGet);
}
var Center_List = string.Format("CenterList_{0}", (int)LoggedInOrganizationID);
var centerList = new List<DBCenterDetailModel>();
if (Session[Center_List] != null)
centerList = Session[Center_List] as List<DBCenterDetailModel>;
else
{
var param = new { OrgId = (int)LoggedInOrganizationID, OfficeId = SessionHelper.LoginUserOfficeID};
var alldata = ultimateReportService.GetDataWithParameter(param, "GetCenterData");
centerList = alldata.Tables[0].AsEnumerable()
.Select(row => new DBCenterDetailModel
{
CenterID = row.Field<int>("CenterID"),
CenterCode = row.Field<string>("CenterCode"),
OfficeID = row.Field<int>("OfficeID"),
OfficeCode = row.Field<string>("OfficeCode"),
OfficeName = row.Field<string>("OfficeName")
}).ToList();
Session[Center_List] = centerList;
}
-- one time table create
--CREATE TABLE InitialData (
-- RowNum int IDENTITY(1,1) NOT NULL ,
-- loan decimal (17, 2)
-- )
declare @sql varchar(max);
DECLARE @paramDefinition nvarchar(500);
DECLARE @sid int = 1;
DECLARE @RowSl INT
,@Count INT
SET @RowSl = 0
SET @Count = 6 -- (SELECT COUNT(*) FROM Tables)
WHILE @RowSl <= @Count
BEGIN
Set @sql = 'INSERT INTO InitialData SELECT ';
declare @ColName varchar(28);
Set @ColName= 'loan_' + Cast( format (@RowSl, '0#') as varchar(5)) +' ' ;
SET @sql = @sql + @ColName ;
SET @sql = @sql + ' FROM PRA_MN_RPT_TAB_XL_PD_Test WHERE RowNum =' + CAST( @sid AS nvarchar(2));
EXECUTE(@sql)
SET @RowSl += 1
END -- End While
SELECT MAX(loan) FROM InitialData;
Windows Screen Record WindowsKey+ Alt + R Recording Starts.