public IInvoice ParseInvoice(string invoiceAsStr, IDecimalParser parser) { Guard.WhenArgument(invoiceAsStr, "invoiceAsStr").IsNullOrWhiteSpace().Throw(); Guard.WhenArgument(parser, "parser").IsNull().Throw(); var invoiceAsArrOfStr = invoiceAsStr.Split(new char[] { this.separatorCh }, StringSplitOptions.RemoveEmptyEntries); string invNum = invoiceAsArrOfStr[0]; decimal days = parser.ParseDecimal(invoiceAsArrOfStr[1]); decimal rate = parser.ParseDecimal(invoiceAsArrOfStr[2]); string currency = invoiceAsArrOfStr[3]; decimal vat = parser.ParseDecimal(invoiceAsArrOfStr[4]) * 100; var parsedInvoice = new Invoice(invNum, days, rate, currency, vat); return(parsedInvoice); }
public Engine(IInvoiceParser invParser, IDecimalParser decParser, IDateParser dateParser, IReader reader, IDocWriter writer, string docTemplatePath, string saveNameTemplate, string company) { Guard.WhenArgument(invParser, "invParser").IsNull().Throw(); Guard.WhenArgument(decParser, "decParser").IsNull().Throw(); Guard.WhenArgument(dateParser, "dateParser").IsNull().Throw(); Guard.WhenArgument(reader, "reader").IsNull().Throw(); Guard.WhenArgument(writer, "writer").IsNull().Throw(); Guard.WhenArgument(docTemplatePath, "docTemplatePath").IsNullOrWhiteSpace().Throw(); Guard.WhenArgument(saveNameTemplate, "saveNameTemplate").IsNullOrWhiteSpace().Throw(); Guard.WhenArgument(company, "company").IsNullOrWhiteSpace().Throw(); this.invParser = invParser; this.decParser = decParser; this.reader = reader; this.writer = writer; this.DocTemplatePath = docTemplatePath; this.saveNameTemplate = saveNameTemplate; this.dateParser = dateParser; this.company = company; }