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;
 }
Exemple #5
0
 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;
 }
Exemple #7
0
 public RefundsController(
     PacBillContext context,
     IRefundRepository refunds,
     ISchoolDistrictRepository districts,
     ILogger <RefundsController> logger)
 {
     _context   = context;
     _refunds   = refunds;
     _districts = districts;
     _logger    = logger;
 }
Exemple #8
0
 public CalendarsController(
     PacBillContext context,
     ICalendarRepository calendars,
     IAuditRepository audits,
     ILogger <CalendarsController> logger)
 {
     _context   = context;
     _calendars = calendars;
     _audits    = audits;
     _logger    = logger;
 }
Exemple #9
0
 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;
Exemple #13
0
 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();
            }
        }