Esempio n. 1
0
        public CourseListInputModel(string search, int page, string orderby, bool ascending, int limit, CoursesOrderOptions orderOptions)
        {
            if (!orderOptions.Allow.Contains(orderby))
            {
                orderby   = orderOptions.By;
                ascending = orderOptions.Ascending;
            }

            Search    = search ?? "";
            Page      = Math.Max(1, page);
            Limit     = Math.Max(1, limit);
            OrderBy   = orderby;
            Ascending = ascending;

            Offset = (Page - 1) * Limit;
        }
Esempio n. 2
0
        //la classe viene utilizzata per sanitizzare i seguenti valori


        //il costruttore fornisce i dati grezzi che verranno sanitizzati
        public CourseListInputModel(string search, int page, string orderBy, bool ascending, int limit, CoursesOrderOptions orderOptions)
        {
            //Sanitizzazione
            //var orderOptions = coursesOptions.Order;    //fornito dal model binder personalizzato
            if (!orderOptions.Allow.Contains(orderBy)) //se nell'oggetto orderOptions, la proprietà allow NON contiene order by (guardare appsettings.json)
            {
                orderBy   = orderOptions.By;           //altrimenti viene assegnato il valore di default della configurazione
                ascending = orderOptions.Ascending;
            }

            Search    = search ?? "";       //null coalescensing opeator: si assicura che search non assuma valori nulli (search = search), se é nullo invece riporta ""
            Page      = Math.Max(1, page);  //mi dai il maggiore fra queti due numeri
            Limit     = Math.Max(1, limit); //recupera la configurazione corrente (CurrentValue) dalla classe CoursesOptions
            OrderBy   = orderBy;
            Ascending = ascending;

            //---------------------------------

            Offset = (Page - 1) * Limit;
        }