રક્ષા બંધન

એક પવિત્ર દિવસ, એક પવિત્ર સબંધ. આ દિવસે બહેન ભાઈની રક્ષા માટે પ્રાથના કરે અને ભાઈ બહેનને ભેટ અને આ જીવન રક્ષા કરવાનું, બહેનની સારી ખરાબ બધી તકલીફમાં સાથ આપવાનું વચન આપે. ભારત દેશ, રઘુ વંશનો દેશ છે એટલે કે “રઘુ કુલ રીત સદા ચલી આવી, પ્રાણ જાય પણ વચન ના જાય”. ભાઈએ બહેન ને આપેલું વચન આખી જિંદગી યાદ રાખી ને નિભાવે.

એકે સુતરના તાંતણે બંધાયેલો આ “પ્રેમ” છે અને આ “પ્રેમ” એવો કે ભાઈ-બહેન નું દિલ ખુશીઓં થી ભરી દે છે.

બાળપણમાં આ દિવસે મિત્રો વચ્ચે સરખામણી થાય, કોના હાથમાં સૌથી વધારે રાખડી છે, કોને સૌથી વધારે બહેન છે. જેના હાથ માં સૌથી વધારે રાખડી હોય, એ બધા મિત્રો વચ્ચે પોતાનો કોલર ઉંચો કરીને ચાલે. આડા દિવસ એ બહેન ને એક રમકડું પણ ના અડવા દેતો હોય એ ભાઈ આ દિવસ એ બહેન મનગમતી વસ્તુ આપવામાં અચકાઈ નહિ. આ નિસ્વાર્થ પ્રેમ છે ભાઈ બહેન વચ્ચેનો.

પણ આ જ બાળક જયારે યવાનીના ઉંબરે પગ મુકે છે, બહેન કરતા અને મિત્રમાં (Girl Friend) વધારે રસ પડે છે ને અને મિત્રો વચ્ચે સરખામણી કોલેજ Canteen માં કરે કોને કેટલા Friendship Belt હાથ પર બાંધ્યા છે. હા, મિત્રો ભૂલી ના જતા ૨૦૧૭માં, “Friendship Day” ના બીજા જ દિવસે રક્ષાબંધન છે.

મારી આ વાત વાંચીને, બધાને પોતાના કોલેજના દિવસો યાદ આવી ગયા હશે અને જે અત્યારે કોલેજ કાળમાં હશે એને ડર લાગવા લાગ્યો હશે કે કોલેજ ની કોઈ છોકરી Friendship Belt ના બદલે રાખડી તો નઈ બાંધી જાય ને.

છોકરો મોટો થઇ એટલે બાપનો મિત્ર બની જાય. બાપએ એની સાથે એક મિત્ર બનીને વાત કરવી. મિત્ર બની ને સલાહ આપવી તો જ દીકરો સાંભળે. બાકી હવાજ નો દીકરો કોઈના બાપનું ના સાંભળે.

એવી જ રીતે મારા મિત્રો છોકરી મોટી થાય એટલે એને નાની બહેન ની જેમ નહિ પણ એક મિત્ર તરીકે સાંભળવી, એક મિત્ર તરીકે અની ઈચ્છા, આકાંશા, મહત્વાકાંક્ષા સાંભળવી અને એને માન આપવું, જ્યાં એ ખોટી હોય ત્યાં એને એક મિત્ર બનીને સમજાવી. ખાસ તો આપડા રુડીચુસ્ત વિચારો માંથી એને મુક્તિ આપવી, દુનિયામાં કશું કરી બતાવવા માટે એને ભણવા,પહેરવા અને ફરવા ની છૂટ આપવી.

કેટલાક યુવાનો આ પોસ્ટ વાંચી ને વિચારમાં પડશે, બહેન ને મિત્ર અને મિત્રને બહેન કેમ કરી ને મનાય. મારા મિત્રો, પત્ની/પ્રેમિકા એક જ હોય બાકી બધી બહેન અને મિત્ર જ હોય એટલે વધારે વિચાર કરશો નહિ. “Happy Rakhi Day and Happy Friendship Day”

Dynamically add rows and html controls in table using jQuery

How to add rows dynamically in HTML table with textbox and textarea controls. Example: Download

<html>
<head>
<title>Table Dynamic Row Add Delete Demo</title>
<script src="https://code.jquery.com/jquery-3.2.1.js"
integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE="
crossorigin="anonymous"></script>
</head>
<body>
<div>
<table id="tbl1">
<thead>
<tr>
<th>
Family
</th>
<th>
Address
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="text" id="txtFamil_01" name="txtFamily_01" />
</td>
<td>
<input type="text" id="txtAddress_01" name="txtAddress_01" />
</td>
</tr>
<tr>
<td>
<textarea id="txtFamil_02" name="txtFamily_02"></textarea>
</td>
<td>
<textarea id="txtAddress_02" name="txtAddress_02"></textarea>
</td>
</tr>
</tbody>
</table>
<br />
<button type="button" id="btnAddNewRow">Add New Row</button>
<button type="button" id="btnSave" name="btnSave">Save</button>
</div>
<script type="text/javascript">
$(document).ready(function () {
$("#btnAddNewRow").on("click", function () {

var $newRows = $get_lastID();

$(“#tbl1>tbody”).append($newRows);

});

$get_lastID = function () {
var $id = $(‘#tbl1 tbody tr:last-child td:first-child textarea’).attr(“name”);
$lastChar = parseInt($id.substr($id.length – 2), 10);
$lastChar = $lastChar + 1;
var $newRows=””;
$newRow1 = “<tr> \
<td><input type=’text’ name=’txtFamily_0″+ $lastChar + “‘ /></td> \
<td><input type=’text’ name=’txtAddress_0” + $lastChar + “‘ /></td> \ </tr>”

$newRow2 = “<tr> \
<td><textarea type=’text’ name=’txtFamily_0″+ ($lastChar + 1) + “‘></textarea></td> \
<td><textarea type=’text’ name=’txtAddress_0” + ($lastChar + 1) + “‘></textarea></td> \ </tr>”

$newRows = $newRow1+$newRow2;

return $newRows;
}

$(“#btnSave”).on(“click”, function () {
$(“#tbl1 tbody tr”).each(function (i, tr) {

var famil1, famil2, address1, address2;

if (i % 2 === 0) { /* textbox find here*/
famil1 = $(this).find(‘td’).eq(0).find(‘input’).val();
famil2 = $(this).find(‘td’).eq(1).find(‘input’).val();
alert(famil1 + ” ” + famil2);
}
else { /* textarea find here */

address1 = $(this).find(‘td’).eq(0).find(‘textarea’).val();
address2 = $(this).find(‘td’).eq(1).find(‘textarea’).val();
alert(address1 + ” ” + address2);

}

});

});
});
</script>
</body>
</html>

CSS style problem with MVC rendered checkboxes using MVC helper

I have faced the issue with CSS for checkboxes in asp.net mvc. Below is mvc code.


 @Html.CheckBoxFor(model => model.GroupClosed)
  <label for="GroupClosed" class="block">
                            Group Closed
                        </label>

It will render as below:


 <div class="checkbox clip-check check-primary">
                        <span class="control-label" style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
                        <input id="GroupClosed" name="GroupClosed" type="checkbox" value="true"><input name="GroupClosed" type="hidden" value="false">
                        <label for="GroupClosed" class="block">
                            Group Closed
                        </label>
                    </div>                     

Before modify the css file as below.


.clip-check input[type="checkbox"]:checked + label:before,
 {
  border-width: 10px;
}

After modify:


.clip-check input[type="checkbox"]:checked + label:before,
.clip-check  input[type="checkbox"]:checked + input[type="hidden"] + label::before {
  border-width: 10px;
}

Note that the bold line contains the input[type=”hidden”] which identifies the hidden checkbox and solve the issue. I have added this line and make changes according to css has been written in css file. Happy 🙂

નિર્માની પુરુષ

જુન ૨૦૧૬, એક અઠવાડિયા પેહલા જ નક્કી થઇ ગયું હતું કે અમે પાંચ મિત્રો પૂજ્ય મહંત સ્વામી ને મળવા તીથલ જઈશું. પ્લાન પ્રમાણે જ મેં શુક્રવારે અડધી રાજા લઇ ને એક્ષપ્રેસ હાઈવે પહોચી ગયો. પણ દક્ષેશ મને લેવા અમદાવાદ ના આવી શક્યો એટલે હું બસ માં ઘરે, આણંદ પહોચી ગયો. પછી ૮.૩૦ વાગે અમે પાંચ મિત્રો તીથલ જવા નીકળ્યા. રાતે ૨.૦૦ વાગે અમે મંદિર પહોચ્યા ને એક સ્વામી સાથે વાત કરી તો ખબર પડી કે પૂજાય મહંત સ્વામી તો સેલવાસ છે. સ્વામી એ કીધું અત્યારે રાતે ના જવાય રાત અહિયાં આરામ કરો ને સવાર માં વેહલા નીકળી જજો એટલે મળી લેવાશે. અમે રાત તીથલ રોકાયા સવાર માં ભગવાન ના દર્શન અને દરિયા ના દર્શન કરી ૮.૩૦ વાગ્યા ની આજુબાજુ સેલવાસ જવા નીકળ્યા. ૧૧.૦૦ વાગે મુલાકાત નો સમય હતો. ઠાકોરજી ના દર્શન કરીને અમે સ્વામી ની રૂમ આગળ જઈને બેસી ગયા ને બધા મિત્રો વાત કરવા લાગ્યા. ૧૧.૩૦ વાગે સ્વામી થી મુલાકાત થઇ આશીર્વાદ લીધા ને બધા બહાર આવી ગયા પણ અમે સ્વામી સાથે વાત કરી ને એટલા ખુશ હતા કે સ્વામી સાથે ગ્રુપ ફોટો પડવાનો રહી ગયો. એટલે અમે સેવક સંત ને વાત કરી, સ્વામીના જમવાનો સમય થઇ ગયો હતો છતાં સ્વામી એ કીધું છોકરાઓ ને આવદો.

અમે બધા મિત્રો રૂમમાં ગયા. સ્વામી બેઠા હતા અમે પાછા વાતો કરવા લાગ્યા સ્વામી અમને શાંતિથી સંભાળતા. પછી અમે કીધું સ્વામી અમારે ગ્રુપ ફોટો પડાવો છે. સ્વામી તરત ઉભા થઈ ગયા ફોટો પડવા માટે અને અમને ખબર ના રહી કેમ કે અમે ફોટો પાડે એવા ભાઈ ની શોધમાં હતા ને વાતો કરતા હતા. એટલી વાર માં તો સ્વામી ની આગળ જ ટીપોઈ પડી હતી એ સ્વામી ખાસડવા લાગ્યા કેમ કે જયારે ફોટો પાડવા અમે પાંચ મિત્રો ઉભા રેહતા તો ટીપોઈ ના લીધે ઉભા ના રહી સકતા ને અમારે ખસેડવી જ્ પડતી. અમારે ખસેડવી ના પડે એટલે સ્વામી જાતે જ ખસડવા લાગ્યા. આટલા મોટા પુરષ, જેની નીચે હજારો સંત્તો ને અનુયાયો છે. જેમાં થી તો કેટલાય લોકો I.A.S, નેતા અને બીજી કેટલી ઉંચી પદવી પર હશે જે બધા સ્વામી નો પડ્યો બોલ જીલી લે છે ને એ જ સ્વામી અમારા જેમને જીવન માં કોઈ મોટું કામ નથી કર્યું, કોઈ આવી મોટી પદવી નથી મેળવી તો પણ આટલું ધ્યાન રાખી હસતા મોડે બધી ઈચ્છા પૂરી કરે. આવું કોણ કરી શકે? કેટલાય લોક ને ફરિયાદ હોય છે સ્વામી મારી સામે તો જોતા જ નથી. પણ હું મારા અનુભવ પર થી કહું સ્વામી સામે જોવે જ છે બસ એ નજર અંતર ની હોય છે. આવા નિર્માની પુરષ ને સાધુ આપડા ગુરુ છે, આપડા કેટલાય સારા કર્મોનું ફળ હશે. એટલે હું બધા સત્સંગી ને એક જ પ્રાથના કરું ક્યારે અહંમ ને આપડો શિકાર કરવા ના દો. ભગવાન સ્વામીનારાયણ ના ચરણો માં પણ એ જ પ્રાથના અહંમ, માયા થાકી રક્ષા કરો ધર્મ, જ્ઞાન, મોક્ષ અને અર્થ સિદ્ધી આપો. એ મેળવા માં આવતી દરેક પ્રકાર ની તકલીફ થી લડવા માં બુધિ અને બળ આપો. જય સ્વામીનારાયણ!!

7 points will taking care of your life

On 12 Feb 2017, I met Vishwas Jambu and Nikhileswarananda in a conference at Anand the Milk City. I like most Vishwas’ speech. He shared his thoughts which can make everyone’s life better that’s my belief. His thought perfectly match with mine that is the reason I would like to share it to everyone.

  • Focus on major things not minor things in life. For example, you want to go to watch the movie with a friend not girl friend or boy friend, ticket is booked. Your dad is rejected to give a car. You have bike. In that case movie is important thing not a car and reach at time to theater. 🙂
  • Run towards to fear. One of my friend get the job but there is a condition if his performance won’t good company will terminate in probation period. Probation period time limit is three months. He has no other job. However, he feels fear to accept this job. In that case, I think he should accept the challenge by over ruled to fear.
  • Be first, be fast and be fantastic. Today’s day to day life is very fast. In that if you are not think different, not earn well and not develop your personality. The world will reject you from every where. So think different, high and do well so the world gives you respect.
  • Art of distractions: For example, when you do serious task in your office/home or any place and your phone is ringing. It is distracting you from your work. You can keep silent your phone for that much time so it will not distracting you.
  • Intention
  • Give 60 minutes to your life to do exercise, reading and keep silence to better health.
  • Vertical alignment (Decide Priorities) is really needed in everybodies life.
      1. Health
      1. God/Guru (Spiritual Activities)
      1. Job/Business/Profession – income source
      1. Family
      1. Hobby

    Hope you like this blog. Thank you for reading 🙂

Generate and Download PDF file on Ajax Post method, C#

Requirements: On ajax post, save data to database, generate invoice and download as PDF file. There are many open source packages available to generate PDF file. So I’m not going describe that using which paid/free package is used to generate PDF file. I am going to describe the trick how can download the generated PDF file without saving on hard drive.

HomeController.CS


public class HomeController : Controller
    {
        public ActionResult Index()
        {         
            return View();
        }

        public ActionResult Download()
        {
            //using (var ms = new MemoryStream())
            //{
                //using (var document = new Document(PageSize.A4, 50, 50, 15, 15))
                //{
                //    PdfWriter.GetInstance(document, ms);
                //    document.Open();
                //    document.Add(new Paragraph("HelloWorld"));
                //    document.Close();
                //}
                //Response.Clear();
                ////Response.ContentType = "application/pdf";
                //Response.ContentType = "application/octet-stream";
                //Response.AddHeader("content-disposition", "attachment;filename= Test.pdf");
                //Response.Buffer = true;
                //Response.Clear();
                //var bytes = ms.ToArray();
                //Response.OutputStream.Write(bytes, 0, bytes.Length);
                //Response.OutputStream.Flush();
           // }

            return View();
        }

        [HttpPost]
        public ActionResult Save()
        {

// write code here to save the data in database. 
            var fName = string.Format("MYPDF-{0}.pdf", DateTime.Now.ToString("s"));
            using (var ms = new MemoryStream())
            {
                using (var document = new Document(PageSize.A4, 50, 50, 15, 15))
                {
                    PdfWriter.GetInstance(document, ms);
                    document.Open();
                    document.Add(new Paragraph("HelloWorld"));
                    document.Close();
                }

                var bytes = ms.ToArray();              
                Session[fName] = bytes;
            }

            return Json(new { success = true, fName }, JsonRequestBehavior.AllowGet);
            //return View();
        }
         public ActionResult DownloadInvoice(string fName)
         {
             var ms =  Session[fName] as byte[] ;
             if(ms == null)
                 return new EmptyResult();
             Session[fName] = null;
             return File(ms, "application/octet-stream", fName);
         }
    }

Index.cshtml

 <input type="button" id="btnSave" value="Save & Download PDF" />
 
 $(document).ready(function () {
 $("#btnSave").click(function () {
 $.ajax({
 type: 'POST',
 url: "/home/save",
 dataType: "json",
 success: function (resultData)
 {
 if (resultData.success) {
 window.location = "/home/DownloadInvoice" + "?fName=" + resultData.fName;
 }
 }
 });
 })
 })
 

On ajax post method, data will save into the database. Here Save is a post method. Check the HomeController.CS file. Generate file and save an array of byte in Session. In JSON result, send the name of file. Ajax post method retrieve the data and using window.location send request to server to download the file. Now, check DownloadInvoice method in HomeController.cs.

Thank you for reading this post.

Most important topics

Static Constructor

  • A static constructor is used to initialize the static data once or performed an action to once only.
  • A static constructor does not take access modifiers or have parameters.
  • A static constructor is called automatically to initialize the class before the first instance is created or any static members are referenced.
  • User has no control when static constructor executed. In real life scenario static constructor use when class write the log file.

Is MVC Design Pattern or Architectural Pattern?
MVC is an architectural pattern. ASP.NET MVC is a part of ASP.NET Web application framework.

Caching
Caching is a use to improve performance of website by storing frequently access data and reusing that data.
Advantages: Reduce hosting server round trip. Reduce database server round trips. Reduce network traffic.
Disadvantages: Avoid caching if data unique per user. Avoid caching if database server has not enough RAM. For caching of dynamic contents that change frequently, define a short cache–expiration time rather than disabling caching.

Delegates
A delegate is a reference type variable that holds the reference to a method. The reference can be changed at runtime.Delegates are especially used for implementing events and the call-back methods. All delegates are implicitly derived from the System.Delegate class.

Difference between Web Services, WCF and Web API
Web Services

  • It supports only http protocol.
  • It is based on SOAP and return data in XML format only
  • It can be host only on IIS

WCF

  • It supports http, https, tcp, MSMQ protocol.
  • It is based on SOAP and return data in XML format only
  • It can be hosted with in the applicaion or on IIS or using window service
  • WCF Rest support XML, JSON and ATOM data format.

Web API

  • It supports http protocol.
  • It supports MVC features such as routing, controllers, action results, filter, model binders, IOC container or dependency injection, unit testing that makes it more simple and robust.
  • It can be hosted with in the application or on IIS.
  • WCF Rest support XML, JSON data format.

Components of WCF
There are three main components in WCF.

  • Service Class
  • Hosting Environment
  • End Point

Service Class
Service Contract attribute define saying which application interface will be exposed as a service.

[ServiceContract()]
public interface IServiceGetResult
{
}

Operation Contract
Operation Contract dictates which methods should be exposed to the external client using this service.

[ServiceContract()]
public interface IServiceGetResult
{
[OperationContract()]
decimal GetPercentage(Student model);
}

Data Contract
Data Contract attributes defines which type of complex data will be exchanged between the client and the service. They determine which parameters to be serialized. When you are using simple data types like int, it is not necessary that you need to mark the data contract attribute. Because you will always find matching types on the client. However, complex structure like one shown in the below code snippet you will need to define a data contract. Remember data contract define how this data will be passed during transmission. In short data contract attribute define how data will be serialized will transmission.

As data contract are all about serialization you need to import System.Runtime.Serialization name space.
[DataContract]
public class Student
{
int StudentId {get;set;}
string GrNo {get;set;}
string Name {get;set;}
}
public class serviceGetResult: IServiceGetResult
{
public decimal GetPercentage(Student model)
{
decimal percentage=100;
//get percentage stored procedure call or calculation here.
return percentage;
}
}

Hosting Environment
Self-hosting the service in his own application domain. The service comes in to existence when you create the object of Service Host class and the service closes when you call the Close of the Service Host class.

Host in application domain or process provided by IIS Server.

Host in Application domain and process provided by WAS (Windows Activation Service) Server.

End Points
WCF offers its services to its client using an endpoint. An endpoint comprises of three key elements, the address, binding and contract.

WCF endpoints provide the necessary resources and directions, which help clients to communicate with the various services WCF offers.

We commonly refer the three elements (attributes) as ABC.

01) A stands for Address
02) B stands for Binding
03) C stands for Contract

UK Postcode Validation

Regular expression for JavaScript

var regPostcode = /^([a-zA-Z]){1}([0-9][0-9]|[0-9]|[a-zA-Z][0-9][a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([ ])([0-9][a-zA-z][a-zA-z]){1}$/;

var result = regPostcode.test(SearchTerm);

if (!result) {
alert(“Please enter valid postcode”);
return false;
}

Regular expression for C#

string regPostcode = “([a-zA-Z]){1}([0-9][0-9]|[0-9]|[a-zA-Z][0-9][a-zA-Z]|[a-zA-Z][0-9][0-9]|[a-zA-Z][0-9]){1}([ ])([0-9][a-zA-z][a-zA-z]){1}”;

System.Text.RegularExpressions.Regex regx = new System.Text.RegularExpressions.Regex(regPostcode);

if(!regx.IsMatch(address0.PostalCode))
{
results.Add(new ValidationResult(String.Format(“Please enter valid postcode for {0}.”, addressRank)));
}

You can check the regular expression at http://www.regexplanet.com/

Postal code format and sample postcodes are as below.

Format Example
A9 9AA S1 1AA
A99 9AA M60 1NW
AA9 9AA CR2 6XH
AA99 9AA DN55 1PT
A9A 9AA W1A 1HQ
AA9A 9AA EC1M 1BB

Cube and Rollup Operator in SQL Server 2008

CUBE operator is used with Group by clause. It use to get the subtotal and grand total of all permutation of columns provided by the CUBE operator.

ROLLUP operator is used with Group by clause. It use to get the subtotal and grand total of a set of columns provided by the ROLLUP operator.

For example,


Declare @tmpTable table(Product varchar(10), Shop varchar(10), Quantity int)
insert into @tmpTable (Product, Shop, Quantity) values ('Tea', 'Tea-Post',100)
insert into @tmpTable (Product, Shop, Quantity) values ('Tea', 'GH2',90)
insert into @tmpTable (Product, Shop, Quantity) values ('Puva', 'Tea-Post',10)
insert into @tmpTable (Product, Shop, Quantity) values ('Puva', 'GH2',25)
insert into @tmpTable (Product, Shop, Quantity) values ('Lassi', 'Anand',2)
insert into @tmpTable (Product, Shop, Quantity) values ('Lassi', 'Nadiad',20)
insert into @tmpTable (Product, Shop, Quantity) values ('Lassi', 'Khambhat',50)
select * from @tmpTable

SELECT Product,Shop,sum(Quantity) FROM @tmpTable GROUP BY ROLLUP (Product,Shop)

SELECT Product,Shop,sum(Quantity) FROM @tmpTable GROUP BY CUBE (Product,Shop)

Result would be

Cube_Rollup_SQL