12 August 2013

Nested List in C#

Nested List in C#

Consider there are two Class

 public class Person
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }

        public List< Addresses > { get; set; }

    }

    public class Address
    {
        public string Line1 { get; set; }
        public string Line2 { get; set; }
        public string ZipCode { get; set; }
        public string City { get; set; }
        public string State { get; set; }
        public string Country { get; set; }
    }

Procedure used to add multiple class in the List
var personDetails = new List< Person >
                              {
                                  new Person
                                  {
                                      Id = 1, FirstName = "Arun",
                                      LastName = "Prakash",
                                      Addresses = new List< Address >
                                                      {
                                                          new Address{Line1 = "Hope College",Line2 = "Coimbatore"}
                                                 
                                                      }
                                  },
                                                                                                     
                                  new Person{
                                      Id = 2, FirstName = "Sanjay",
                                      LastName = "Ramasamy",
                                      Addresses = new List< Address >
                                                      {
                                                          new Address{Line1 = "Anna Salai",Line2= "Chennai"}
                                                     
                                                      }
                                  }
                              };

5 August 2013

Html.RenderPartial vs Html.Partial, Html.RenderAction vs Html.Action

Html.RenderPartial vs Html.Partial, Html.RenderAction vs Html.Action 


@Html.Partial("Details")
@Html.Action("Index", "Home")

and

@{ Html.RenderPartial("Details"); }
@{ Html.RenderAction("Index", "Home"); }

Html.Partial returns a string, Html.RenderPartial calls Write internally, and returns void.

You can store the output of Html.Partial in a variable, or return it from a function. You cannot do this with Html.RenderPartial.

Html.RenderPartial -The result will be written to the Response stream during the execution.

The same is true for Html.Action and Html.RenderAction.


MVC 3 Ajax Json Sample

MVC 3 Ajax Json Sample 





























Create model name PersonDetails.cs
using System.Collections.Generic;

namespace MVCJsonAjax.Models
{
    public class Person
    {
        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }

        public List< Address > Addresses { get; set; }
    }

    public class Address
    {
        public string Line1 { get; set; }
        public string Line2 { get; set; }
        public string ZipCode { get; set; }
        public string City { get; set; }
        public string State { get; set; }
        public string Country { get; set; }
    }

}


Create Controller - SaveController.cs

using System.Web.Mvc;
using MVCJsonAjax.Models;

namespace MVCJsonAjax.Controllers
{
    public class SaveController : Controller
    {
        //
        // GET: /Save/

        [ActionName("SaveData"),HttpGet]
        public ActionResult SaveData()
        {
            return View();
        }


     [ActionName("SaveData"), HttpPost]
        public JsonResult SaveData(Person objPerson,Address objAddress)
         {

             JsonResult result = new JsonResult();

            // Save logic - save person and address details

             result.Data = "Saved Successfully";
             return result;
        }
 
    }
}

Create View for ActionResult SaveData()

@using MVCJsonAjax.Models
@{
    ViewBag.Title = "SaveData";
}
< h2 >
    Save Data< /h2 >

    < div>
    < div id="message" >
    < /div>
< /div >


< script type =" text/javascript ">
    $(document).ready(function () {
         
        $('#btnSubmit').click(function () {
         
            var Person =
            {
                FirstName: $('#Item1_FirstName').val(),
                LastName: $('#Item1_LastName').val()
            };

            var Address =
                {
                    Line1: $('#Item2_Line1').val(),
                    Line2: $('#Item2_Line2').val(),
                    ZipCode: $('#Item2_ZipCode').val(),
                    City: $('#Item2_City').val(),
                    State: $('#Item2_State').val(),
                    Country: $('#Item2_Country').val()
                };

                var obj = { "Per": Person, "Add": Address};

            $.ajax({
                url: '/Save/SaveData',
                type: "POST",
                data:JSON.stringify({objPerson: Person ,objAddress: Address }),              
                cache: false,
                dataType: "json",
                contentType: "application/json;charset=utf-8",
                success: function (result) {
                    $('#message').html(result).fadeIn();

                }
            });

            return false;
        });
    });




@model Tuple< Person, Address >
@using ( Html.BeginForm() )
{
    < table >
        < tr >
            < td >
                @Html.LabelFor(m => m.Item1.FirstName)
                @Html.TextBoxFor(m => m.Item1.FirstName)
            < /td >
        < /tr >
        < tr >
            < td >
                @Html.LabelFor(m => m.Item1.LastName)
                @Html.TextBoxFor(m => m.Item1.LastName)
            < /td >
        < /tr >
        < tr >
            < td >
                @Html.LabelFor(m => m.Item2.Line1)
                @Html.TextBoxFor(m => m.Item2.Line1)
            < /td >
        < /tr >
        < tr >
            < td >
                @Html.LabelFor(m => m.Item2.Line2)
                @Html.TextBoxFor(m => m.Item2.Line2)
            < /td >
        < /tr >
        < tr >
            < td >
                @Html.LabelFor(m => m.Item2.ZipCode)
                @Html.TextBoxFor(m => m.Item2.ZipCode)
            < /td >
        < /tr >
        < tr >
            < td >
                @Html.LabelFor(m => m.Item2.City)
                @Html.TextBoxFor(m => m.Item2.City)
            < /td >
        < /tr >
        < tr >
            < td >
                @Html.LabelFor(m => m.Item2.State)
                @Html.TextBoxFor(m => m.Item2.State)
            < /td >
        < /tr >
        < tr >
            < td >
                @Html.LabelFor(m => m.Item2.Country)
                @Html.TextBoxFor(m => m.Item2.Country)
            < /td >
        < /tr >
        < tr >
            < td >
                <  input type="submit" value="Submit" id="btnSubmit" / >
            < /td >
        < /tr >
    < /table >

}



4 August 2013

Dynamic v. Strongly Typed Views in MVC C# Razor Engine

Dynamic vs. Strongly Typed Views

Dynamic
Because we’re using a dynamic and not a strongly typed view, intellisense doesn’t help us. The completed code is shown below:

@model dynamic
         
@ {
    ViewBag.Title = "IndexNotStonglyTyped";
}

Index Not Stongly Typed< /h2 >



< p >
 < ul >
@foreach (var blog in Model) {
   < li >
    < a href="@blog.URL">@blog.Name< /a >
   < /li >  
}
 < /ul >

< /p >

Strongly Typed Views
When it is strongly typed view.

5658.StrongView[1]

Inside the new view template we get intellisense support.

7002.intellesince[1]


Handle Multiple Submit button in MVC C#

Handle Multiple Submit button in MVC C#

View
<% Html.BeginForm("MyAction", "MyController", FormMethod.Post); %>
< input type="submit" name="submitButton" value="Send" / >
< input type="submit" name="submitButton" value="Cancel" / >

<% Html.EndForm(); %>

Controller
public class MyController : Controller {
    public ActionResult MyAction(string submitButton) {
        switch(submitButton) {
            case "Send":
                // delegate sending to another controller action
                return(Send());
            case "Cancel":
                // call another action to perform the cancellation
                return(Cancel());
            default:
                // If they've submitted the form without a submitButton,
                // just return the view again.
                return(View());
        }
    }

    private ActionResult Cancel() {
        // process the cancellation request here.
        return(View("Cancelled"));
    }

    private ActionResult Send() {
        // perform the actual send operation here.
        return(View("SendConfirmed"));
    }

}






Delegates Example in C#

//Delegates Example in C#

using System;
using System.Windows.Forms;

namespace DelegatesTesting
{
    public partial class DelegatesTest : Form
    {
        public DelegatesTest()
        {
            InitializeComponent();
        }



        //Delegate Declaration
        public delegate int PointtoAddFunction(int i, int j);
     
        private void btnSubmit_Click(object sender, EventArgs e)
        {

            //Point the Delegate object with Method
            PointtoAddFunction handler = AddFunction;

            //Invoke the Method
            MessageBox.Show(handler(10, 12).ToString());

        }

        //Method
        public int AddFunction(int i, int j)
        {
            return i + j;
        }    
    }
}



Datatable to List in C# using Linq

Datatable to List in C# using Linq

//StudentDetails Class with Entity Details
 public class StudentDetails
    {
        public int StudentID { get; set; }
        public string StudentName { get; set; }
        public string ClassName { get; set; }
        public string Section { get; set; }
    }
  

//Dataaccess part, Microsoft Sqlhelper class  used
 public List GetStudentDetails(int studentID)
        {
            DataSet ds = new DataSet();
            SqlParameter[] SqlParam = null;
            SqlParam = new SqlParameter[1];
            SqlCommand SqlCmd = new SqlCommand();
            List objStud = new List();
            try
            {
                SqlParam[0] = new SqlParameter("@StudentID", SqlDbType.Int);
                SqlParam[0].Value = studentID;
                SqlHelper.FillDataset(DBconnection(), CommandType.StoredProcedure, "usp_Get_StudentDetails", ds, new string[] { "Display" }, SqlParam);
               
 objStud = ds.Tables[0].AsEnumerable().Select(data => new StudentDetails() { StudentID = (int)data["StudentID"], StudentName = (string)data["StudentName"], ClassName = (string)data["ClassName"], Section = (string)data["Section"] }).ToList();
                return objStud;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (ds != null)
                {
                    ds.Dispose();
                }
                objStud = null;
            }
        }


Implementing OAuth validation in a Web API

 I mplementing OAuth validation in a Web API Implementing OAuth validation in a Web API using C# typically involves several key steps to sec...