Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/ASP.NET/CS/MVCDemos.Razor/Models/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/ASP.NET/CS/MVCDemos.Razor/Models/LargeDatabase.cs

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Data;
using System.Data.Linq;
using System.Linq;
using System.Web;
using System.Web.UI;

namespace DevExpress.Web.Demos {
    using DevExpress.Web.Demos.Models;
    using DevExpress.Web.ASPxEditors;
    using DevExpress.Web.Mvc;

    public static class LargeDatabaseDataProvider {
        const string LargeDatabaseDataContextKey = "DXLargeDatabaseDataContext";

        public static LargeDatabaseDataContext DB {
            get {
                if(HttpContext.Current.Items[LargeDatabaseDataContextKey] == null)
                    HttpContext.Current.Items[LargeDatabaseDataContextKey] = new LargeDatabaseDataContext();
                return (LargeDatabaseDataContext)HttpContext.Current.Items[LargeDatabaseDataContextKey];
            }
        }

        public static IQueryable<Email> Emails { get { return DB.Emails; } }
    
        public static object GetPersonsRange(ListEditItemsRequestedByFilterConditionEventArgs args){
            var skip = args.BeginIndex;
            var take = args.EndIndex - args.BeginIndex + 1;
            return (from person in DB.Persons
                    where (person.FirstName + " " + person.LastName + " " + person.Phone).StartsWith(args.Filter)
                         orderby person.LastName
                         select person
                    ).Skip(skip).Take(take);
        }
        public static object GetPersonByID(ListEditItemRequestedByValueEventArgs args) {
            if(args.Value != null) {
                int id = (int)args.Value;
                return (from person in DB.Persons
                         where person.ID == id
                         select person).Take(1);
            }
            return null;
        }
    }
}