Tuesday, 29 March 2016

Load Base64 Images using jQuery and MVC

Configure RouteConfig:

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 = "Image", action = "Index", id = UrlParameter.Optional }
              );
    }

}

Add Controller: 

using System;
using System.IO;
using System.Web.Mvc;


namespace Base64Img.Controllers
{
public class ImageController : Controller
{
// GET: Image
public ActionResult Index()
{
return View();
}

[HttpGet]
public ActionResult GetBase64Image()
{
string path = "D:\\IMG_152236552973901.jpeg";

FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
byte[] data = new byte[(int)fileStream.Length];
fileStream.Read(data, 0, data.Length);

return Json(new { base64imgage = Convert.ToBase64String(data) }
, JsonRequestBehavior.AllowGet);
}
}
}


Associate a view to this Controller (ImageController)


@{
Layout = null;
}

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Loading base64 Image</title>


<script src="~/Scripts/jquery-1.10.2.min.js"></script>

<script language="javascript" type="text/javascript">
var imageUrl = "GetBase64Image";
var imgs = null;

$(document).ready(function () {

var displayImage = function (base64Data) {
var imag = "<img "
+ "src='" + "data:image/jpg;base64,"
+ base64Data + "'/>";

$("#dvImageHolder").html(imag)
};

$("#btLoadImage").click(function () {
if (imgs != null) {
displayImage(imgs.base64imgage);
return;
}

$.ajax({
cache: false,
type: "GET",
url: imageUrl,
contentType: 'application/json',
dataType: "json",
success: function (data) {
imgs = data;
displayImage(imgs.base64imgage);
},
error: function (xhr) {
alert("Error occurred while loading the image. "
+ xhr.responseText);
}
});
});

$("#btClearImage").click(function () {
$("#dvImageHolder").html("");
});
});
</script>
</head>
<body>
<div id="dvImageHolder"></div>
<div>
<button id="btClearImage">
Clear Image
</button>
<button id="btLoadImage">
Load Image
</button>
</div>
</body>
</html>


Cheers!!

Monday, 28 March 2016

Convert columns into rows in SQL Server

CREATE TABLE abc(Id INT IDENTITY(1,1), fn VARCHAR(2), mn VARCHAR(2), ln VARCHAR(2))
GO
INSERT INTO abc VALUES('D' , 'B', 'F')
GO
Select * FROM ABC
GO

-- Query
Declare @id int=1;
;WITH T
AS
(
SELECT * FROM (
SELECT fn, mn, ln, id FROM abc Where id=@id) T
UNPIVOT ( Items FOR N IN (fn, mn, ln))P
)
SELECT Items AS FullName
FROM T

-- It won't select Item if that is null.




Cheers!!

Wednesday, 25 November 2015

Generate XML from SQL Server data

Hi folks,

Its very easy to create xml using database fields as below:

SELECT 'A' AS GrandFather
,(
SELECT 'B' AS Father
,'C' AS Mother
,(
SELECT 'E' AS Daughter
,'F' AS Son
FOR XML Path('Childs')
,Type
)
FOR XML Path('Parents')
,Type
)

FOR XML PATH('Family')

----------------------------------
SELECT f.GF AS GrandFather
,(
SELECT f.Father AS Father
,f.Mother AS Mother
,(
SELECT f.Daughter AS Daughter
,f.Son AS Son
FOR XML Path('Childs')
,Type
)
FOR XML Path('Parents')
,Type
)
FROM Family f

FOR XML PATH('Family'), Type


Cheers!!!

Wednesday, 21 October 2015

Managing Task Scheduler from front end (Taskschd.msc)

Controlling is behaviour of Task Scheduler is very easy. Follow these steps:

Step 1:

Add Microsoft.Win32.TaskScheduler dll to your project. Download it if not available.

Step 2:

I guess if you workingin winform then take a datagridview.

Step 3:

Here the code part.

using Microsoft.Win32.TaskScheduler;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
 
    private void Form1_Load(object sender, EventArgs e)
    {
        dataGridView1.DataSource = AllTaskNames();
    }
     
public List<SchedulerModel> GetAllTasks()
{
List<SchedulerModel> TaskList = new List<SchedulerModel>();

using (TaskService ts = new TaskService())
{
var tst = ts.GetFolder(@"\Microsoft\MyTasks");

if (tst != null)
{
var tasks = tst.AllTasks;
foreach (var t in tasks)
{
SchedulerModel sM = new SchedulerModel();
sM.Name = t.Name;
sM.Status = t.State.ToString();
sM.LastRunTime = t.LastRunTime;
sM.NextRunTime = t.NextRunTime.ToShortDateString() == "1/1/0001" ? (DateTime?)null : t.NextRunTime;
TaskList.Add(sM);
}
}
}

return TaskList;
}

public void DisableAnyTask()
{
    TaskService ts = new TaskService();
    var t = ts.GetFolder(@"\Microsoft\MyTasks");

    if (t != null)
    {
        var tasks = t.AllTasks;
        foreach (var ee in tasks)
        {
            if (ee.Name.ToLower() == "task one")
            {
                if (ee.State.ToString() == "Running")
                {
                    ee.Stop();
                    ee.Enabled = false;
                }
            }
        }
    }
}

}
public class SchedulerModel
{
    public string Name { get; set; }
    public string Status { get; set; }
    public DateTime LastRunTime { get; set; }
    public DateTime? NextRunTime { get; set; }      
}
 
Step 4:

On Page_Load Call below written function As

dataGridView1.DataSource = GetAllTasks();


So, You have all tasks available of that particular location.
Note:

> You must have rights to access these task so, make sure you using Visual Studio as Administrator.

> Ctrl + R >> Taskschd.msc: here you have Task Scheduler window open you have to make a folder (MyTask)
 Path : Task Scheduler Library > Microsoft > MyTask
 MyTask: Name of you folder where you have to create your tasks.


Thanks!

Cheers!!!   

Friday, 18 September 2015

Return parameter in sql server



Create PROCEDURE USP_IsSearchFinished @Id INT
AS
DECLARE @r BIT;

SELECT @r = COUNT(1)
FROM Table1 AP WITH (NOLOCK)
INNER JOIN Table2 SB WITH (NOLOCK) ON AP.ID = SB.Id
WHERE AP.ID = @Id
AND AP.Flag = 'Finished'

RETURN @r
GO


-- How to execute it in sql server

DECLARE @t BIT
EXEC @t = USP_IsSearchFinished 1
PRINT @t


-- Now, get that in ADO.NET

 public int IsSearchFinished(int id)
{
    int _id = 0;
    try
    {
        using (SqlConnection connection = new SqlConnection(conString))
        {
            using (SqlCommand command = new SqlCommand("USP_IsSearchFinished", connection))
            {
                connection.Open();
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.AddWithValue("@Id", id);
                
                SqlParameter returnParameter = command.Parameters.Add("RetVal", SqlDbType.Bit);
                returnParameter.Direction = ParameterDirection.ReturnValue;
                command.ExecuteNonQuery();

                _id = (int)returnParameter.Value;                        
            }
        }
    }
    catch
    {
    }
    return _id;
}

Cheers!