public void Configure(IApplicationBuilder app, PacBillContext context) { app.UseAuthentication(); // TODO(Erik): figure something out for production #region Development app.UseCors(builder => builder. AllowAnyOrigin(). AllowAnyMethod(). AllowAnyHeader(). AllowCredentials()); app.UseDeveloperExceptionPage(); app.UseSwagger(); app.UseReDoc(o => { o.SpecUrl = "v1/swagger.json"; o.RoutePrefix = "swagger"; }); // app.UseSwaggerUI(o => o.SwaggerEndpoint("/swagger/v1/swagger.json", "PACBill API")); #endregion app.UseMvc(); context.Database.Migrate(); }
public SchoolDistrictsController( PacBillContext context, ISchoolDistrictRepository schoolDistricts, ILogger<SchoolDistrictsController> logger) { _context = context; _schoolDistricts = schoolDistricts; _logger = logger; }
public DigitalSignaturesController( PacBillContext context, IDigitalSignatureRepository signatures, ILogger <DigitalSignaturesController> logger ) { _context = context; _signatures = signatures; _logger = logger; }
public AuditsController( PacBillContext context, IAuditRepository audits, ILogger <AuditsController> logger ) { _context = context; _audits = audits; _logger = logger; }
public PaymentsController( PacBillContext context, IPaymentRepository payments, ISchoolDistrictRepository districts, ILogger <PaymentsController> logger) { _context = context; _payments = payments; _districts = districts; _logger = logger; }
public StudentRecordsController( PacBillContext context, IStudentRecordRepository records, IAuditRepository audits, ILogger <StudentRecordsController> logger) { _context = context; _records = records; _audits = audits; _logger = logger; }
public RefundsController( PacBillContext context, IRefundRepository refunds, ISchoolDistrictRepository districts, ILogger <RefundsController> logger) { _context = context; _refunds = refunds; _districts = districts; _logger = logger; }
public CalendarsController( PacBillContext context, ICalendarRepository calendars, IAuditRepository audits, ILogger <CalendarsController> logger) { _context = context; _calendars = calendars; _audits = audits; _logger = logger; }
public TemplatesController( PacBillContext context, ITemplateRepository templates, IAuditRepository audits, ILogger <TemplatesController> logger) { _context = context; _templates = templates; _audits = audits; _logger = logger; }
private static string GetMonthlyScope(PacBillContext _context) { var now = DateTime.Now; var(first, second) = GetYears(now); var last = _context.StudentRecordsHeaders. OrderBy(h => h.Scope). Where(h => Regex.IsMatch(h.Scope, @"^\d{4}\.\d{2}$")). Where(h => String.Compare(h.Scope, $"{first.ToString("0000")}.08") == 1 && String.Compare(h.Scope, $"{second.ToString("0000")}.08") == -1). LastOrDefault(); if (last == null) { return($"{now.Year.ToString("0000")}.09"); } Console.WriteLine($"last.Scope: {last.Scope}"); var month = int.Parse(last.Scope.Substring(last.Scope.Length - 2)); var year = int.Parse(last.Scope.Substring(0, 4)); if (!last.Locked) { return(FormatScope(year, month)); } if (month >= 12) { month = 0; year = year + 1; } return(FormatScope(year, month + 1)); string FormatScope(int y, int m) { return($"{y.ToString("0000")}.{m.ToString("00")}"); } }
public BulkStudentInformationReporter(PacBillContext context) => _context = context;
public UniPayInvoiceSummaryReporter(PacBillContext context) => _context = context;
public CsiuReporter(PacBillContext context) => _context = context;
public IReporter <UniPayInvoiceSummaryReport, UniPayInvoiceSummaryReporter.Config> CreateUniPayInvoiceSummaryReporter(PacBillContext context) => new UniPayInvoiceSummaryReporter(context);
public IReporter <TotalsOnlyInvoice, TotalsOnlyInvoiceReporter.Config> CreateTotalsOnlyInvoiceReporter(PacBillContext context) => new TotalsOnlyInvoiceReporter(context);
public IReporter <CsiuReport, CsiuReporter.Config> CreateCsiuReporter(PacBillContext context) => new CsiuReporter(context);
public IReporter <BulkStudentInformation, BulkStudentInformationReporter.Config> CreateBulkStudentInformationReporter(PacBillContext context) => new BulkStudentInformationReporter(context);
public IReporter <BulkInvoice, BulkInvoiceReporter.Config> CreateBulkInvoiceReporter(PacBillContext context) => new BulkInvoiceReporter(context);
public IReporter <AccountsReceivableAsOf, AccountsReceivableAsOfReporter.Config> CreateAccountsReceivableAsOfReporter(PacBillContext context) => new AccountsReceivableAsOfReporter(context);
public TotalsOnlyInvoiceReporter(PacBillContext context) => _context = context;
public AccountsReceivableAgingReporter(PacBillContext context) => _context = context;
private static void HandleFileChange(object source, FileSystemEventArgs e) { try { _processing.WaitOne(); _context = new PacBillContext(new DbContextOptionsBuilder <PacBillContext>(). UseSqlServer(_connectionString).Options); using (var tx = _context.Database.BeginTransaction()) { string scope; if (IsRecon(e.Name)) { scope = GetReconScope(); } else { scope = GetMonthlyScope(_context); } Console.WriteLine($"Scope: {scope}"); var header = _context.StudentRecordsHeaders.Include(r => r.Records).SingleOrDefault(h => h.Scope == scope); if (header != null) { if (!header.Locked) { Console.WriteLine($"Data for {scope} exists and is not locked. Overwriting."); _context.Remove(header); } else { Console.WriteLine($"Data for {scope} exists and is locked. Aborting import."); return; } } else { header = new StudentRecordsHeader { Scope = scope, Filename = e.Name, Created = DateTime.Now, Locked = false, }; } try { using (var streamReader = File.OpenText(e.FullPath)) { var lastWrite = File.GetLastWriteTime(e.FullPath); _parser.Parse(lastWrite, streamReader, header); } } catch (Exception ex) { Console.WriteLine($"Failed to read CSV: {ex.Message}."); if (ex.InnerException != null) { Console.WriteLine($" Inner exception: {ex.InnerException.Message}."); } return; } try { Console.WriteLine("Writing changes to the database..."); if (header.Id == 0) { _context.Add(header); } else { _context.Update(header); } _context.SaveChanges(); Console.WriteLine("Writing changes to the database done!"); tx.Commit(); } catch (Exception ex) { Console.WriteLine($"Failed to write data to database: {ex.Message}."); if (ex.InnerException != null) { Console.WriteLine($" Inner exception: {ex.InnerException.Message}."); } return; } } } finally { _processing.Set(); } }