示例#1
0
        public async Task <List <Case> > GetCases(CaseOrderEnum caseOrder = CaseOrderEnum.CaseNumberAscending, string searchText = "")
        {
            //get data
            var cases = await CaseDataAccessOperation.GetCases(caseOrder);

            if (caseOrder == CaseOrderEnum.NumberOfItemsAscending)
            {
                cases = cases.OrderBy((s) => s.NumberOfItems).ToList();
            }
            else if (caseOrder == CaseOrderEnum.NumberOfItemsDescending)
            {
                cases = cases.OrderByDescending((s) => s.NumberOfItems).ToList();
            }
            else if (caseOrder == CaseOrderEnum.SumAscending)
            {
                cases = cases.OrderBy((s) => s.Sum).ToList();
            }
            else if (caseOrder == CaseOrderEnum.SumDescending)
            {
                cases = cases.OrderByDescending((s) => s.Sum).ToList();
            }

            //filter data
            if (!string.IsNullOrWhiteSpace(searchText))
            {
                cases = (
                    from
                    _case in cases
                    where
                    _case.CaseNumber.Contains(searchText) ||
                    _case.Comment.Contains(searchText) ||
                    _case.NumberOfItems.ToString().Contains(searchText) ||
                    _case.Sum.ToString().Contains(searchText)
                    select
                    _case).ToList();
            }
            return(cases);
        }
        public static async Task <List <Case> > GetCases(CaseOrderEnum caseOrder)
        {
            using var dbConnection = new SQLiteConnection("Data Source=appdata.sqlite");
            await dbConnection.OpenAsync();

            using var sql = caseOrder switch
                  {
                      CaseOrderEnum.CaseNumberAscending => new SQLiteCommand(@"SELECT * FROM CASES ORDER BY caseNumber ASC", dbConnection),
                      CaseOrderEnum.CommentAscending => new SQLiteCommand(@"SELECT * FROM CASES ORDER BY comment ASC", dbConnection),
                      CaseOrderEnum.CaseNumberDescending => new SQLiteCommand(@"SELECT * FROM CASES ORDER BY caseNumber DESC", dbConnection),
                      CaseOrderEnum.CommentDescending => new SQLiteCommand(@"SELECT * FROM CASES ORDER BY comment DESC", dbConnection),
                      _ => new SQLiteCommand(@"SELECT * FROM CASES ORDER BY caseNumber ASC", dbConnection),
                  };

            var response = await sql.ExecuteReaderAsync();

            var cases = new List <Case>();

            var itemService = new ItemService();

            while (await response.ReadAsync())
            {
                cases.Add(new Case
                {
                    Id            = (Int64)response["id"],
                    CaseNumber    = response["caseNumber"].ToString(),
                    Comment       = response["comment"].ToString(),
                    NumberOfItems = (await itemService.GetItems(response["caseNumber"].ToString())).Count,
                    Sum           = itemService.GetSum(await itemService.GetItems(response["caseNumber"].ToString()))
                });
            }

            response.Close();

            dbConnection.Close();
            return(cases);
        }