public virtual PLUSContainer GetDealContainer(PLUSRipper ripper) { PLUSContainer container = new PLUSContainer(); parse(container, ripper); return(container); }
public static PLUSRipper GetPLUSRipper(string textToParse) { PLUSRipper ripper = new PLUSRipper { TextToParse = textToParse }; addBasicDetailRippersToDealRipper(ripper); addPLUSDetailRippersToDealRipper(ripper); return(ripper); }
public void PLUSMaxReturnRipperWorks() { foreach (var testPair in _expectedUpsideLeverageData) { string testFilePath = testPair.Key; Debug.WriteLine("TestPLUSUpsideLeverageRipper testing file: " + testFilePath); string textToParse = GeneralUtils.GetStringFromTextFile(testFilePath); PLUSRipper ripper = DealRipperFactory.GetPLUSRipper(textToParse); decimal trueMaxReturn = (decimal)testPair.Value; decimal rippedMaxReturn = ripper.GetMaxReturn(); Assert.AreEqual(trueMaxReturn, rippedMaxReturn); } }
public void PLUSUpsideLeverageRipperWorks() { foreach (var fileNumberPair in _testFilePathAndUpsideLeverageDictionary) { string testFilePath = fileNumberPair.Key; Debug.WriteLine("TestPLUSUpsideLeverageRipper testing file: " + testFilePath); string textToParse = GeneralUtils.GetStringFromTextFile(testFilePath); _plusRipper = DealRipperFactory.GetPLUSRipper(textToParse); double trueUpsideLeverage = fileNumberPair.Value; double rippedUpsideLeverage = _plusRipper.GetUpsideLeverage(); Assert.AreEqual(trueUpsideLeverage, rippedUpsideLeverage); } }
private static void addPLUSDetailRippersToDealRipper(PLUSRipper plusRipper) { try { plusRipper.MaxReturnRipper = DetailRipperFactory.GetNumberRipper(EDetailRipperType.MaxPayment); plusRipper.UpsideIsCappedDeterminationRipper = DetailRipperFactory.GetMatchWasFoundRipper(EDetailRipperType.UpsideIsCapped); plusRipper.UpsideLeverageRipper = DetailRipperFactory.GetNumberRipper(EDetailRipperType.UpsideLeverage); } catch (Exception e) { throw new DealRipperFactoryException( "addPLUSDetailRippersToDealRipper() encountered exception in DealRipperFactory class.", e); } }
protected virtual void parse(PLUSContainer container, PLUSRipper ripper) { base.parse(container, ripper); try { container.UpsideIsCapped = ripper.GetWhetherUpsideIsCapped(); if (container.UpsideIsCapped) { container.MaxReturn = ripper.GetMaxReturn(); } container.UpsideLeverage = ripper.GetUpsideLeverage(); } catch (DetailParsingException) { throw; } catch (Exception e) { string errorMsg = "Unrecognized exception encountered in PLUSFactory parse() method."; Debug.WriteLine(errorMsg); throw new DealFactoryException(errorMsg, e); } }
/// <summary> /// Define the sql queries that will update our database for a given structure by /// (1) Instantiating both the appropriate Factory and DealRipper that can be used to fill a container /// that will be passed to the SqlQueryFactory class. /// (2) Calling the GetSqlQueriesForAddingDealToDatabase() method of SqlQueryFactory in order to get the sql /// queries. /// </summary> private string [] getSqlQueriesToAddDealToDatabase(EStructure structureType) { ISqlQueryGenerator sqlQueryGenerator; switch (structureType) { case EStructure.PrincipalProtectedNote: PrincipalProtectedNoteRipper ppnRipper = DealRipperFactory.GetPrincipalProtectedNoteRipper(_termSheetText); PrincipalProtectedNoteFactory ppnFactory = new PrincipalProtectedNoteFactory(); PrincipalProtectedNoteContainer ppnContainer = ppnFactory.GetDealContainer(ppnRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(ppnContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.StandardPLUS: PLUSRipper plusRipper = DealRipperFactory.GetPLUSRipper(_termSheetText); PLUSFactory plusFactory = new PLUSFactory(); PLUSContainer plusContainer = plusFactory.GetDealContainer(plusRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(plusContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.BufferedPLUS: BufferedPLUSRipper bufferedPLUSRipper = DealRipperFactory.GetBufferedPLUSRipper(_termSheetText); BufferedPLUSFactory bufferedPLUSFactory = new BufferedPLUSFactory(); BufferedPLUSContainer bufferedPLUSContainer = bufferedPLUSFactory.GetDealContainer(bufferedPLUSRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(bufferedPLUSContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.TriggerPLUS: TriggerPLUSRipper triggerPLUSRipper = DealRipperFactory.GetTriggerPLUSRipper(_termSheetText); TriggerPLUSFactory triggerPLUSFactory = new TriggerPLUSFactory(); TriggerPLUSContainer triggerPLUSContainer = triggerPLUSFactory.GetDealContainer(triggerPLUSRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(triggerPLUSContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.DualDirectionalTriggerPLUS: TriggerPLUSRipper dualDirectionalTriggerPLUSRipper = DealRipperFactory.GetTriggerPLUSRipper(_termSheetText); DualDirectionalTriggerPLUSFactory dualDirectionalTriggerPLUSFactory = new DualDirectionalTriggerPLUSFactory(); TriggerPLUSContainer dualDirectionalTriggerPLUSContainer = dualDirectionalTriggerPLUSFactory.GetDealContainer(dualDirectionalTriggerPLUSRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(dualDirectionalTriggerPLUSContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.StandardJump: JumpRipper jumpRipper = DealRipperFactory.GetStandardJumpRipper(_termSheetText); JumpFactory jumpFactory = new JumpFactory(); JumpContainer jumpContainer = jumpFactory.GetDealContainer(jumpRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(jumpContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.BufferedJump: BufferedJumpRipper bufferedJumpRipper = DealRipperFactory.GetBufferedJumpRipper(_termSheetText); BufferedJumpFactory bufferedJumpFactory = new BufferedJumpFactory(); BufferedJumpContainer bufferedJumpContainer = bufferedJumpFactory.GetDealContainer(bufferedJumpRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(bufferedJumpContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.TriggerJump: TriggerJumpRipper triggerJumpRipper = DealRipperFactory.GetTriggerJumpRipper(_termSheetText); TriggerJumpFactory triggerJumpFactory = new TriggerJumpFactory(); TriggerJumpContainer triggerJumpContainer = triggerJumpFactory.GetDealContainer(triggerJumpRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(triggerJumpContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.EnhancedTriggerJump: TriggerJumpRipper enhancedTriggerJumpRipper = DealRipperFactory.GetTriggerJumpRipper(_termSheetText); EnhancedTriggerJumpFactory enhancedTriggerJumpFactory = new EnhancedTriggerJumpFactory(); EnhancedTriggerJumpContainer enhancedTriggerJumpContainer = enhancedTriggerJumpFactory.GetDealContainer(enhancedTriggerJumpRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(enhancedTriggerJumpContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.DualDirectionalTriggerJump: TriggerJumpRipper dualDirectionalTriggerJumpRipper = DealRipperFactory.GetTriggerJumpRipper(_termSheetText); DualDirectionalTriggerJumpFactory dualDirectionalTriggerJumpFactory = new DualDirectionalTriggerJumpFactory(); TriggerJumpContainer dualDirectionalTriggerJumpContainer = dualDirectionalTriggerJumpFactory.GetDealContainer(dualDirectionalTriggerJumpRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(dualDirectionalTriggerJumpContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.AutocallableStandard: AutocallableRipper autocallableRipper = DealRipperFactory.GetAutocallableRipper(_termSheetText); AutocallableFactory autocallableFactory = new AutocallableFactory(); AutocallableContainer autocallableContainer = autocallableFactory.GetDealContainer(autocallableRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(autocallableContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.AutocallableFixedCoupon: FixedCouponAutocallableRipper fixedCouponAutocallableRipper = DealRipperFactory.GetFixedCouponAutocallableRipper(_termSheetText); AutocallableFactory fixedCouponAutocallableFactory = new AutocallableFactory(); AutocallableContainer fixedCouponAutocallableContainer = fixedCouponAutocallableFactory.GetDealContainer(fixedCouponAutocallableRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(fixedCouponAutocallableContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.AutocallableStepUp: AutocallableRipper stepUpAutocallableRipper = DealRipperFactory.GetAutocallableRipper(_termSheetText); StepUpAutocallableFactory stepUpAutocallableFactory = new StepUpAutocallableFactory(); StepUpAutocallableContainer stepUpAutocallableContainer = stepUpAutocallableFactory.GetDealContainer(stepUpAutocallableRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(stepUpAutocallableContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.AutocallableStepDown: AutocallableRipper stepDownAutocallableRipper = DealRipperFactory.GetAutocallableRipper(_termSheetText); StepDownAutocallableFactory stepDownAutocallableFactory = new StepDownAutocallableFactory(); StepDownAutocallableContainer stepDownAutocallableContainer = stepDownAutocallableFactory.GetDealContainer(stepDownAutocallableRipper); sqlQueryGenerator = SqlQueryGeneratorFactory.GetSqlQueryGenerator(stepDownAutocallableContainer); return(sqlQueryGenerator.GetSqlQueriesForAddingDealToDatabase()); case EStructure.AutocallableWorstOf: string wOfErrorMsg = "defineSqlQueriesToAddDealToDatabase() method of CentralCommand unable to handle Worst-of Autocallables."; Debug.WriteLine(wOfErrorMsg); throw new ArgumentOutOfRangeException(wOfErrorMsg); default: throw new ArgumentOutOfRangeException("Unhandled structure type passed to defineSqlQueriesToAddDealToDatabase() method of CentralCommand."); } }