public void Execute() { repo.Clear(); DetachedCriteria criteria = DetachedCriteria.For <Construction.Joint>(); if (viewModel.Statuses.Count > 0) { if (!string.IsNullOrWhiteSpace(viewModel.Number)) { criteria.Add(Restrictions.Like("Number", viewModel.Number, MatchMode.Anywhere).IgnoreCase()); } criteria.Add(Restrictions.Eq("NumberKP", viewModel.PegNumber)); if (viewModel.FromDate > DateTime.MinValue) { criteria.Add(Restrictions.Gt("LoweringDate", viewModel.FromDate)); } if (viewModel.ToDate > DateTime.MinValue) { criteria.Add(Restrictions.Lt("LoweringDate", viewModel.ToDate)); } criteria.Add(Restrictions.In("Status", viewModel.Statuses)); if (viewModel.Activity.Equals(ActivityCriteria.StatusActive)) { criteria.Add(Restrictions.Eq("IsActive", true)); } else if (viewModel.Activity.Equals(ActivityCriteria.StatusUnactive)) { criteria.Add(Restrictions.Eq("IsActive", false)); } criteria.AddOrder(Order.Asc("Number")); var list = repo.GetByCriteria(criteria); viewModel.Joints.Clear(); foreach (var item in list) { viewModel.Joints.Add(item); } } }