Tuesday, July 19, 2022

Access in Different Database

 Collect Data from different databases. 



-- use gBankerSMSDb



DECLARE @Counter INT , @MaxId INT

Declare @db table(DataBaseID int,DBNAME varchar(50))

Insert into @db

SELECT dbid  DataBaseID,DB_NAME(dbid) DBNAME

FROM

    sys.sysprocesses

WHERE 

    dbid > 0

and DB_NAME(dbid) not in('master','msdb','tempdb','model','distribution')

and left(DB_NAME(dbid),1)<>'R'

group by dbid;


SELECT  @Counter = min(DataBaseID) , @MaxId = max(DataBaseID) 

FROM @db

WHILE(@Counter IS NOT NULL

      AND @Counter <= @MaxId)

BEGIn

Declare @vDataBaseName varchar(60), @MaxMemberId bigint;



select @vDataBaseName=DBNAME from @db where DataBaseID=@Counter


 exec ('insert into MemberPortal([MemberID], [MemberCode], [MemberName], [RefereeName], [PhoneNo], [SmartCard], [OtherID], [NationalID], [OrgID], [UnionCode], [BirthDate], [CreateUser], [CreateDate], [DBID]

)

select [MemberID], [MemberCode],FirstName [MemberName], [RefereeName], [PhoneNo], [SmartCard],OtherIdNo [OtherID], [NationalID], [OrgID], [UnionCode], [BirthDate], [CreateUser], [CreateDate],'+@Counter+' [DBID]

 from '+ @vDataBaseName +'.dbo.member'

 )

 exec ('SELECT'+ @MaxMemberId + '= MAX(MemberId) FROM'+  @vDataBaseName +'.dbo.member')


 IF Exists( SELECT 1 FROM MemberPortalMaxID WHERE OrgName = @vDataBaseName )

 BEGIN

UPDATE MemberPortalMaxID SET MaximumMemberId = @MaxMemberId WHERE OrgName = @vDataBaseName

 END 

 ELSE

 BEGIN

INSERT INTO MemberPortalMaxID 

( [MaximumMemberId]

      ,[OrgName]

      ,[isActive]

      ,[UpdateDate]

  ) VALUES (@MaxMemberId, @vDataBaseName, 1, GETDATE());


 END


SET @Counter  = @Counter  + 1        

END



--select * from DemographicRegion

Tuesday, July 5, 2022

None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder'

 


Need to register forcefully. In App_Start folder file Bootstrapper register the new created service forcefully.

Add this line.

  builder.RegisterType<UltimateReportServiceMemberPortal>().As<IUltimateReportServiceMemberPortal>().InstancePerRequest();




 

Wednesday, June 15, 2022

Site Not Reach

 



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/'






Monday, June 13, 2022

Age Duration Calculator SQL

 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 

Age Calculator Javascript

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

Wednesday, June 8, 2022

Update Employee Table

  


---   

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    

Tuesday, May 31, 2022

Canvas to JPEG for Crystal Report C# MVC

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

        }













Screen Record

 Windows Screen Record WindowsKey+ Alt + R Recording Starts.