[ActionName("Index")] // it is used for prevent same view name in one controler
        public ActionResult ClientMigrationSave(ClientRegisClass CM, FormCollection form, string Save, string View)
        {
            string result = "";

            if (!string.IsNullOrEmpty(Save))
            {
                if (ModelState.IsValid) //checking model is valid or not
                {
                    string ClientName         = CM.ClientName;
                    string ClientCode         = CM.ClientCode;
                    string strtypeid          = Convert.ToString(form["Fields"]);
                    DataAccessLayer.DBdata ob = new DataAccessLayer.DBdata();
                    result = ob.InsertClientMigration(CM, strtypeid); // passing Value to DBClass from model
                    TempData["insertalert"] = result;
                    if (result != "-1")
                    {
                        TempData["AllCli"] = GetClients();
                    }
                }
                else
                {
                    var errors = ModelState.Values.SelectMany(v => v.Errors);
                    ModelState.AddModelError("", "Error in saving data");
                    //return View();
                }
            }
            else if (!string.IsNullOrEmpty(View))
            {
                TempData["AllCli"] = GetClients();
            }
            return(RedirectToAction("Index")); // call page load action name
        }
        public string InsertClientMigration(ClientRegisClass cm, string strtypeid)
        {
            string str    = "";
            string result = "";

            try
            {
                SqlCommand cmd = new SqlCommand("SP_ClientRegistration", con);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@ClientName", cm.ClientName);
                cmd.Parameters.AddWithValue("@ClientCode", cm.ClientCode);
                cmd.Parameters.AddWithValue("@Clienttype", strtypeid);
                cmd.Parameters.AddWithValue("@mode", 1);
                //cmd.Parameters.AddWithValue("@status", ParameterDirection.Output);

                SqlParameter ReturnStat = cmd.Parameters.Add("@status", SqlDbType.Int);
                ReturnStat.Direction = ParameterDirection.Output;

                con.Open();
                result = Convert.ToString(cmd.ExecuteScalar());
                str    = ReturnStat.Value.ToString();
                return(str);
            }
            catch
            {
                return(str = "");
            }
            finally
            {
                con.Close();
            }
        }
        //
        // GET: /ClientRegis/
        public ActionResult Index()
        {
            ClientRegisClass ob = new ClientRegisClass();

            if (ModelState.IsValid)
            {
                ViewBag.ClientName = ob.ClientName;
                ViewBag.ClientCode = ob.ClientCode;
                ViewBag.Clienttype = ob.Clienttype;

                ob.Fields = new List <ClientRegisClass>();
                ob.Fields.Add(new ClientRegisClass {
                    typeid = 1, typename = "Payroll"
                });
                ob.Fields.Add(new ClientRegisClass {
                    typeid = 0, typename = "Non Payroll"
                });
                ob.SelectedFieldId          = 1; //selecting the default value
                ViewData["statusforinsert"] = TempData["insertalert"];
                if (TempData["AllCli"] != null)
                {
                    ViewBag.ViewClient = TempData["AllCli"];
                }
                else
                {
                    ViewBag.ViewClient = GetClients();
                }
                return(View(ob));
            }
            else
            {
                return(View());
            }
        }