using NHibernate; using NHibernate.Criterion; using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Linq.Expressions; using System.Runtime.CompilerServices; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Web.Mvc; using T4MVC; using TFiN.Domain.Entities.Producten; using TFiN.Domain.Entities.Users; using TFiN.Domain.Mvc; using TFiN.Mvc; using TFiN.WebApplication.Areas.Admin.Models; using TFiN.WebApplication.Metron; using TFiN.WebApplication.Metron.Models; namespace TFiN.WebApplication.Areas.Admin.Controllers { [Authorize] public class GebruikersController : MetronController { [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public class ActionNamesClass { public readonly string Index = "Index"; } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public class ActionNameConstants { public const string Index = "Index"; } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public class ActionParamsClass_Index { public readonly string model = "model"; } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public class ViewsClass { public class _ViewNamesClass { public readonly string Index = "Index"; } private static readonly GebruikersController.ViewsClass._ViewNamesClass s_ViewNames = new GebruikersController.ViewsClass._ViewNamesClass(); public readonly string Index = "~/Areas/Admin/Views/Gebruikers/Index.cshtml"; public GebruikersController.ViewsClass._ViewNamesClass ViewNames { get { return GebruikersController.ViewsClass.s_ViewNames; } } } [CompilerGenerated] [Serializable] private sealed class <>c { public static readonly GebruikersController.<>c <>9 = new GebruikersController.<>c(); public static Func <>9__26_0; internal bool b__26_0(string t) { return t.Length >= 2; } } [GeneratedCode("T4MVC", "2.0")] public readonly string Area = "Admin"; [GeneratedCode("T4MVC", "2.0")] public readonly string Name = "Gebruikers"; [GeneratedCode("T4MVC", "2.0")] public const string NameConst = "Gebruikers"; private static readonly GebruikersController.ActionNamesClass s_actions = new GebruikersController.ActionNamesClass(); private static readonly GebruikersController.ActionParamsClass_Index s_params_Index = new GebruikersController.ActionParamsClass_Index(); private static readonly GebruikersController.ViewsClass s_views = new GebruikersController.ViewsClass(); [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public GebruikersController Actions { get { return MVC.Admin.Gebruikers; } } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public GebruikersController.ActionNamesClass ActionNames { get { return GebruikersController.s_actions; } } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public GebruikersController.ActionParamsClass_Index IndexParams { get { return GebruikersController.s_params_Index; } } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public GebruikersController.ViewsClass Views { get { return GebruikersController.s_views; } } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] public GebruikersController() { } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] protected GebruikersController(Dummy d) { } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] protected RedirectToRouteResult RedirectToAction(ActionResult result) { IT4MVCActionResult t4MVCResult = T4Extensions.GetT4MVCResult(result); return base.RedirectToRoute(t4MVCResult.get_RouteValueDictionary()); } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] protected RedirectToRouteResult RedirectToAction(Task taskResult) { return this.RedirectToAction(taskResult.Result); } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] protected RedirectToRouteResult RedirectToActionPermanent(ActionResult result) { IT4MVCActionResult t4MVCResult = T4Extensions.GetT4MVCResult(result); return base.RedirectToRoutePermanent(t4MVCResult.get_RouteValueDictionary()); } [GeneratedCode("T4MVC", "2.0"), DebuggerNonUserCode] protected RedirectToRouteResult RedirectToActionPermanent(Task taskResult) { return this.RedirectToActionPermanent(taskResult.Result); } [HttpGet, Transaction] public virtual ActionResult Index() { base.Metron.Model = this.Query(new GebruikersViewModel()); base.Metron.DataDictionary.Add("gebruikers", T4Extensions.Action(base.get_Url(), MVC.Admin.Gebruikers.Index())); MetronModel arg_60_0 = base.Metron; UserRoles[] expr_55 = new UserRoles[9]; RuntimeHelpers.InitializeArray(expr_55, fieldof(.ACA6C2D96BB326984561C8CB49B320BC658C0C5C).FieldHandle); arg_60_0.AddOptions(expr_55); MetronModel arg_7D_0 = base.Metron; UserServices[] expr_72 = new UserServices[3]; RuntimeHelpers.InitializeArray(expr_72, fieldof(.8D64F4226D3E3E2DDE30022FF17EDD930D00870A).FieldHandle); arg_7D_0.AddOptions(expr_72); return base.View(); } [HttpPost, ValidateHeaderAntiForgeryToken, Transaction] public virtual ActionResult Index(GebruikersViewModel model) { return base.Mson(this.Query(model), 1); } private GebruikersViewModel Query(GebruikersViewModel model) { User ua = null; UserProfile upa = null; IQueryOver queryOver = base.Db.QueryOver(() => upa).Fetch((UserProfile p) => p.User).get_Eager().Fetch((UserProfile p) => p.User.Oorsprong).get_Eager(); IQueryOver queryOver2 = queryOver.JoinAlias((UserProfile p) => p.User, () => ua).Where(() => (int)ua.Status == (int)2); bool hasValue = model.Roles.HasValue; if (hasValue) { queryOver2 = queryOver2.And(Expression.Sql("Roles & ? <> 0", model.Roles.Value, NHibernateUtil.Int32)); } bool hasValue2 = model.Services.HasValue; if (hasValue2) { queryOver2 = queryOver2.And(Expression.Sql("Services & ? <> 0", model.Services.Value, NHibernateUtil.Int32)); } bool flag = !string.IsNullOrEmpty(model.Filter); if (flag) { model.Filter = model.Filter.Trim(); string iban = model.Filter.Replace(" ", "").ToUpperInvariant(); Guid id; bool flag2 = Guid.TryParse(model.Filter, out id); if (flag2) { queryOver2 = queryOver2.Where(() => ua.Id == id); } else { bool flag3 = Regex.IsMatch(iban, "^NL\\d{2}[A-Z]{4}\\d{10}$"); if (flag3) { queryOver2 = queryOver2.get_WithSubquery().WhereExists(( from m in QueryOver.Of() where m.User.Id == ua.Id where m.IBAN == iban select m).Select(new Expression>[] { (Machtiging m) => (object)m.Id })); } else { bool flag4 = Regex.IsMatch(model.Filter, "^D\\d{6}$"); if (flag4) { queryOver2 = queryOver2.get_WithSubquery().WhereExists(( from m in QueryOver.Of() where m.User.Id == ua.Id where m.Debiteurnummer == int.Parse(model.Filter.Substring(1)) select m).Select(new Expression>[] { (Machtiging m) => (object)m.Id })); } else { bool flag5 = Regex.IsMatch(model.Filter, "^F\\d{8}$"); if (flag5) { queryOver2 = queryOver2.get_WithSubquery().WhereExists(( from m in ( from f in QueryOver.Of() where f.Factuurnummer == (long)int.Parse(model.Filter.Substring(1)) select f).JoinQueryOver((Factuur f) => f.Machtiging) where m.User.Id == ua.Id select m).Select(new Expression>[] { (Factuur m) => (object)m.Id })); } else { bool flag6 = Regex.IsMatch(model.Filter, "^H\\d{6}$"); if (flag6) { queryOver = queryOver.Where(() => upa.HdnVerzenderNummer == (int?)int.Parse(model.Filter.Substring(1))); } else { string[] source = model.Filter.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); Disjunction disjunction = Restrictions.Disjunction(); IEnumerable arg_B51_0 = source.Take(5); Func arg_B51_1; if ((arg_B51_1 = GebruikersController.<>c.<>9__26_0) == null) { arg_B51_1 = (GebruikersController.<>c.<>9__26_0 = new Func(GebruikersController.<>c.<>9.b__26_0)); } foreach (string current in arg_B51_0.Where(arg_B51_1)) { string text = string.Format("%{0}%", current); disjunction.Add(Restrictions.Like(Projections.Property(() => ua.Voornaam), text)); disjunction.Add(Restrictions.Like(Projections.Property(() => ua.Achternaam), text)); disjunction.Add(Restrictions.Like(Projections.Property(() => ua.Email), text)); disjunction.Add(Restrictions.Like(Projections.Property(() => upa.Bedrijfsnaam), text)); disjunction.Add(Restrictions.Like(Projections.Property(() => upa.Telefoon), text)); disjunction.Add(Restrictions.Like(Projections.Property(() => upa.VestigingsAdres.Straat), text)); disjunction.Add(Restrictions.Like(Projections.Property(() => upa.VestigingsAdres.Plaats), text)); bool flag7 = Regex.IsMatch(current, "\\d{4}"); if (flag7) { disjunction.Add(Restrictions.Like(Projections.Property(() => upa.VestigingsAdres.Postcode), text)); } int num; bool flag8 = current.Length >= 7 && int.TryParse(current, out num); if (flag8) { disjunction.Add(Restrictions.Like(Projections.Property(() => (object)upa.AfmNummer), num)); } } queryOver = queryOver.Where(disjunction); } } } } } } model.Gebruikers = from p in queryOver.OrderBy(() => (object)ua.LastActivity).get_Desc().Take(100).List() select new GebruikersViewModel.Gebruiker { Url = base.get_Url().RouteUrlId("Admin_Gebruiker_Overzicht", p.get_User().get_Id()), Email = p.get_User().get_Email(), Naam = p.get_User().get_Name(), Kantoor = p.get_Bedrijfsnaam(), Telefoon = p.get_Telefoon(), Oorsprong = p.get_User().get_Name() }; return model; } } }