Example #1
0
        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);
        }
Example #2
0
        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;
        }