I want to show Components in a tabs , so first of all create few components. In this project we have three components, First View Component public class AllViewComponent : ViewComponent { private readonly UserManager<ApplicationUser> _userManager; public AllViewComponent(UserManager<ApplicationUser> userManager) { _userManager = userManager; } public async Task<IViewComponentResult> InvokeAsync() { List<StudentViewModel> allUsers = new List<StudentViewModel>(); var items = await _userManager.Users.ToListAsync(); foreach (var item in items) { allUsers.Add(new StudentViewModel {Id=item.Id, EnrollmentNo = item.EnrollmentNo, FatherName = item.FatherName, Name = item.Name, Age = item.Age, Birthdate = item.Birthdate, Address = item.Address, Gender = item.Gender, Email = item.Email }); }
In this Article, I will show you, How to create Rss feeds for your website article. Rss feed is a xml file so in this article, i will create a XML file and Data pick from database table. Rss contains differenet filds link channel , article title, article description, link of the article and many more things. By using Rss feeds we can improve our search engine results , i mean to say we can improve our SEO of the website.
How to Start it: First of all create two table in the database, These are the fields which are mentioned below. If you are the beginners then i will provide you a short video through this you can create both table easily.
Also i will provide you scripts of table, through these you can directly create table into your database.
CREATE TABLE [dbo].[Channel] (
CREATE TABLE [dbo].[Channel] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Title] NVARCHAR (100) NULL,
[Description] NVARCHAR (MAX) NULL,
[Link] NVARCHAR (100) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
CREATE TABLE [dbo].[Feeds] (
[Id] UNIQUEIDENTIFIER NOT NULL,
[ChannelID] INT IDENTITY (1, 1) NOT NULL,
[Title] NVARCHAR (100) NULL,
[Description] NVARCHAR (MAX) NULL,
[Link] NVARCHAR (100) NULL,
[PDate] NVARCHAR (100) NULL,
PRIMARY KEY CLUSTERED ([ChannelID] ASC)
);
Add a Generic handler file, In it you have a ProcessRequest method. In This method you have to create your logic , I mean to say put your business logic code. You can copy the mentioned code and paste into your Generic Handler file.
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
using System.Xml;
using System.Data;
using System.Data.SqlClient;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
createFeed(context, 1);
}
private void createFeed(HttpContext context,int chnlID)
{
using (XmlTextWriter writer=new XmlTextWriter(context.Response.OutputStream,System.Text.Encoding.UTF8))
{
DataTable dtable = GetTable("select * from [Channel] where Id=@channelID", chnlID);
writer.WriteStartDocument();
writer.WriteStartElement("Rss");
writer.WriteAttributeString("version", "1.0");
writer.WriteStartElement("Channel");
writer.WriteElementString("Title", dtable.Rows[0]["Title"].ToString());
writer.WriteElementString("Description", dtable.Rows[0]["Description"].ToString());
writer.WriteElementString("Link", dtable.Rows[0]["Link"].ToString());
//writer.WriteElementString("Title", dtable.Rows[0]["Title"].ToString());
dtable = GetTable("select * from [Feeds] where ChannelID= @channelID", chnlID);
foreach (DataRow item in dtable.Rows)
{
writer.WriteStartElement("Item");
writer.WriteElementString("Title", item["Title"].ToString());
writer.WriteElementString("Description", item["Description"].ToString());
writer.WriteElementString("Link", item["Link"].ToString());
writer.WriteElementString("Pub-Date", item["PDate"].ToString());
writer.WriteElementString("UniqueId",item["Id"].ToString());
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
}
}
private DataTable GetTable(string qry,int chnlID)
{
DataTable dt=new DataTable();
SqlConnection con = new SqlConnection();
con.ConnectionString=@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True";
con.Open();
SqlCommand cmd = new SqlCommand(qry, con);
cmd.Parameters.AddWithValue("@channelID", chnlID);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
return dt;
}
public bool IsReusable {
get {
return false;
}
}
}
Comments
Post a Comment