/// <summary> /// Gets the list of categories for a single user. /// </summary> /// <param name="userId">The user id that owns the category.</param> /// <returns>A Collection of Category summaries. An instance of the <see cref="CategorySummaryCollection"/> class.</returns> public async Task <CategorySummaryCollection> ListCategoriesAsync(string userId) { var documentUri = UriFactory.CreateDocumentCollectionUri(DatabaseName, CollectionName); // create a query to just get the document ids var query = DocumentClient .CreateDocumentQuery <CategoryDocument>(documentUri) .Where(d => d.UserId == userId) .Select(d => new CategorySummary { Id = d.Id, Name = d.Name }) .AsDocumentQuery(); // iterate until we have all of the ids var list = new CategorySummaryCollection(); while (query.HasMoreResults) { var summaries = await query.ExecuteNextAsync <CategorySummary>().ConfigureAwait(false); list.AddRange(summaries); } return(list); }
/// <summary> /// Gets a list of categories. /// </summary> /// <param name="userId">The user id to get the categories for.</param> /// <returns>Collection of category summaries.</returns> public Task <CategorySummaryCollection> ListCategoriesAsync(string userId) { var list = this.CategoryDocuments .Where(d => d.UserId == userId) .Select(d => new CategorySummary { Id = d.Id, Name = d.Name }) .ToList(); var categorySummaries = new CategorySummaryCollection(); categorySummaries.AddRange(list); return(Task.FromResult(categorySummaries)); }
/// <summary> /// Creates a <see cref="HaushaltsRechner.Business.Reporting.CategorySummaryCollection"/> /// for the given <see cref="HaushaltsRechner.Business.SearchParameter.ReportingSearchParameter"/>. /// </summary> /// <param name="para">The parameter.</param> /// <returns></returns> public static CategorySummaryCollection GetCategorySummaray(ReportingSearchParameter para) { var catSumList = new CategorySummaryCollection(); using (var en = new HaushaltsrechnerEntities()) { //Account var movements = en.MOVEMENT.AsQueryable(); if (para.Accounts.Count > 0) { movements = movements.Where( m => para.Accounts.Contains(m.ACCOUNT_ID)); } //Reason if (para.Reasons.Count > 0) { movements = movements.Where( m => para.Reasons.Contains(m.REASON_ID)); } //DirectionType switch (para.DirectionType) { case ReportingSearchParameterDirectionType.Incomming: movements = movements.Where( m => m.AMOUNT >= 0); break; case ReportingSearchParameterDirectionType.Outgoing: movements = movements.Where( m => m.AMOUNT < 0); break; } //DateAdded if (para.DateFrom != DateTime.MinValue) { movements = movements.Where( m => m.DATE_ADDED >= para.DateFrom); } if (para.DateTo != DateTime.MinValue) { var date = para.EditTo.AddDays(23.99); movements = movements.Where( m => m.DATE_ADDED <= date); } //DateEdited if (para.EditFrom != DateTime.MinValue) { movements = movements.Where( m => m.DATE_EDIT >= para.EditFrom); } if (para.EditTo != DateTime.MinValue) { var date = para.EditTo.AddDays(23.99); movements = movements.Where( m => m.DATE_EDIT <= date); } //Amount if (para.AmountFrom != decimal.MinValue) { movements = movements.Where( m => m.AMOUNT >= para.AmountFrom); } if (para.AmountTo != decimal.MinValue) { movements = movements.Where( m => m.AMOUNT <= para.AmountTo); } var categories = movements.Select(m => m.CATEGORY).Distinct(); foreach (var cat in categories) { var movInCat = movements.Where( m => m.CATEGORY_ID == cat.ID); var movInCatsGridMovementList = new List <GridMovement>(); foreach (var m in movInCat) { movInCatsGridMovementList.Add(new GridMovement { ID = m.ID, Amount = m.AMOUNT, CategoryName = m.CATEGORY.NAME, ReasonText = m.REASON.TEXT, UserName = m.USER.NAME, AccountName = m.ACCOUNT.NAME, DateAdded = m.DATE_ADDED.ToShortDateString(), DateEdit = m.DATE_EDIT.HasValue ? m.DATE_EDIT.Value.ToShortDateString() : string.Empty, Message = m.MESSAGE, CategoryID = m.CATEGORY_ID, ReasonID = m.REASON_ID, AccountID = m.ACCOUNT_ID }); } var catSum = new CategorySummary(cat.ID, cat.NAME, movInCatsGridMovementList); catSumList.Add(catSum); } } return(catSumList); }
/// <summary> /// Creates a <see cref="HaushaltsRechner.Business.Reporting.CategorySummaryCollection"/> /// for the given <see cref="HaushaltsRechner.Business.SearchParameter.ReportingSearchParameter"/>. /// </summary> /// <param name="para">The parameter.</param> /// <returns></returns> public static CategorySummaryCollection GetCategorySummaray(ReportingSearchParameter para) { var catSumList = new CategorySummaryCollection(); using (var en = new HaushaltsrechnerEntities()) { //Account var movements = en.MOVEMENT.AsQueryable(); if (para.Accounts.Count > 0) { movements = movements.Where( m => para.Accounts.Contains(m.ACCOUNT_ID)); } //Reason if (para.Reasons.Count > 0) { movements = movements.Where( m => para.Reasons.Contains(m.REASON_ID)); } //DirectionType switch (para.DirectionType) { case ReportingSearchParameterDirectionType.Incomming: movements = movements.Where( m => m.AMOUNT >= 0); break; case ReportingSearchParameterDirectionType.Outgoing: movements = movements.Where( m => m.AMOUNT < 0); break; } //DateAdded if (para.DateFrom != DateTime.MinValue) { movements = movements.Where( m => m.DATE_ADDED >= para.DateFrom); } if (para.DateTo != DateTime.MinValue) { var date = para.EditTo.AddDays(23.99); movements = movements.Where( m => m.DATE_ADDED <= date); } //DateEdited if (para.EditFrom != DateTime.MinValue) { movements = movements.Where( m => m.DATE_EDIT >= para.EditFrom); } if (para.EditTo != DateTime.MinValue) { var date = para.EditTo.AddDays(23.99); movements = movements.Where( m => m.DATE_EDIT <= date); } //Amount if (para.AmountFrom != decimal.MinValue) { movements = movements.Where( m => m.AMOUNT >= para.AmountFrom); } if (para.AmountTo != decimal.MinValue) { movements = movements.Where( m => m.AMOUNT <= para.AmountTo); } var categories = movements.Select(m => m.CATEGORY).Distinct(); foreach (var cat in categories) { var movInCat = movements.Where( m => m.CATEGORY_ID == cat.ID); var movInCatsGridMovementList = new List<GridMovement>(); foreach (var m in movInCat) { movInCatsGridMovementList.Add(new GridMovement { ID = m.ID, Amount = m.AMOUNT, CategoryName = m.CATEGORY.NAME, ReasonText = m.REASON.TEXT, UserName = m.USER.NAME, AccountName = m.ACCOUNT.NAME, DateAdded = m.DATE_ADDED.ToShortDateString(), DateEdit = m.DATE_EDIT.HasValue ? m.DATE_EDIT.Value.ToShortDateString() : string.Empty, Message = m.MESSAGE, CategoryID = m.CATEGORY_ID, ReasonID = m.REASON_ID, AccountID = m.ACCOUNT_ID }); } var catSum = new CategorySummary(cat.ID, cat.NAME, movInCatsGridMovementList); catSumList.Add(catSum); } } return catSumList; }