public string ExportCompensation(bool updateAsExported) { //Export this driver compensation to file StringBuilder export = null; try { //Setup export = new StringBuilder(); PayPeriod payPeriod = FinanceGateway.GetPayPeriod(this.mEndDate); //Export driver compensations and admin charges foreach (DriverCompDataset.DriverCompTableRow comp in this.mCompensation.DriverCompTable.Rows) { if (comp.Select && comp.TotalAmount > 0) { //Export driver compensation export.AppendLine(formatDriverRecord(payPeriod, comp)); //Export Admin fees if applicable DriverCompDataset.DriverRouteTableRow[] routes = (DriverCompDataset.DriverRouteTableRow[]) this.mCompensation.DriverRouteTable.Select("AgentNumber=" + this.mAgentNumber + " AND Operator='" + comp.Operator + "'"); decimal adminFee = 0.0M; for (int i = 0; i < routes.Length; i++) { adminFee += routes[i].AdminCharge; } if (adminFee != 0) { export.AppendLine(formatAdminRecord(payPeriod, comp, adminFee)); } if (updateAsExported) { //Update all routes as exported for (int i = 0; i < routes.Length; i++) { routes[i].Exported = DateTime.Today; routes[i].LastUpdated = DateTime.Now; routes[i].UserID = Environment.UserName; FinanceGateway.UpdateDriverRoute(routes[i]); } } } } //Refresh routes if they were updated (otherwise, don't change export selections) if (updateAsExported) { ViewCompensation(); } } catch (ApplicationException ex) { throw ex; } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } return(export.ToString()); }