How to make custom Task Scheduler in asp.net c# using thread

In asp.net there are needs for performing few activities periodically. For that  we can use some class libraries or third party component to schedule a task or function to execute periodically.

Recently i found following simplest way to execute periodically any code.

Suppose you have  a class and routine as follow in App_Code/CS,

public class ClassABC
{
public static void SomeFunctionToRunPeriodically()
{
try
{
System.IO.File.WriteAllText(System.Web.Hosting.HostingEnvironment.MapPath(“~/LatestRunSaved.txt”), “Last Run of function at : ” + DateTime.Now.ToString() + Environment.NewLine);
}
catch (Exception ex)
{
string t = ex.Message;
}
System.Threading.Thread.Sleep(20000);
SomeFunctionToRunPeriodically();    //calling self after interval

}
public ClassABC()
{
//
// TODO: Add constructor logic here
//
}
}

If you notice in above function then its calling to itself after interval.

Now in global application file ‘global.asax’  inside application start event use following lines to create a new thread based call to a function above.

void Application_Start(object sender, EventArgs e)
{
System.Threading.Thread obj = new System.Threading.Thread(new System.Threading.ThreadStart(ClassABC.SomeFunctionToRunPeriodically));
obj.Name = “AnyTestName”;
obj.IsBackground = true;
obj.Start();
}

New thread based function call will run until your application is running in IIS process, It is a background process. Other routine things on site will work normally without problem.

Advertisements

Sticky Div, Area that remains at top on scroll of page

If you want your site header or  menu or other section(div) to remain at top of page when user scrolls a page. You can try with following jquery code.

It will not workin in IE. So first flag need check if browser is IE or not.

if (!IsIE) {
jQuery(document).ready(function() {
jQuery(window).scroll(SomeScrollResponder);
});
function SomeScrollResponder() {
var tmpScroll = $(window).scrollTop();

//when page scrolls 100 px then following  code will run
if (parseInt(tmpScroll) > 100) {
jQuery(“#divTop”).css(“position”, “absolute”);
jQuery(“#divTop”).css(“top”, (parseInt(tmpScroll) – 1) + “px”);  //-1 will hide top border
jQuery(“#divTop”).css(“width”, (parseInt($(document).width()) – 60) + “px”);

}
else {
jQuery(“#divTop”).css(“position”, “relative”);
jQuery(“#divTop”).css(“top”, “0px”);
}
}
}

In above example “divTop” is a div that will display at top, overlapping on page.

 

Embed Gujarati font in website / Embed any other font in web page

Use following definition, which is pointing to a font file located on web server, and a class that has ‘font-family’ attribute with your custom defined font.

@font-face
{
font-family: “myguj-font”;
src: url(“Gujrati-Saral-1.ttf”) format(“truetype”);
font-weight: normal;
font-style: normal;
}
.myguj
{
font-family: “myguj-font”;
}

And your display area need just to point to a style class as follow:

<div class='myguj'>
This text will appear in Gujarati Font.
</div>

Find and download TTF, EOT, SVG, WOFF kind of font files and save in web folder, then you can refer via style sheet(css) file and embed any kind of font in your web page.

My personal website Siddharth Borania’s Personal Website

LINQ basic query samples in csharp asp.net with join

Assuming “db” is considered as databasecontext object

/////// typical query with condition that returns annonymous object ///////////
var contacts =
from customer in db.Customers
where customer.Name.StartsWith(“A”) && customer.Orders.Count > 0
orderby customer.Name
select new { customer.Name, customer.Phone };

/////// get count with running query///////////
var query = (from o in Order
where CustomerID = 2
select o).Count();

/////////////// inner join (matching in both only) //////////////

var cr = from c in MyDatabase.GetReadOnlyContext().tblCategories
join p in MyDatabase.GetReadOnlyContext().tblProducts on c.CategoryId equals p.CategoryId
select new { c.CategoryName, p.ProductName };

//////////////// left outer joing

var crForLeftOuterJoin = from cat in dc.tblCategories
join pro in dc.tblProducts
on cat.CategoryId equals pro.CategoryId
into xname
from pro in xname.DefaultIfEmpty()
select new {
CAP_Cat = cat.CategoryName,
CAP_Product = pro == default(tblProduct) ? “(no product)” : pro.ProductName
};

//////// getting rows from table as LIST collection /////////////
List lstCat= dc.tblCategories.ToList();

//////// getting rows from table as Array /////////////
tblCategory[] arrCat= dc.tblCategories.ToArray();

///////////////seeking particular element/single element from query ///////////////////

var firstproduct = (from product in db.Products
where product.Category.CategoryName == “Beverages”
select product
).AsEnumerable().ElementAt(0);

Find number of rows in table using cursor in SQL

Regarding MSSQL,

Following code uses sys.objects table to retrieve ‘table names’, and running cursor on it to loop through each tables, then used system procedure ‘sp_executesql‘ to run a simple query to find number of records in it.

declare @tblname as nvarchar(200)
declare curForCount cursor for
select name from sys.objects where type=’u’ and name ‘sysdiagrams’

OPEN curForCount
fetch next from curForCount
into @tblname
WHILE @@FETCH_STATUS=0
BEGIN

declare @query nvarchar(1000);
set @query=’select ”’ + @tblname + ‘ — ” + cast(count(*) as nvarchar(20)) from ‘ + @tblname

exec sp_executesql @query

fetch next from curForCount
into @tblname
END
CLOSE curForCount
DEALLOCATE curForCount

 

Other Code stuff from Siddharth Borania:

LINQ queries with join in c#

https://siddharthboraniait.wordpress.com/2012/09/06/linq-query-in-csharp-asp-net-join