Example #1
0
        public override void setFromSerial(FpmlSerializedCSharp.ISerialized serial_Class)
        {
            FpmlSerializedCSharp.Excel_schedule          serial_Excel_schedule          = serial_Class as FpmlSerializedCSharp.Excel_schedule;
            FpmlSerializedCSharp.Excel_simpleCalculation serial_Excel_simpleCalculation = serial_Excel_schedule.Excel_simpleCalculation_;

            this.eventDate_ = StringConverter.xmlDateToDateTime(serial_Excel_simpleCalculation.EventDate_.ValueStr);

            this.payoffDate_ = StringConverter.xmlDateToDateTime(serial_Excel_simpleCalculation.PayoffDate_.ValueStr);

            this.description_ = serial_Excel_simpleCalculation.Description_.ValueStr;

            this.vba_description_ = serial_Excel_simpleCalculation.Vba_description_.ValueStr;

            FpmlSerializedCSharp.Excel_eventCalcInfo serial_excel_eventCalcInfo = serial_Excel_simpleCalculation.Excel_eventCalcInfo_;
            string excel_eventCalcInfotype = serial_excel_eventCalcInfo.Excel_type_.ValueStr;

            this.excel_eventCalcInfoViewModel_ = Excel_eventCalcInfoViewModel.CreateExcel_eventCalcInfo(excel_eventCalcInfotype);
            this.excel_eventCalcInfoViewModel_.setFromSerial(serial_excel_eventCalcInfo);

            FpmlSerializedCSharp.Excel_returnCalcInfo serial_excel_returnCalcInfo = serial_Excel_simpleCalculation.Excel_returnCalcInfo_;
            string excel_returnCalcInfotype = serial_excel_returnCalcInfo.Excel_type_.ValueStr;

            this.excel_returnCalcInfoViewModel_ = Excel_returnCalcInfoViewModel.CreateExcel_returnCalcInfo(excel_returnCalcInfotype);
            this.excel_returnCalcInfoViewModel_.setFromSerial(serial_excel_returnCalcInfo);

            FpmlSerializedCSharp.Excel_complementReturnCalc serial_excel_complementReturnCalc = serial_Excel_simpleCalculation.Excel_complementReturnCalc_;
            string excel_complementReturnCalctype = serial_excel_complementReturnCalc.Excel_type_.ValueStr;

            this.excel_complementReturnCalcViewModel_ = Excel_complementReturnCalcViewModel.CreateExcel_complementReturnCalc(excel_complementReturnCalctype);
            this.excel_complementReturnCalcViewModel_.setFromSerial(serial_excel_complementReturnCalc);

            FpmlSerializedCSharp.Excel_eventCalcInfo_Call serial_excel_eventCalcInfo_Call = serial_Excel_simpleCalculation.Excel_eventCalcInfo_Call_;
            string excel_eventCalcInfo_Calltype = serial_excel_eventCalcInfo_Call.Excel_type_.ValueStr;

            this.excel_eventCalcInfo_CallViewModel_ = Excel_eventCalcInfo_CallViewModel.CreateExcel_eventCalcInfo_Call(excel_eventCalcInfo_Calltype);
            this.excel_eventCalcInfo_CallViewModel_.setFromSerial(serial_excel_eventCalcInfo_Call);

            FpmlSerializedCSharp.Excel_returnCalcInfo_Call serial_excel_returnCalcInfo_Call = serial_Excel_simpleCalculation.Excel_returnCalcInfo_Call_;
            string excel_returnCalcInfo_Calltype = serial_excel_returnCalcInfo_Call.Excel_type_.ValueStr;

            this.excel_returnCalcInfo_CallViewModel_ = Excel_returnCalcInfo_CallViewModel.CreateExcel_returnCalcInfo_Call(excel_returnCalcInfo_Calltype);
            this.excel_returnCalcInfo_CallViewModel_.setFromSerial(serial_excel_returnCalcInfo_Call);

            FpmlSerializedCSharp.Excel_complementReturnCalc_Call serial_excel_complementReturnCalc_Call = serial_Excel_simpleCalculation.Excel_complementReturnCalc_Call_;
            string excel_complementReturnCalc_Calltype = serial_excel_complementReturnCalc_Call.Excel_type_.ValueStr;

            this.excel_complementReturnCalc_CallViewModel_ = Excel_complementReturnCalc_CallViewModel.CreateExcel_complementReturnCalc_Call(excel_complementReturnCalc_Calltype);
            this.excel_complementReturnCalc_CallViewModel_.setFromSerial(serial_excel_complementReturnCalc_Call);

            FpmlSerializedCSharp.Excel_returnCalcInfo_CallableOption serial_excel_returnCalcInfo_CallableOption = serial_Excel_simpleCalculation.Excel_returnCalcInfo_CallableOption_;
            string excel_returnCalcInfo_CallableOptiontype = serial_excel_returnCalcInfo_CallableOption.Excel_type_.ValueStr;

            this.excel_returnCalcInfo_CallableOptionViewModel_ = Excel_returnCalcInfo_CallableOptionViewModel.CreateExcel_returnCalcInfo_CallableOption(excel_returnCalcInfo_CallableOptiontype);
            this.excel_returnCalcInfo_CallableOptionViewModel_.setFromSerial(serial_excel_returnCalcInfo_CallableOption);
        }
        public override void setFromSerial(FpmlSerializedCSharp.ISerialized serial_Class)
        {
            FpmlSerializedCSharp.Excel_schedule          serial_Excel_schedule          = serial_Class as FpmlSerializedCSharp.Excel_schedule;
            FpmlSerializedCSharp.Excel_simpleCalculation serial_Excel_simpleCalculation = serial_Excel_schedule.Excel_simpleCalculation_;

            base.setFromSerial(serial_Excel_schedule.Excel_additionalOption_);

            // base 로 올림
            this.eventDate_       = serial_Excel_simpleCalculation.EventDate_.DateTimeValue();
            this.payoffDate_      = serial_Excel_simpleCalculation.PayoffDate_.DateTimeValue();
            this.description_     = serial_Excel_simpleCalculation.Description_.ValueStr;
            this.vba_description_ = serial_Excel_simpleCalculation.Vba_description_.ValueStr;

            FpmlSerializedCSharp.Excel_eventCalcInfo serial_excel_eventCalcInfo = serial_Excel_simpleCalculation.Excel_eventCalcInfo_;
            string excel_eventCalcInfotype = serial_excel_eventCalcInfo.Excel_type_.ValueStr;

            this.excel_eventCalcInfoViewModel_ = Excel_eventCalcInfoViewModel.CreateExcel_eventCalcInfo(excel_eventCalcInfotype);
            this.excel_eventCalcInfoViewModel_.setFromSerial(serial_excel_eventCalcInfo);

            FpmlSerializedCSharp.Excel_returnCalcInfo serial_excel_returnCalcInfo = serial_Excel_simpleCalculation.Excel_returnCalcInfo_;
            string excel_returnCalcInfotype = serial_excel_returnCalcInfo.Excel_type_.ValueStr;

            this.excel_returnCalcInfoViewModel_ = Excel_returnCalcInfoViewModel.CreateExcel_returnCalcInfo(excel_returnCalcInfotype);
            this.excel_returnCalcInfoViewModel_.setFromSerial(serial_excel_returnCalcInfo);

            FpmlSerializedCSharp.Excel_complementReturnCalc serial_excel_complementReturnCalc = serial_Excel_simpleCalculation.Excel_complementReturnCalc_;
            this.excel_complementReturnCalcViewModel_ = new Excel_complementReturnCalcViewModel();
            this.excel_complementReturnCalcViewModel_.setFromSerial(serial_excel_complementReturnCalc);

            FpmlSerializedCSharp.Excel_eventCalcInfo_Call serial_excel_eventCalcInfo_Call = serial_Excel_simpleCalculation.Excel_eventCalcInfo_Call_;
            this.excel_eventCalcInfo_CallViewModel_ = new Excel_eventCalcInfo_CallViewModel();
            this.excel_eventCalcInfo_CallViewModel_.setFromSerial(serial_excel_eventCalcInfo_Call);

            FpmlSerializedCSharp.Excel_returnCalcInfo_Call serial_excel_returnCalcInfo_Call = serial_Excel_simpleCalculation.Excel_returnCalcInfo_Call_;
            string excel_returnCalcInfo_Calltype = serial_excel_returnCalcInfo_Call.Excel_returnCalcInfo_.Excel_type_.ValueStr;

            this.excel_returnCalcInfo_CallViewModel_ = new Excel_returnCalcInfo_CallViewModel();
            this.excel_returnCalcInfo_CallViewModel_.setFromSerial(serial_excel_returnCalcInfo_Call);

            //this.view_ = new Excel_simpleCalculationView();
            //this.view_.DataContext = this;
        }
 public override void setFromSerial(FpmlSerializedCSharp.ISerialized serial_Class)
 {
     FpmlSerializedCSharp.Excel_schedule serial_Excel_schedule = serial_Class as FpmlSerializedCSharp.Excel_schedule;
     FpmlSerializedCSharp.Excel_simpleCalculation serial_Excel_simpleCalculation = serial_Excel_schedule.Excel_simpleCalculation_;
 
     this.eventDate_ = StringConverter.xmlDateToDateTime(serial_Excel_simpleCalculation.EventDate_.ValueStr);
     
     this.payoffDate_ = StringConverter.xmlDateToDateTime(serial_Excel_simpleCalculation.PayoffDate_.ValueStr);
     
     this.description_ = serial_Excel_simpleCalculation.Description_.ValueStr;
     
     FpmlSerializedCSharp.Excel_eventCalcInfo serial_excel_eventCalcInfo = serial_Excel_simpleCalculation.Excel_eventCalcInfo_;
     string excel_eventCalcInfotype = serial_excel_eventCalcInfo.Excel_type_.ValueStr;
     this.excel_eventCalcInfoViewModel_ = Excel_eventCalcInfoViewModel.CreateExcel_eventCalcInfo(excel_eventCalcInfotype);
     this.excel_eventCalcInfoViewModel_.setFromSerial(serial_excel_eventCalcInfo);
     
     FpmlSerializedCSharp.Excel_returnCalcInfo serial_excel_returnCalcInfo = serial_Excel_simpleCalculation.Excel_returnCalcInfo_;
     string excel_returnCalcInfotype = serial_excel_returnCalcInfo.Excel_type_.ValueStr;
     this.excel_returnCalcInfoViewModel_ = Excel_returnCalcInfoViewModel.CreateExcel_returnCalcInfo(excel_returnCalcInfotype);
     this.excel_returnCalcInfoViewModel_.setFromSerial(serial_excel_returnCalcInfo);
     
     FpmlSerializedCSharp.Excel_complementReturnCalc serial_excel_complementReturnCalc = serial_Excel_simpleCalculation.Excel_complementReturnCalc_;
     string excel_complementReturnCalctype = serial_excel_complementReturnCalc.Excel_type_.ValueStr;
     this.excel_complementReturnCalcViewModel_ = Excel_complementReturnCalcViewModel.CreateExcel_complementReturnCalc(excel_complementReturnCalctype);
     this.excel_complementReturnCalcViewModel_.setFromSerial(serial_excel_complementReturnCalc);
     
     FpmlSerializedCSharp.Excel_eventCalcInfo_Call serial_excel_eventCalcInfo_Call = serial_Excel_simpleCalculation.Excel_eventCalcInfo_Call_;
     string excel_eventCalcInfo_Calltype = serial_excel_eventCalcInfo_Call.Excel_type_.ValueStr;
     this.excel_eventCalcInfo_CallViewModel_ = Excel_eventCalcInfo_CallViewModel.CreateExcel_eventCalcInfo_Call(excel_eventCalcInfo_Calltype);
     this.excel_eventCalcInfo_CallViewModel_.setFromSerial(serial_excel_eventCalcInfo_Call);
     
     FpmlSerializedCSharp.Excel_returnCalcInfo_Call serial_excel_returnCalcInfo_Call = serial_Excel_simpleCalculation.Excel_returnCalcInfo_Call_;
     string excel_returnCalcInfo_Calltype = serial_excel_returnCalcInfo_Call.Excel_type_.ValueStr;
     this.excel_returnCalcInfo_CallViewModel_ = Excel_returnCalcInfo_CallViewModel.CreateExcel_returnCalcInfo_Call(excel_returnCalcInfo_Calltype);
     this.excel_returnCalcInfo_CallViewModel_.setFromSerial(serial_excel_returnCalcInfo_Call);
     
     FpmlSerializedCSharp.Excel_complementReturnCalc_Call serial_excel_complementReturnCalc_Call = serial_Excel_simpleCalculation.Excel_complementReturnCalc_Call_;
     string excel_complementReturnCalc_Calltype = serial_excel_complementReturnCalc_Call.Excel_type_.ValueStr;
     this.excel_complementReturnCalc_CallViewModel_ = Excel_complementReturnCalc_CallViewModel.CreateExcel_complementReturnCalc_Call(excel_complementReturnCalc_Calltype);
     this.excel_complementReturnCalc_CallViewModel_.setFromSerial(serial_excel_complementReturnCalc_Call);
     
 }
        private Excel_simpleCalculationViewModel excel_simpleCalculationVMBuild(Excel_stepDownKI_subScheduleViewModel scheduleData)
        {
            Excel_simpleCalculationViewModel e_cvm = new Excel_simpleCalculationViewModel();

            e_cvm.Excel_underlyingCalcInfoViewModel_ = this.Excel_underlyingCalcInfoViewModel_;

            e_cvm.EventDate_ = scheduleData.EventDate_;

            e_cvm.PayoffDate_ = this.scheduleGeneratorVM_.addDays(scheduleData.EventDate_,this.settlementDays_);
            
            #region EventCal
            //---------------------------------------------------------------
            {
                //Excel_eventCalcInfoViewModel e_ecivm = new Excel_eventCalcInfoViewModel();

                Excel_singleRangeEventCalViewModel e_srecvm = new Excel_singleRangeEventCalViewModel();

                e_srecvm.Excel_underlyingCalcInfoViewModel_ = this.Excel_underlyingCalcInfoViewModel_;

                e_srecvm.LowerRng_ = (Convert.ToDouble(scheduleData.Trigger_) /100.0).ToString();
                e_srecvm.UpperRng_ = "1000";

                // 우선 max를 사용함
                Excel_underlyingCalcIDViewModel e_mucidvm = Excel_stepDownKI_subScheduleViewModel.CreateExcel_underlyingCalcID(scheduleData);

                e_mucidvm.setUnderlying(this.Excel_underlyingCalcInfoViewModel_);

                e_srecvm.Excel_underlyingCalcIDViewModel_ = e_mucidvm;

                //e_ecivm.Excel_eventCalcViewModel_.Add(e_srecvm);

                e_cvm.Excel_eventCalcInfoViewModel_ = e_srecvm;

                //info 에 드가는 곱하기라던지 floor라던지 postCalculation 같은게 붙어야함

            }

            #endregion

            #region ReturnCal
            //---------------------------------------------------------------
            {
                //Excel_returnCalcInfoViewModel e_rcivm = new Excel_returnCalcInfoViewModel();

                Excel_constReturnCalViewModel e_crcvm = new Excel_constReturnCalViewModel();

                e_crcvm.Excel_underlyingCalcInfoViewModel_ = this.Excel_underlyingCalcInfoViewModel_;

                e_crcvm.ConstReturn_ = (Convert.ToDouble(scheduleData.Coupon_) / 100).ToString();

                //e_rcivm.Excel_returnCalcViewModel_.Add(e_crcvm);

                e_cvm.Excel_returnCalcInfoViewModel_ = e_crcvm;

                //info 에 드가는 곱하기라던지 floor라던지 postCalculation 같은게 붙어야함

            }
            #endregion

            #region ComplementReturnCal
            {
                Excel_complementReturnCalcViewModel e_comp_rcvm = new Excel_complementReturnCalcViewModel();

                Excel_constReturnCalViewModel e_crcvm = new Excel_constReturnCalViewModel();

                e_crcvm.Excel_underlyingCalcInfoViewModel_ = this.Excel_underlyingCalcInfoViewModel_;

                e_crcvm.ConstReturn_ = "0.0";

                e_comp_rcvm.Excel_returnCalcInfoViewModel_ = e_crcvm;

                e_cvm.Excel_complementReturnCalcViewModel_ = e_comp_rcvm;
            }
            #endregion

            #region AutoCall_Event

            //---------------------------------------------------------------
            {
                Excel_eventCalcInfo_CallViewModel e_ecicvm = new Excel_eventCalcInfo_CallViewModel();

                Excel_singleRangeEventCalViewModel e_srecvm = new Excel_singleRangeEventCalViewModel();
                
                e_srecvm.Excel_underlyingCalcInfoViewModel_ = this.Excel_underlyingCalcInfoViewModel_;

                e_srecvm.LowerRng_ = (Convert.ToDouble(scheduleData.Trigger_) / 100.0).ToString();
                e_srecvm.UpperRng_ = "1000";

                //처음꺼만 사용함
                Excel_underlyingCalcIDViewModel e_mucidvm = Excel_stepDownKI_subScheduleViewModel.CreateExcel_underlyingCalcID(scheduleData);

                e_mucidvm.setUnderlying(this.Excel_underlyingCalcInfoViewModel_);

                e_srecvm.Excel_underlyingCalcIDViewModel_ = e_mucidvm;

                e_ecicvm.Excel_eventCalcInfoViewModel_ = e_srecvm;

                e_cvm.Excel_eventCalcInfo_CallViewModel_ = e_ecicvm;

                //info 에 드가는 곱하기라던지 floor라던지 postCalculation 같은게 붙어야함

            }

            #endregion

            #region AutoCall_ReturnCal

            //---------------------------------------------------------------
            {
                Excel_returnCalcInfo_CallViewModel e_rcicvm = new Excel_returnCalcInfo_CallViewModel();

                Excel_constReturnCalViewModel e_crcvm = new Excel_constReturnCalViewModel();

                e_crcvm.Excel_underlyingCalcInfoViewModel_ = this.Excel_underlyingCalcInfoViewModel_;

                e_crcvm.ConstReturn_ = "1.0"; // 원금

                e_rcicvm.Excel_returnCalcInfoViewModel_ = e_crcvm;

                e_cvm.Excel_returnCalcInfo_CallViewModel_ = e_rcicvm;

                //info 에 드가는 곱하기라던지 floor라던지 postCalculation 같은게 붙어야함

            }

            #endregion

            return e_cvm;
        }
        private Excel_simpleCalculationViewModel excel_simpleCalculationVMBuild(Excel_stepDownKI_subScheduleViewModel scheduleData)
        {
            Excel_simpleCalculationViewModel e_cvm = new Excel_simpleCalculationViewModel();

            e_cvm.Excel_underlyingCalcInfoViewModel_ = this.Excel_underlyingCalcInfoViewModel_;

            e_cvm.EventDate_ = scheduleData.EventDate_;

            e_cvm.PayoffDate_ = this.scheduleGeneratorVM_.addDays(scheduleData.EventDate_, this.settlementDays_);

            #region EventCal
            //---------------------------------------------------------------
            {
                //Excel_eventCalcInfoViewModel e_ecivm = new Excel_eventCalcInfoViewModel();

                Excel_singleRangeEventCalViewModel e_srecvm = new Excel_singleRangeEventCalViewModel();

                e_srecvm.Excel_underlyingCalcInfoViewModel_ = this.Excel_underlyingCalcInfoViewModel_;

                e_srecvm.LowerRng_ = (Convert.ToDouble(scheduleData.Trigger_) / 100.0).ToString();
                e_srecvm.UpperRng_ = "1000";

                // 우선 max를 사용함
                Excel_underlyingCalcIDViewModel e_mucidvm = Excel_stepDownKI_subScheduleViewModel.CreateExcel_underlyingCalcID(scheduleData);

                e_mucidvm.setUnderlying(this.Excel_underlyingCalcInfoViewModel_);

                e_srecvm.Excel_underlyingCalcIDViewModel_ = e_mucidvm;

                //e_ecivm.Excel_eventCalcViewModel_.Add(e_srecvm);

                e_cvm.Excel_eventCalcInfoViewModel_ = e_srecvm;

                //info 에 드가는 곱하기라던지 floor라던지 postCalculation 같은게 붙어야함
            }

            #endregion

            #region ReturnCal
            //---------------------------------------------------------------
            {
                //Excel_returnCalcInfoViewModel e_rcivm = new Excel_returnCalcInfoViewModel();

                Excel_constReturnCalViewModel e_crcvm = new Excel_constReturnCalViewModel();

                e_crcvm.Excel_underlyingCalcInfoViewModel_ = this.Excel_underlyingCalcInfoViewModel_;

                e_crcvm.ConstReturn_ = (Convert.ToDouble(scheduleData.Coupon_) / 100).ToString();

                //e_rcivm.Excel_returnCalcViewModel_.Add(e_crcvm);

                e_cvm.Excel_returnCalcInfoViewModel_ = e_crcvm;

                //info 에 드가는 곱하기라던지 floor라던지 postCalculation 같은게 붙어야함
            }
            #endregion

            #region ComplementReturnCal
            {
                Excel_complementReturnCalcViewModel e_comp_rcvm = new Excel_complementReturnCalcViewModel();

                Excel_constReturnCalViewModel e_crcvm = new Excel_constReturnCalViewModel();

                e_crcvm.Excel_underlyingCalcInfoViewModel_ = this.Excel_underlyingCalcInfoViewModel_;

                e_crcvm.ConstReturn_ = "0.0";

                e_comp_rcvm.Excel_returnCalcInfoViewModel_ = e_crcvm;

                e_cvm.Excel_complementReturnCalcViewModel_ = e_comp_rcvm;
            }
            #endregion

            #region AutoCall_Event

            //---------------------------------------------------------------
            {
                Excel_eventCalcInfo_CallViewModel e_ecicvm = new Excel_eventCalcInfo_CallViewModel();

                Excel_singleRangeEventCalViewModel e_srecvm = new Excel_singleRangeEventCalViewModel();

                e_srecvm.Excel_underlyingCalcInfoViewModel_ = this.Excel_underlyingCalcInfoViewModel_;

                e_srecvm.LowerRng_ = (Convert.ToDouble(scheduleData.Trigger_) / 100.0).ToString();
                e_srecvm.UpperRng_ = "1000";

                //처음꺼만 사용함
                Excel_underlyingCalcIDViewModel e_mucidvm = Excel_stepDownKI_subScheduleViewModel.CreateExcel_underlyingCalcID(scheduleData);

                e_mucidvm.setUnderlying(this.Excel_underlyingCalcInfoViewModel_);

                e_srecvm.Excel_underlyingCalcIDViewModel_ = e_mucidvm;

                e_ecicvm.Excel_eventCalcInfoViewModel_ = e_srecvm;

                e_cvm.Excel_eventCalcInfo_CallViewModel_ = e_ecicvm;

                //info 에 드가는 곱하기라던지 floor라던지 postCalculation 같은게 붙어야함
            }

            #endregion

            #region AutoCall_ReturnCal

            //---------------------------------------------------------------
            {
                Excel_returnCalcInfo_CallViewModel e_rcicvm = new Excel_returnCalcInfo_CallViewModel();

                Excel_constReturnCalViewModel e_crcvm = new Excel_constReturnCalViewModel();

                e_crcvm.Excel_underlyingCalcInfoViewModel_ = this.Excel_underlyingCalcInfoViewModel_;

                e_crcvm.ConstReturn_ = "1.0"; // 원금

                e_rcicvm.Excel_returnCalcInfoViewModel_ = e_crcvm;

                e_cvm.Excel_returnCalcInfo_CallViewModel_ = e_rcicvm;

                //info 에 드가는 곱하기라던지 floor라던지 postCalculation 같은게 붙어야함
            }

            #endregion

            return(e_cvm);
        }
        public string add_autoCall_sch(DateTime eventDate,
                                       DateTime payoffDate,
                                       double lowerTrigger,
                                       double upperTrigger,
                                       //CalculationEnum underCalcType,
                                       string underCalcType,
                                       string underlyings,
                                       double constCoupon)
        {
            try
            {
                #region CheckParameter

                if (underlyings == "")
                    throw new Exception("underlying input is empty");

                // check underlying 
                if ( !this.hasUnderlyings(underlyings))
                    throw new Exception(underlyings + " does not exist. add underlying first.");

                #endregion

                Excel_simpleCalculationViewModel e_scvm = new Excel_simpleCalculationViewModel();
                
                //this.addUnderlying(underlyings);

                Excel_underlyingCalcInfoViewModel e_ucivm = this.InstVM_.Excel_interfaceViewModel_.Excel_underlyingCalcInfoViewModel_;

                e_scvm.Excel_underlyingCalcInfoViewModel_ = e_ucivm;

                e_scvm.EventDate_ = eventDate;

                e_scvm.PayoffDate_ = payoffDate;

                #region EventCal
                //---------------------------------------------------------------
                {
                    //Excel_eventCalcInfoViewModel e_ecivm = new Excel_eventCalcInfoViewModel();

                    Excel_singleRangeEventCalViewModel e_srecvm = new Excel_singleRangeEventCalViewModel();

                    e_srecvm.Excel_underlyingCalcInfoViewModel_ = e_ucivm;

                    e_srecvm.LowerRng_ = lowerTrigger.ToString();
                    e_srecvm.UpperRng_ = upperTrigger.ToString();

                    // 우선 max를 사용함
                    Excel_underlyingCalcIDViewModel e_mucidvm = 
                        Excel_underlyingCalcIDViewModel.CreateExcel_underlyingCalcID(underCalcType);

                    e_mucidvm.EventDate_ = eventDate;

                    e_mucidvm.setUnderlying(e_ucivm);
                    e_mucidvm.selectUnderlyings(underlyings);

                    e_srecvm.Excel_underlyingCalcIDViewModel_ = e_mucidvm;

                    //e_ecivm.Excel_eventCalcViewModel_.Add(e_srecvm);

                    e_scvm.Excel_eventCalcInfoViewModel_ = e_srecvm;

                    //info 에 드가는 곱하기라던지 floor라던지 postCalculation 같은게 붙어야함

                }

                #endregion

                #region ReturnCal
                //---------------------------------------------------------------
                {
                    //Excel_returnCalcInfoViewModel e_rcivm = new Excel_returnCalcInfoViewModel();

                    Excel_constReturnCalViewModel e_crcvm = new Excel_constReturnCalViewModel();

                    e_crcvm.Excel_underlyingCalcInfoViewModel_ = e_ucivm;

                    e_crcvm.ConstReturn_ = constCoupon.ToString();

                    //e_rcivm.Excel_returnCalcViewModel_.Add(e_crcvm);

                    e_scvm.Excel_returnCalcInfoViewModel_ = e_crcvm;

                    //info 에 드가는 곱하기라던지 floor라던지 postCalculation 같은게 붙어야함

                }
                #endregion

                #region ComplementReturnCal
                {
                    Excel_complementReturnCalcViewModel e_comp_rcvm = new Excel_complementReturnCalcViewModel();

                    Excel_constReturnCalViewModel e_crcvm = new Excel_constReturnCalViewModel();

                    e_crcvm.Excel_underlyingCalcInfoViewModel_ = e_ucivm;

                    e_crcvm.ConstReturn_ = "0.0";

                    e_comp_rcvm.Excel_returnCalcInfoViewModel_ = e_crcvm;

                    e_scvm.Excel_complementReturnCalcViewModel_ = e_comp_rcvm;
                }
                #endregion

                #region AutoCall_Event

                //---------------------------------------------------------------
                {
                    Excel_eventCalcInfo_CallViewModel e_ecicvm = new Excel_eventCalcInfo_CallViewModel();

                    Excel_singleRangeEventCalViewModel e_srecvm = new Excel_singleRangeEventCalViewModel();

                    e_srecvm.Excel_underlyingCalcInfoViewModel_ = e_ucivm;

                    e_srecvm.LowerRng_ = lowerTrigger.ToString();
                    e_srecvm.UpperRng_ = upperTrigger.ToString();;

                    //처음꺼만 사용함
                    Excel_underlyingCalcIDViewModel e_mucidvm = 
                        Excel_underlyingCalcIDViewModel.CreateExcel_underlyingCalcID(underCalcType);

                    e_mucidvm.EventDate_ = eventDate;

                    e_mucidvm.setUnderlying(e_ucivm);
                    e_mucidvm.selectUnderlyings(underlyings);

                    e_srecvm.Excel_underlyingCalcIDViewModel_ = e_mucidvm;

                    e_ecicvm.Excel_eventCalcInfoViewModel_ = e_srecvm;

                    e_scvm.Excel_eventCalcInfo_CallViewModel_ = e_ecicvm;

                    //info 에 드가는 곱하기라던지 floor라던지 postCalculation 같은게 붙어야함

                }

                #endregion

                #region AutoCall_ReturnCal

                //---------------------------------------------------------------
                {
                    Excel_returnCalcInfo_CallViewModel e_rcicvm = new Excel_returnCalcInfo_CallViewModel();

                    Excel_constReturnCalViewModel e_crcvm = new Excel_constReturnCalViewModel();

                    e_crcvm.Excel_underlyingCalcInfoViewModel_ = e_ucivm;

                    e_crcvm.ConstReturn_ = "0.0"; // 원금

                    e_rcicvm.Excel_returnCalcInfoViewModel_ = e_crcvm;

                    e_scvm.Excel_returnCalcInfo_CallViewModel_ = e_rcicvm;

                    //info 에 드가는 곱하기라던지 floor라던지 postCalculation 같은게 붙어야함

                }

                #endregion

                Excel_hifiveViewModel e_hvm = this.InstVM_.Excel_interfaceViewModel_ as Excel_hifiveViewModel;

                e_hvm.Excel_scheduleListViewModel_.Excel_scheduleViewModel_.Add(e_scvm);

                int schNum = e_hvm.Excel_scheduleListViewModel_.Excel_scheduleViewModel_.Count -1;
                //Type type = this. GetType();
                //MethodInfo methodInfo = type.GetMethod("add_autoCall_sch");
                //ParameterInfo[] paraList = methodInfo.GetParameters();

                List<string> member = new List<string>() { "instType", "type" , "schNum", "eventDate", "payoffDate", "lowerTrigger", "upperTrigger", "underCalcType", "underlyings", "constCoupon" };
                List<string> value = new List<string>() { "hifive", "autoCall_sch", schNum.ToString() , StringConverter.xmlDateTimeToDateString(eventDate), StringConverter.xmlDateTimeToDateString(payoffDate), lowerTrigger.ToString(), upperTrigger.ToString(), underCalcType, underlyings, constCoupon.ToString() };

                e_scvm.VBA_description_ = this.vba_description(member, value);

                return "add complete";
            }
            catch (Exception e)
            {
                return "add fail : " + e.Message;
            }
        }
        public override void setFromSerial(FpmlSerializedCSharp.ISerialized serial_Class)
        {
            FpmlSerializedCSharp.Excel_schedule serial_Excel_schedule = serial_Class as FpmlSerializedCSharp.Excel_schedule;
            FpmlSerializedCSharp.Excel_simpleCalculation serial_Excel_simpleCalculation = serial_Excel_schedule.Excel_simpleCalculation_;

            base.setFromSerial(serial_Excel_schedule.Excel_additionalOption_);

            // base 로 올림
            this.eventDate_ = serial_Excel_simpleCalculation.EventDate_.DateTimeValue();
            this.payoffDate_ = serial_Excel_simpleCalculation.PayoffDate_.DateTimeValue();
            this.description_ = serial_Excel_simpleCalculation.Description_.ValueStr;
            this.vba_description_ = serial_Excel_simpleCalculation.Vba_description_.ValueStr;

            FpmlSerializedCSharp.Excel_eventCalcInfo serial_excel_eventCalcInfo = serial_Excel_simpleCalculation.Excel_eventCalcInfo_;
            string excel_eventCalcInfotype = serial_excel_eventCalcInfo.Excel_type_.ValueStr;
            this.excel_eventCalcInfoViewModel_ = Excel_eventCalcInfoViewModel.CreateExcel_eventCalcInfo(excel_eventCalcInfotype);
            this.excel_eventCalcInfoViewModel_.setFromSerial(serial_excel_eventCalcInfo);

            FpmlSerializedCSharp.Excel_returnCalcInfo serial_excel_returnCalcInfo = serial_Excel_simpleCalculation.Excel_returnCalcInfo_;
            string excel_returnCalcInfotype = serial_excel_returnCalcInfo.Excel_type_.ValueStr;
            this.excel_returnCalcInfoViewModel_ = Excel_returnCalcInfoViewModel.CreateExcel_returnCalcInfo(excel_returnCalcInfotype);
            this.excel_returnCalcInfoViewModel_.setFromSerial(serial_excel_returnCalcInfo);

            FpmlSerializedCSharp.Excel_complementReturnCalc serial_excel_complementReturnCalc = serial_Excel_simpleCalculation.Excel_complementReturnCalc_;
            this.excel_complementReturnCalcViewModel_ = new Excel_complementReturnCalcViewModel();
            this.excel_complementReturnCalcViewModel_.setFromSerial(serial_excel_complementReturnCalc);

            FpmlSerializedCSharp.Excel_eventCalcInfo_Call serial_excel_eventCalcInfo_Call = serial_Excel_simpleCalculation.Excel_eventCalcInfo_Call_;
            this.excel_eventCalcInfo_CallViewModel_ = new Excel_eventCalcInfo_CallViewModel();
            this.excel_eventCalcInfo_CallViewModel_.setFromSerial(serial_excel_eventCalcInfo_Call);

            FpmlSerializedCSharp.Excel_returnCalcInfo_Call serial_excel_returnCalcInfo_Call = serial_Excel_simpleCalculation.Excel_returnCalcInfo_Call_;
            string excel_returnCalcInfo_Calltype = serial_excel_returnCalcInfo_Call.Excel_returnCalcInfo_.Excel_type_.ValueStr;
            this.excel_returnCalcInfo_CallViewModel_ = new Excel_returnCalcInfo_CallViewModel();
            this.excel_returnCalcInfo_CallViewModel_.setFromSerial(serial_excel_returnCalcInfo_Call);

            //this.view_ = new Excel_simpleCalculationView();
            //this.view_.DataContext = this;
        }