public void DealSimulation(DealSimulateModel model)
        {
            // dbEntity.run_deal_simulation(model);
            List <ObjectParameter> dealTypeParam     = new List <ObjectParameter>();
            List <ObjectParameter> ccyTypeParam      = new List <ObjectParameter>();
            List <ObjectParameter> npvTypeParam      = new List <ObjectParameter>();
            List <ObjectParameter> legTypeParam      = new List <ObjectParameter>();
            List <ObjectParameter> interestTypeParam = new List <ObjectParameter>();
            List <ObjectParameter> maturityTypeParam = new List <ObjectParameter>();
            List <ObjectParameter> refTypeParam      = new List <ObjectParameter>();

            List <ObjectParameter> finalParam = new List <ObjectParameter>();

            var startDateParameter = model.StartDate != null ?
                                     new ObjectParameter("StartDate", model.StartDate) :
                                     new ObjectParameter("StartDate", typeof(DateTime));

            var currencyParameter = model.Currency != null ?
                                    new ObjectParameter("Currency", model.Currency) :
                                    new ObjectParameter("Currency", typeof(string));

            var fileidParameter = model.FileVersion != null ?
                                  new ObjectParameter("FileId", model.FileVersion) :
                                  new ObjectParameter("FileId", typeof(int));


            for (int i = 0; i < 10; i++)
            {
                dealTypeParam.Add(model.DealSimulate[i].DealType != null ? new ObjectParameter("Deal_Type" + i.ToString(), model.DealSimulate[i].DealType) : new ObjectParameter("Deal_Type" + i.ToString(), typeof(string)));
                ccyTypeParam.Add(model.DealSimulate[i].CCY != null ? new ObjectParameter("CCY" + i.ToString(), model.DealSimulate[i].CCY) : new ObjectParameter("CCY" + i.ToString(), typeof(string)));
                legTypeParam.Add(model.DealSimulate[i].Leg != null ? new ObjectParameter("Leg" + i.ToString(), model.DealSimulate[i].Leg) : new ObjectParameter("Leg" + i.ToString(), typeof(int)));
                npvTypeParam.Add(model.DealSimulate[i].NPV != null ? new ObjectParameter("NPV" + i.ToString(), model.DealSimulate[i].NPV) : new ObjectParameter("NPV" + i.ToString(), typeof(string)));
                interestTypeParam.Add(model.DealSimulate[i].Interest != null ? new ObjectParameter("Interest" + i.ToString(), model.DealSimulate[i].Interest) : new ObjectParameter("Interest" + i.ToString(), typeof(bool)));
                maturityTypeParam.Add(model.DealSimulate[i].MaturityDate.HasValue ? new ObjectParameter("MaturityDate" + i.ToString(), model.DealSimulate[i].MaturityDate) : new ObjectParameter("MaturityDate" + i.ToString(), typeof(DateTime)));
                refTypeParam.Add(model.DealSimulate[i].Ref != null ? new ObjectParameter("Ref" + i.ToString(), model.DealSimulate[i].Ref) : new ObjectParameter("Ref" + i.ToString(), typeof(string)));
            }
            finalParam.Add(startDateParameter);
            finalParam.Add(currencyParameter);
            finalParam.Add(fileidParameter);

            finalParam.AddRange(dealTypeParam);
            finalParam.AddRange(ccyTypeParam);
            finalParam.AddRange(legTypeParam);
            finalParam.AddRange(npvTypeParam);
            finalParam.AddRange(interestTypeParam);
            finalParam.AddRange(maturityTypeParam);
            finalParam.AddRange(refTypeParam);
            var context = new MarketREntities();

            ((IObjectContextAdapter)context).ObjectContext.ExecuteFunction("run_deal_simulation", finalParam.ToArray());
        }
 public JsonResult RunSimulation(DealSimulateModel model)
 {
     report.DealSimulation(model);
     return(Json(new { Success = true }, JsonRequestBehavior.AllowGet));
 }