
    payments and up to date accounts.  If fields param is blank it will return all
    the fields from the database. Otherwise pass in a comma separated list of field
    names to return.
    :param fields:
    :return:
    """
    url = 'http://' + SELTZERSERVER + '/crm/api/query.php?action=getRFIDWhitelist'
    payload = ''
    response = requests.get(url, data=payload, timeout=30.0)

    whitelist = json.loads(response.content)
    #pprint.pprint(whitelist)

    return whitelist

def logDoorAccess(rfid):
    """
    This method passes the given rfid serial string as a parameter to a REST URL
    that simply logs the serial string with a timestamp in the ACCESSLOG table
    in the Seltzer DB.  This allows for an SQL query that answers the questions:
    Who was the last person to swipe their card? and When was the last time
    person X swiped their card?
    :param rfid: the RFID serial string read by the RFID reader
    :return: nothing
    """
    url = 'http://' + SELTZERSERVER + '/crm/api/query.php?action=logDoorAccess&rfid=' + rfid
    payload = ''
    response = requests.get(url, data=payload, timeout=30.0)

    #the response should be a simple JSON object with "OK" if it logged to the DB
    # without errors, or a single key value pair with "ERROR:<error message>" if
    # there was an error on the server side.
    return json.loads(response.content)

Well I’ll have you know that what you read is exactly what I meant because thirty-year-old Nathan Birch just signed the papers for his 200th property, 18 of which he bought in the January alone. Immense.
Worth a ridiculous 50 million bucks, his portfolio makes a gross income of $3.5 million, netting him a tidy $500,000 profit each year.
Nathan never went to Uni and started his working life as a gofer for a real estate office, hammering in the ‘for sale’ signs rather than snatching them up.
He made his first property purchase at eighteen while he was earning around $30,000 a year, seeking no help from his parents.
Showcasing the stony self-control of a mighty warrior, he saved like a madman while he worked in sales and at a bar. That is until he owned fourteen properties by age twenty-four, allowing him to establish his very own real estate company, Binvested.
I’m almost certainly wrong, but to me, it sounds like Bin + invested = Binvested. But hey, who am I to argue with a guy that owns 200 properties.
When asked about his strategy: “I buy below market value in lower-priced suburbs and the rent has to be enough to cover my mortgage costs, when the value of the home increases I use the equity I’ve gained to help buy more properties.” Yeah nice.
Starting out in the Western Sydney suburbs of Mount Druitt and St Marys, Mr Birch has recently purchased larger properties in northwest Sydney and units in Queensland.
Best of luck, big dog!
Tonsil found in the pharyn; "Adenoid"
What are the cells found on the surface of tonsils that traps microbes?
What immunoglobulins are found in the GIT?
What are the specialized non encapsulated tonsils found in the Submucosa of the Ileum?
What is the major site of amylase production?
What do you call the condition wherein there is ABSENCE OF TONGUE PAPILLAE?<reponame>Campus-Consult/schulungsportal
﻿using AutoMapper;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Schulungsportal_2.Data;
using Schulungsportal_2.Models;
using Schulungsportal_2.Models.Anmeldungen;
using Schulungsportal_2.Models.Schulungen;
using Schulungsportal_2.Services;
using Schulungsportal_2.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Schulungsportal_2.Controllers
{
    /// <summary>
    /// Der AnmeldungController beinhaltet alle Aktionen zur Verwaltung von Anmeldungen
    /// </summary>
    public class AnmeldungController: Controller
    {
        private ApplicationDbContext _context;
        private SchulungRepository _schulungRepository;
        private AnmeldungRepository _anmeldungRepository;

        private MailingHelper mailingHelper;
        
        // logger
        private static readonly log4net.ILog logger =
            log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        // <summary>
        /// AnmeldungController Konstruktor legt die Repositories an.
        /// </summary>
        public AnmeldungController(ApplicationDbContext context, IMapper mapper, MailingHelper mailingHelper)
        {
            _schulungRepository = new SchulungRepository(context);
            _anmeldungRepository = new AnmeldungRepository(context, mapper);
            this.mailingHelper = mailingHelper;
            _context = context;
        }

        /// <summary>
        /// Diese Methode wird vom Framework aufgerufen, wenn im Browser die../Anmeldung/Anmeldung Seite aufgerufen wird. Sie gibt dem Framework die Anmeldung-View und ein AnmeldungViewModel zurück, welches eine Liste von CC-Stati für ein Dropdown-Menü und eine Liste von Checkboxen zur Schulungsauswahl enthält.
        /// </summary>
        /// <returns> die View für../Anmeldung/Anmeldung </returns>
        public ActionResult Anmeldung()
        { 
            try
            {
                var now = DateTime.Now;
                // alle Schulungen aus der Datebank abrufen
                List<Schulung> Schulungen = _schulungRepository.GetForRegSortByDate()
                    // man kann sich nur für Schulungen anmelden, deren Anmeldung läuft
                   .Where(s => s.StartAnmeldefrist < now).ToList();
                
                // neues Viewmodel erstellen   
                AnmeldungViewModel anmeldungViewModel = new AnmeldungViewModel(Schulungen);

                //die zu verwendende View wird zurückgegeben mit dem gefüllten anmeldungViewModel
                return View("Anmeldung", anmeldungViewModel);
            }
            catch (Exception e)
            {
                logger.Error(e);
                string code = "#301";
                e = new Exception("Fehler beim Erstellen der View " + code, e);
                return View("Error", e);
            }
        }

        /// <summary>
        /// Diese Methode wird vom Framework aufgerufen, wenn die Anmeldung/Anmeldung-Eingabemaske ausgefüllt zurückgesendet wird. Sollte die Anmeldung/Anmeldung-Eingabemaske nicht richtig ausgefüllt worden sein, wird die Anmeldung-View zurückgegeben, ansonsten werden für alle ausgewählten Checkboxen eine neue Anmeldung zu einer Schulung auf Basis des übertragenen Inhalts angelegt und eine Bestätigungsseite zurückgegeben.
        /// </summary>
        /// <param name="newSchulung"> Inhalt einer ausgefüllten Anmeldung/Anmeldung-Eingabemaske in Form eines AnmeldungViewModel-Objekts </param>
        /// <returns> Bestaetigungs-View oder erneut die View für../Anmeldung/Anmeldung </returns>
        [HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Anmeldung(AnmeldungViewModel newAnmeldung)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    // failsafe für den Status, wenn absichtlich falsch übergeben
                    if (!AnmeldungViewModel.AllStati.Contains(newAnmeldung.Status))
                    {
                        return StatusCode(400, "invalid status");
                    }
                    DateTime now = DateTime.Now;
                    List<Schulung> angemeldeteSchulungen =