drop down type of form

   [CCBLActionFilter]

        public async Task<ActionResult> Create()

        {

            LoanMaster loanMaster = new LoanMaster();

            await InitCommonAsync(loanMaster);

            return View(loanMaster);

        }


        [HttpPost]

        [ValidateAntiForgeryToken]

        [CCBLActionFilter]

        public async Task<ActionResult> Create(LoanMaster loanMaster, Guid[] Client, int[] IncomeSource)

        {

            try

            {

                if (ModelState.IsValid)

                {

                    //if (loanMaster.LoanBusinessType.LoanBorrowerTypeID == (int)EnumBorrowerType.Individual)

                    //{

                    //}

                    await _loanMasterService._InsertLoan(loanMaster);

                    foreach (var item1 in Client)

                    {

                        LoanMasterClientRelation data = new LoanMasterClientRelation

                        {

                            ID = Guid.NewGuid(),


                            LoanMasterID = loanMaster.ID,

                            LoanClientMasterID = item1,

                        };


                        if (IncomeSource != null)

                        {

                            foreach (var item in IncomeSource)

                            {

                                LoanMasterIncomeType data1 = new LoanMasterIncomeType

                                {

                                    LoanMasterID = loanMaster.ID,

                                    LoanIncomeSourceID = item,

                                };

                                await _loanMasterIncomeTypesRepo.Insert(data1);

                            }

                        }

                        await _loanMasterClientRelationRepo.InsertAsync(data);


                        await _loanMasterClientRelationRepo.SaveAsync();

                    }


                    FlashBag.setMessage(true, "Loan Successfully Created");

                    return RedirectToAction("Details", new { id = loanMaster.ID });

                }

            }

            //else

            catch (DbEntityValidationException e)

            {

                StringBuilder sb = new StringBuilder();

                foreach (var eve in e.EntityValidationErrors)

                {

                    sb.AppendFormat("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",

                        eve.Entry.Entity.GetType().Name, eve.Entry.State);

                    foreach (var ve in eve.ValidationErrors)

                    {

                        sb.AppendFormat("- Property: \"{0}\", Error: \"{1}\"",

                            ve.PropertyName, ve.ErrorMessage);

                    }

                }

                ModelState.AddModelError("", sb.ToString());

            }

            catch (Exception ex)

            {

                ModelState.AddModelError("", ex.Message);

            }

            await InitCommonAsync(loanMaster);

            return View(loanMaster);

        }

----------------------------


@model WorkFlow.Infrastructure.Model.LoanMaster


@{

    ViewBag.Title = "Create";

}

<div class="container">

    <div class="toolbar row">

        <div class="col-sm-6 hidden-xs">

            <div class="page-header">

                <h1>

                    Loan

                    <small>Create</small>

                </h1>

            </div>

        </div>

        <div class="col-sm-6 col-xs-12">

            <div class="toolbar-tools pull-right">

                <!-- start: TOP NAVIGATION MENU -->

                <ul class="nav navbar-right">

                    <li class="back">

                        <a href="@Url.Action("Index")">

                            <i class="fa fa-chevron-left">

                            </i> BACK

                        </a>


                    </li>

                    <li>

                        <a href="#searchData" data-toggle="collapse">

                            <i class="fa fa-list"></i>

                            Search Panel

                        </a>

                    </li>

                </ul>

            </div>

        </div>

    </div>

    @using (Html.BeginForm("Create", "LoanMasters", FormMethod.Post, new { id = "Loan", enctype = "multipart/form-data" }))

    {

        @Html.AntiForgeryToken()

        @Html.EditorForModel()

    }

</div>

@section Scripts{

    <script>

        let urlLoanMastersBusinessType = '@Url.Action("BusinessType", "LoanMasters")';

        let urlLoanMastersClientList = '@Url.Action("ClientList", "LoanMasters")';

        let urlLoanMastersApprovingList = '@Url.Action("ApprovingList", "LoanMasters")';

    </script>


    <script src='@Url.Content("~/Scripts/LoanMaster/LoanMaster.js")'></script>


}


-----------------------------------


 //ajax for getting bussiness type according to borrower type

        [HttpPost]

        public ActionResult BusinessType(int typeid)

        {

            try

            {

                var Datalist = _loanBusinessTypeRepo.GetListc().Where(x => x.LoanBorrowerTypeID == typeid).Select(x => new { x.ID, x.BusinessTypeTitle }).OrderBy(x => x.BusinessTypeTitle).ToList();

                return Json(new { msg = true, clientaccount = Datalist }, JsonRequestBehavior.AllowGet);

            }

            catch (Exception ex)

            {

                throw new Exception(ex.Message);

            }

        }

-------------------------

 //ajax for getting client according to borrower type
        public ActionResult ClientList(int browwerid)
        {
            var clientlist = _loanClientMasterRepo.GetList().Where(x => x.LoanBorrowerTypeID == browwerid)
             .Select(x => new { x.BindField, x.DisplayField }).ToList();
            return Json(new { msg = true, client = clientlist }, JsonRequestBehavior.AllowGet);
        }
----------------------------------------------
---------------------------------------------

  //ajax for getting bussiness type according to borrower type
        [HttpPost]
        public async Task<ActionResult> ApprovingList(string branchCode, int? businessTypeID)
        {
            try
            {
                var branch = branchCode;

                var onlyBusinessTypeGroup = (await _loanMasterStepsRepo.GetListAsync()).Where(x => x.LoanBusinessTypeID == businessTypeID).Select(x => new { ID = x.ID, GroupName = x.GroupName, StepNumber = x.StepNumber, x.LoanBusinessTypeID }).OrderBy(x => x.StepNumber);

                var approvinglist = (object)null;
                if (branch.StartsWith("001"))
                {
                    //stepnumber
                    List<int> stepNumberToAvoid = new List<int> { 2, 3, 4 };
                    approvinglist = (await _loanMasterStepsRepo.GetListAsync()).Where(x => x.ShowDDL == true && !stepNumberToAvoid.Contains(x.StepNumber) && x.StepNumber != 5).Select(x => new { ID = x.ID, GroupName = x.GroupName, StepNumber = x.StepNumber, x.LoanBusinessTypeID }).Union(onlyBusinessTypeGroup).OrderBy(x => x.StepNumber);
                    return Json(new { msg = true, approvinglist = approvinglist }, JsonRequestBehavior.AllowGet);
                }
                else
                {
                    approvinglist = (await _loanMasterStepsRepo.GetListAsync()).Where(x => x.ShowDDL == true && x.StepNumber != 5).Select(x => new { ID = x.ID, GroupName = x.GroupName, StepNumber = x.StepNumber, x.LoanBusinessTypeID }).Union(onlyBusinessTypeGroup).OrderBy(x => x.StepNumber);
                    return Json(new { msg = true, approvinglist = approvinglist }, JsonRequestBehavior.AllowGet);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
    }
}
-----------------------
----------------

let Borrower = $('#BorrowerType option:selected').val();

const objLiteral = {
    init: function () {
        ModalAlert_SetMessage("Fetching data! Please wait....");
        $("#Client").empty();
        $(".LoanBusinessType").empty();
        $(".ApprovingStep").empty();
        //$('.IncomeSource').prop('disabled', true);
        //$('.EASRM').prop('disabled', true);
        this.interaction();
    },
    interaction: function () {
        let Borrower = $('#BorrowerType  option:selected').val();
        if (Borrower == '1') {
            $('#IncomeSource').prop('required', true);
            $(".IncomeSource").show();
            $("#EASRM").removeAttr("required");
            $(".EASRM").hide();
        }
        else if (Borrower == '2') {
            $('#EASRM').prop('required', true);
            $(".EASRM").show();
            $("#IncomeSource").removeAttr('required');
            $(".IncomeSource").hide();
        }
        $('#BorrowerType').on('change', function (event) {
            event.preventDefault();
            var Borrower = $('#BorrowerType option:selected').val();
            console.log("Borrower=" + Borrower);
            if (Borrower == "") {
                $("#Client").empty().trigger('change');

                $(".LoanBusinessType").empty().trigger('change');

                $(".ApprovingStep").empty().trigger('change');
                $("#LoanBusinessTypeID").append('<option value=""> -- SELECT -- </option>');
                $("#Client").append('<option value=""> -- SELECT -- </option>');
                $(".ApprovingStep").append('<option value=""> -- SELECT -- </option>');
            }
            else {
                console.log('Borrower: ' + Borrower);
                if (Borrower == '1') {
                    $('#IncomeSource').prop('required', true);
                    $(".IncomeSource").show();
                    $("#EASRM").removeAttr("required");
                    $(".EASRM").hide();
                }
                else if (Borrower == '2') {
                    $('#EASRM').prop('required', true);
                    $(".EASRM").show();
                    $("#IncomeSource").removeAttr('required');
                    $(".IncomeSource").hide();
                }
                objLiteral.AjaxBusinessTypes(Borrower);
                objLiteral.AjaxClientList(Borrower);
            }
        });
        $('#LoanBusinessTypeID').on('change', function (event) {
            event.preventDefault();
            let BusinessType = $("#LoanBusinessTypeID option:selected").text();
            objLiteral.AjaxApprovingList($("#BranchCode option:selected").val(), $("#LoanBusinessTypeID option:selected").val());
        });
    },
    HideShowSection: function (typeid) {
        if (typeid === '1') {
            $("#IncomeSource").prop('disabled', false);
            $("#EASRM").prop('disabled', true);
        }
        else if (typeid === '2') {
            $("#IncomeSource").prop('disabled', true);
            $("#EASRM").prop('disabled', false);
        }
    },
    AjaxBusinessTypes: function (typeid) {
        ModalAlert(true);

        $.ajax({
            type: 'POST',
            dataType: 'json',
            data: { typeid: typeid },
            url: urlLoanMastersBusinessType,
            success: function (msg) {
                $('#LoanBusinessTypeID').empty();

                $("#LoanBusinessTypeID").append('<option value=""> -- SELECT -- </option>');
                $.each(msg.clientaccount, function (i, member) {
                    $("#LoanBusinessTypeID").append('<option value="'
                        + member.ID + '">'
                        + member.BusinessTypeTitle + '</option>');
                });
            },
            error: function (jqXhr, textStatus, errorThrown) {
                console.log(jqXhr.responseText);
                console.log(jqXhr.textStatus);
                console.log(jqXhr.errorThrown);
                ModalAlert_SetMessage("Error occurred");
                ModalAlert(true);
            },
            complete: function () {
                ModalAlert(false);
            }
        })
    },
    AjaxClientList: function (browwerid) {
        ModalAlert(true);

        $("#Client").empty();

        $.ajax({
            type: 'POST',
            dataType: 'json',
            data: { browwerid: browwerid },
            url: urlLoanMastersClientList, //string variables
            success: function (msg) {
                console.log(msg);

                $("#Client").append('<option value=""> -- SELECT -- </option>');
                $.each(msg.client, function (i, member) {
                    $("#Client").append('<option value="'
                        + member.BindField + '">'
                        + member.DisplayField + '</option>');
                });
            },
            error: function (jqXhr, textStatus, errorThrown) {
                console.log(jqXhr.responseText);
                console.log(jqXhr.textStatus);
                console.log(jqXhr.errorThrown);
                ModalAlert_SetMessage("Error occurred");
                ModalAlert(true);
            },
            complete: function () {
                ModalAlert(false);
            }
        })
    },
    AjaxApprovingList: function (branchCode, businessTypeID) {

        console.log(branchCode, businessTypeID);

        ModalAlert(true);

        $.ajax({
            type: 'POST',
            dataType: 'json',
            data: { branchCode: branchCode, businessTypeID: businessTypeID },
            url: urlLoanMastersApprovingList, //string variables
            success: function (msg) {
                $("#ApprovingStep").empty().append('<option value=""> -- SELECT -- </option>');

                $.each(msg.approvinglist, function (i, member) {
                    $("#ApprovingStep").append('<option value="'
                        + member.ID + '">'
                        + member.GroupName + '</option>');
                });
            },
            error: function (jqXhr, textStatus, errorThrown) {
                console.log(jqXhr.responseText);
                console.log(jqXhr.textStatus);
                console.log(jqXhr.errorThrown);
                ModalAlert_SetMessage("Error occurred");
                ModalAlert(true);
            },
            complete: function () {
                ModalAlert(false);
            }
        })
    }
}

$(document).ready(function () {
    objLiteral.init();
});

//$(document).ready(function () {
//    $('#LoanBusinessTypeID').html('');
//    $('#Client').html('');
//    $('#ApprovingStep').html('');

//    $('#BorrowerType').on('change', function () {
//        let Borrower = $('#BorrowerType option:selected').val();

//        console.log("Borrower=" + Borrower);

//        businessType(Borrower);
//        Clientdatalist(Borrower);
//    });
//    function businessType(typeid) {
//    }

//    function Clientdatalist(browwerid) {
//    }

//    //fix approving authority
//    $('#LoanBusinessTypeID').on('change', function () {
//        let BusinessType = $("#LoanBusinessTypeID option:selected").text();
//        console.log("BusinessType=" + BusinessType);
//        Approving(BusinessType);
//         });
//    function Approving(BusinessType) {
//        //$("#LoanBusinessTypeID").empty().trigger('change');

//    }
//});

////JQUERY VALIDATION

//$(document).ready(function () {
//    console.log("Validation Check");
//    $.validator.setDefaults({
//        debug: true,
//        success: "valid",
//        ignore: "*:not([name])",
//        //.ignore, .select2 - input,
//        //ignore: ''

//    });
//    //<input class="select2-focusser select2-offscreen" type="text" aria-haspopup="true" role="button" aria-labelledby="select2-chosen-9" id="s2id_autogen9">

//    $xyz = false;

//    $abc = $("#Loan").validate({
//        onfocus: function (element) {
//            this.element(element);

//            console.log("element=" + element);
//            errorElement: 'span';
//        },

//        rules: {
//            LoanSubscriptionTypeID: {
//                required: true,
//            },
//            BorrowerType: {
//                required: true,
//            },
//            LoanBusinessTypeID: {
//                required: true,
//            },
//            Client: {
//                required: true,
//            },
//            LoanFundTypeID: {
//                required: true,
//            },
//            LimitAmount: {
//                required: true,
//            },
//            ApprovingStep: {
//                required: true,

//            }
//        },
//        messages: {
//            LoanSubscriptionTypeID: "Subscription Type is  Required",
//            BorrowerType: "Borrower Type is Required",
//            LoanBusinessTypeID: "Business Type is  Required",
//            Client: "Client is Required",
//            LoanFundTypeID: "Fund Type is  Required",
//            LimitAmount: "Limit Amount is Required",
//            ApprovingStep: "Approving Step is Required",

//        },
//        showErrors: function (errorMap, errorList) {
//            this.defaultShowErrors();
//            // label.parent().addClass('error');
//            $xyz = false;

//        },

//        success: function (errorElement, element) {
//            errorElement.parent().removeClass('error');
//            errorElement.remove();
//        },
//        submitHandler: function (form) {
//            if ($(form).valid())
//                form.submit();
//            return false; // prevent normal form posting
//        }
//    });

//});


Comments