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"));
        }
Exemple #3
0
        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
     };
 }
Exemple #6
0
        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();
        }
Exemple #7
0
        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();
        }
Exemple #8
0
        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;
            }
        }
Exemple #9
0
        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);
        }
Exemple #12
0
        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);
        }
Exemple #13
0
        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);
        }
Exemple #14
0
 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();
 }
Exemple #17
0
 public async Task <IReadOnlyList <Transaction> > GetUserTransactions(Guid userId, SortingModel sortingModel)
 {
     return(await _transactionsRepository.GetSortedUserTransactions(userId, sortingModel));
 }
Exemple #18
0
        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);
        }
Exemple #19
0
 public async Task <IReadOnlyList <SavingGoal> > GetSortedGoals(Guid userId, SortingModel sortingModel)
 {
     return(await _savingsRepository.GetSortedGoals(userId, sortingModel));
 }
Exemple #20
0
        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();
        }
Exemple #21
0
        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);
        }
Exemple #22
0
 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());
 }