public void DestroySortingModel() { this.sampleObjects.Clear(); this.sampleObjects = null; this.sortingModel.SetCollectionView(null); this.sortingModel = null; }
public void GenericSortTest() { var sortingService = new SortingService(new ExpressionBuilder()); var vm = new SortingModel(); vm.SortingColumnCurrent = ""; vm.ShouldReOrder = true; vm.SortingColumnNew = "BornDate"; vm.SortingOrderCurrent = SortingOrder.Ascending; var resultSet = sortingService.GenericSortQuery <Person>(Persons.AsQueryable(), vm); Assert.IsTrue(resultSet.FirstOrDefault().Name.Equals("kelly")); // same column is clicked, order changed resultSet = sortingService.GenericSortQuery <Person>(Persons.AsQueryable(), vm); Assert.IsTrue(resultSet.FirstOrDefault().Name.Equals("joe")); //different column is clicked, ascending as default vm.SortingColumnNew = "Name"; vm.ShouldReOrder = true; resultSet = sortingService.GenericSortQuery <Person>(Persons.AsQueryable(), vm); Assert.IsTrue(resultSet.FirstOrDefault().Name.Equals("anna")); }
public IQueryable <T> GenericSortQuery <T>(IQueryable <T> queryableData, SortingModel Model) { IQueryable <T> results = null; if (!Model.ShouldReOrder) { string methodName = GetOrderbyMethodName(Model.SortingOrderCurrent == SortingOrder.Descending ? true : false); results = SortQueryDefaultColumn(queryableData, Model, methodName); return(results); } if (Model.SortingColumnNew.IsEmpty()) { results = SortQueryDefaultColumn(queryableData, Model); } else { var orderByExp = ExpBuilder.CreatePropertyExpressionNoConvert <T>(Model.SortingColumnNew.Trim()); bool OrderByDescending = CalculateSortingOrder(Model); string methodName = GetOrderbyMethodName(OrderByDescending); var methodExp = ExpBuilder.BuildMethodExpression(queryableData, methodName, orderByExp); results = queryableData.EvalQueryMethodCallExpression(methodExp); } Model.HasBeenSorted = true; Model.ShouldReOrder = false; return(results); }
public SortingModel Build() { var result = _sortingModel; _sortingModel = new SortingModel(); return(result); }
public PagingAndSortingModel(string sortColumn) { Sorting = new SortingModel { SortOrder = sortColumn, SortDirection = SortDirection.Asc }; Paging = new PaginationModel { ItemsPerPage = 10, CurrentPage = 1 }; }
public Transactions() { InitializeComponent(); _sortColumn.DataSource = new BindingSource(Enum.GetValues(typeof(TransactionsSortingColumns)), null); _sortColumn.SelectedIndex = 2; _sortDirection.DataSource = new BindingSource(Enum.GetValues(typeof(SortingDirections)), null); _sortDirection.SelectedIndex = 1; _sortingModel = new SortingModel() { SortingColumn = "CreatedAt", IsAscending = false }; ReloadTransactions(); }
public Savings() { InitializeComponent(); _savingsHelper = new SavingsHelper(new SavingsRepository()); _sortColumn.DataSource = new BindingSource(Enum.GetValues(typeof(SavingGoalsSortingColumns)), null); _sortColumn.SelectedIndex = 0; _sortDirection.DataSource = new BindingSource(Enum.GetValues(typeof(SortingDirections)), null); _sortDirection.SelectedIndex = 1; _sortingModel = new SortingModel() { SortingColumn = "GoalName", IsAscending = true, }; ReloadSavingGoals(); }
async Task ExecuteLoadItemsCommand(bool syncItems = true) { if (IsBusy) { IsBusy = false; return; } IsBusy = true; try { Items.Clear(); networkAccess = Connectivity.NetworkAccess; syncItems = (networkAccess == NetworkAccess.Internet && syncItems ? true : false); if (_sort == null) { _sort = new SortingModel() { id = 0, SortingText = "PostCode Asc" } } ; var items = await manager.GetPropertyItemsAsync(_searchText, _IsInProgress, _IsPriority, _sort.id, syncItems); //Check Permissions 401 && 403 IsCheckPermissions(); foreach (var item in items) { Items.Add(new PropertyModel() { FirstRow = item.BuildingNumber + (item.BuildingNumber.Length == 0 ? "" : (item.BuildingName.Length == 0 ? "" : ", ")) + item.BuildingName, SecoundRow = item.PrincipalStreet + (item.PrincipalStreet.Length == 0 ? "" : (Convert.ToString(item.Postcode).Length == 0 ? "" : ", ")) + item.Postcode, Id = item.Id, Postcode = item.Postcode, BuildingName = item.BuildingName, BuildingNumber = item.BuildingNumber, Cell = item.Cell, CellManagerId = item.CellManagerId, Country = item.Country, DependentLocality = item.DependentLocality, DependentStreet = item.DependentStreet, IncidentId = item.IncidentId, LocalityName = item.LocalityName, MCBuildingName = item.MCBuildingName, MCSubBuildingName = item.MCSubBuildingName, MPRN = item.MPRN, ConcatStatus = (string.IsNullOrEmpty(item.LatestStatus) ? "" : item.LatestStatus + (string.IsNullOrEmpty(item.LatestSubStatus) ? "" : ", " + item.LatestSubStatus)), Status = item.Status, PostTown = item.PostTown, PrincipalStreet = item.PrincipalStreet, PriorityCustomer = item.PriorityCustomer, SubBuildingName = item.SubBuildingName, Zone = item.Zone, ZoneManagerId = item.ZoneManagerId, Latitude = item.Latitude, Longitude = item.Longitude, LatestStatus = item.LatestStatus, LatestSubStatus = item.LatestSubStatus, AssignedResourceCount = item.AssignedResourceCount, IncidentName = item.IncidentName, IsStatusUpdated = item.IsStatusUpdated, Notes = (string.IsNullOrEmpty(item.Notes) ? "" : item.Notes), StatusChangedOn = item.StatusChangedOn, PropertyId = item.PropertyId, CreatedAt = item.CreatedAt, CreatedBy = item.CreatedBy, Deleted = item.Deleted, IsIsolated = item.IsIsolated, IsLastStatusUpdate = item.IsLastStatusUpdate, IsMPRNAssigned = item.IsMPRNAssigned, IsUnassigned = item.IsUnassigned, ModifiedBy = item.ModifiedBy, NotesCount = item.NotesCount, UpdatedAt = item.UpdatedAt, Version = item.Version }); } } catch (Exception ex) { Debug.WriteLine(ex); } finally { IsBusy = false; } }
public async Task <IActionResult> Index(FilteringModel filtering, SortingModel sorting, PagingModel paging) { ViewBag.Filter = filtering; ViewBag.Sort = sorting; ViewBag.Paging = paging; ViewBag.PageSize = new SelectList(new List <int> { 2, 5, 10, 25, 50, 100 }, paging.PageSize); var filterDTO = _mapper.Map <IFilteringModel>(filtering); var sortDTO = _mapper.Map <ISortingModel>(sorting); var pagingDTO = _mapper.Map <IPagingModel>(paging); var makes = await _vehicleService.GetPagedMakesAsync(filterDTO, sortDTO, pagingDTO); var viewModel = _mapper.Map <IPagedList <IVehicleMake>, IPagedList <VehicleMakeViewModel> >(makes); return(View(viewModel)); }
public GameSortingBuilder ResolveSorting(SortType sortType) { switch (sortType) { //case SortType.PriceDesc: // _sortingModel = new SortingModel { SortDirection = SortDirection.Descending, OrderExpression = g => g.Price }; // break; //case SortType.PriceAsc: // _sortingModel = new SortingModel { SortDirection = SortDirection.Ascending, OrderExpression = g => g.Price }; // break; case SortType.MostCommented: _sortingModel = new SortingModel { SortDirection = SortDirection.Descending, OrderExpression = g => g.Comments.Count }; break; } return(this); }
public GameSortingBuilder ResolveSorting(SortType sortType) { switch (sortType) { case SortType.PriceDesc: _sortingModel = new SortingModel { SortDirection = SortDirection.Descending, OrderExpression = x => x.Price }; break; case SortType.PriceAsc: _sortingModel = new SortingModel { SortDirection = SortDirection.Ascending, OrderExpression = x => x.Price }; break; case SortType.MostCommented: _sortingModel = new SortingModel { SortDirection = SortDirection.Descending, OrderExpression = x => x.GameState.Comments.Count }; break; case SortType.MostPopular: _sortingModel = new SortingModel { SortDirection = SortDirection.Descending, OrderExpression = x => x.GameState.ViewCount }; break; case SortType.New: _sortingModel = new SortingModel { SortDirection = SortDirection.Descending, OrderExpression = x => x.AddDate }; break; } return(this); }
public List <T> GenericSort <T>(IQueryable <T> query, SortingModel Model) { var result = new List <T>(); if (Model.SortingColumnNew.IsEmpty()) { return(query.ToList()); } Expression <Func <T, object> > orderByExp = ExpBuilder.CreatePropertyExpression <T, object>(Model.SortingColumnNew.Trim()); bool OrderByDescending = CalculateSortingOrder(Model); if (OrderByDescending) { result = query.OrderByDescending(orderByExp).ToList(); } else { result = query.OrderBy(orderByExp).ToList(); } Model.ShouldReOrder = false; return(result); }
protected bool CalculateSortingOrder(SortingModel Model) { bool OrderByDescending = true; if (Model.SortingColumnNew.IsEmpty()) { return(OrderByDescending); } if (!Model.SortingColumnCurrent.EqualIgnoreCase(Model.SortingColumnNew)) { OrderByDescending = false; Model.SortingColumnCurrent = Model.SortingColumnNew; if (Model.SortingOrderCurrent == SortingOrder.Descending) { Model.SortingOrderCurrent = SortingOrder.Ascending; } else if (Model.SortingOrderCurrent == SortingOrder.Ascending) { Model.SortingOrderCurrent = SortingOrder.Descending; } } else { if (Model.SortingOrderCurrent == SortingOrder.Descending) { OrderByDescending = false; Model.SortingOrderCurrent = SortingOrder.Ascending; } else if (Model.SortingOrderCurrent == SortingOrder.Ascending) { Model.SortingOrderCurrent = SortingOrder.Descending; } } return(OrderByDescending); }
public async Task <IReadOnlyList <SavingGoal> > GetSortedGoals(Guid userId, SortingModel sortingModel) { return(await sortingModel .OrderByColumn(Set.Where(i => i.UserId == userId)) .ToListAsync()); }
public GameSortingBuilder() { _sortingModel = new SortingModel(); }
public PagingBaseRequestModel() { Paging = new PagingModel(); Sorting = new SortingModel(); }
public async Task <IReadOnlyList <Transaction> > GetUserTransactions(Guid userId, SortingModel sortingModel) { return(await _transactionsRepository.GetSortedUserTransactions(userId, sortingModel)); }
public IQueryable <T> SortQueryDefaultColumn <T>(IQueryable <T> queryableData, SortingModel Model, string methodName = "") { if (Model.SortingColumnCurrent.IsEmpty()) { throw new ArgumentException("no SortingColumnCurrent is defined in viewmodel"); } var orderByExp = ExpBuilder.CreatePropertyExpressionNoConvert <T>(Model.SortingColumnCurrent.Trim()); if (methodName.IsEmpty()) { methodName = "OrderByDescending"; } var methodExp = ExpBuilder.BuildMethodExpression(queryableData, methodName, orderByExp); IQueryable <T> results = queryableData.EvalQueryMethodCallExpression(methodExp); Model.HasBeenSorted = true; return(results); }
public async Task <IReadOnlyList <SavingGoal> > GetSortedGoals(Guid userId, SortingModel sortingModel) { return(await _savingsRepository.GetSortedGoals(userId, sortingModel)); }
static void Main() { TSTCMB lib = new TSTCMB(""); // class constructor içine authkey ekliyoruz. List <FilterModel> filters = new List <FilterModel>() { //Sadece CurrencyCode a göre filtreleme new FilterModel() { FilterColumn = PropertyNames.CurrencyCode, FilterValue1 = "EUR", Condition = Operation.EqualTo, Connector = Connector.And }, //CurrencyCode USD "VEYA" EUR olanları filtreleme Group=true gönderilmelidir. new FilterModel() { FilterColumn = PropertyNames.CurrencyCode, FilterValue1 = "USD", Condition = Operation.EqualTo, //CurrencyCode == "USD" Connector = Connector.Or, // || FilterColumn2 = PropertyNames.CurrencyCode, //grupta kullanılacak ikinci alan FilterValue2 = "EUR", Condition2 = Operation.EqualTo, //CurrencyCode == "EUR" Group = true, //çıktısı (x=> (x.CurrencoCode =="USD" || x.CurrencyCode ==""EUR)) GroupConnector = Connector.And //bir sonraki filtre ile arasındaki Connector çıktısı: (x=> (x.CurrencoCode =="USD" || x.CurrencyCode ==""EUR)) && }, //Alış Fiyatı 6.5 dan büyük ve Satış fiyatı 7.2 den küçük olanları filtreleme new FilterModel() { FilterColumn = PropertyNames.ForexBuying, FilterValue1 = 6.5, Condition = Operation.GreaterThan, FilterColumn2 = PropertyNames.ForexSelling, FilterValue2 = 7.2, Condition2 = Operation.LessThan, Connector = Connector.And, Group = true } }; //sıralama kriterimizi ekliyoruz. var sorting = new SortingModel() { SortingColumn = PropertyNames.CurrencyCode, SortingType = SortingTypes.ASC }; //kütüphanemize sorguyu gönderiyoruz. //4 farklı tipte data response içerisinde yer alır. var response = lib.GetTodayExhangeRate(); if (response.Error.Error) { Console.WriteLine(response.Error.ErrorMessage); } else { var obj = response.ObjectResult; var xml = response.XmlResult; var json = response.JsonResult; var csv = response.CsvResult; } Console.Read(); }
public ResultModel GetTodayExhangeRate(SortingModel sorting = null, List <FilterModel> filters = null) { ResultModel result = new ResultModel(); //authkey yanlış ise error döner if (!auth) { result.Error = new ErrorModel() { Error = true, ErrorMessage = "Invalid Login Attempt!!!" }; return(result); } try { using (var client = new WebClient()) { var xmlStr = client.DownloadString("https://www.tcmb.gov.tr/kurlar/today.xml"); //xmli string olarak downoad ediyoruz. var exchangeRates = Serializer.Deserialize <ExchangeRateModel>(xmlStr); //xml stringi objeye deserialize ediyoruz. //filter expressionları oluşturuyoruz. var filter = new Filter <Currency>(); if (filters != null) { foreach (var filteritem in filters) { string filterColumName = Enum.GetName(typeof(PropertyNames), filteritem.FilterColumn); if (filteritem.Group == true) { string filterColum2Name = Enum.GetName(typeof(PropertyNames), filteritem.FilterColumn2); filter.StartGroup(); filter.By(filterColumName, filteritem.Condition, filteritem.FilterValue1, filteritem.Connector); filter.By(filterColum2Name, filteritem.Condition2, filteritem.FilterValue2, filteritem.GroupConnector); } else { filter.By(filterColumName, filteritem.Condition, filteritem.FilterValue1, filteritem.FilterValue2, filteritem.Connector); } } } exchangeRates.Currency = exchangeRates.Currency.Where(filter).ToList(); //sıralamayı yapıyoruz. if (sorting != null) { string sortingColumnName = Enum.GetName(typeof(PropertyNames), sorting.SortingColumn); // sıralanması istenen sütun adını alıyoruz if (sorting.SortingType == SortingTypes.ASC) { exchangeRates.Currency = exchangeRates.Currency.OrderBy(x => x.GetType().GetProperty(sortingColumnName).GetValue(x, null)).ToList(); } else if (sorting.SortingType == SortingTypes.DESC) { exchangeRates.Currency = exchangeRates.Currency.OrderByDescending(x => x.GetType().GetProperty(sortingColumnName).GetValue(x, null)).ToList(); } } result.JsonResult = Serializer.SerializeJson <ExchangeRateModel>(exchangeRates); result.ObjectResult = exchangeRates; result.XmlResult = Serializer.SerializeXml <ExchangeRateModel>(exchangeRates); result.CsvResult = Serializer.SerializeCSV <ExchangeRateModel>(exchangeRates); result.Error = new ErrorModel() { Error = false, ErrorMessage = "" }; } } catch (Exception ex) { result.Error.Error = true; result.Error.ErrorMessage = ex.Message; } return(result); }
public async Task <IReadOnlyList <Transaction> > GetSortedUserTransactions(Guid userId, SortingModel sortingModel) { return(await sortingModel .OrderByColumn(Set.Where(i => i.UserId == userId)) .Include(u => u.Category) .ToListAsync()); }