diff --git a/FamilyBudget/FamilyBudget/Entities/ExpenseBudget.cs b/FamilyBudget/FamilyBudget/Entities/ExpenseBudget.cs index 219ad38..24fa9f0 100644 --- a/FamilyBudget/FamilyBudget/Entities/ExpenseBudget.cs +++ b/FamilyBudget/FamilyBudget/Entities/ExpenseBudget.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -9,8 +10,15 @@ namespace FamilyBudget.Entities public class ExpenseBudget { public int Id { get; private set; } + [Browsable(false)] public int FamilyMemberId { get; private set; } + [DisplayName("Семья")] + public string Name { get; private set; } = string.Empty; + [DisplayName("Дата")] public DateTime Date { get; private set; } + public string Expenses => FamilyMember_Expenses != null ? + string.Join(", ", FamilyMember_Expenses.Select(x => $"{x.ExpenseName} {x.Sum}")) : string.Empty; + [Browsable(false)] public IEnumerable FamilyMember_Expenses { get; private set; } = []; public static ExpenseBudget СreateOperation(int id, int familyMemberId, IEnumerable familyMember_Expenses) @@ -24,15 +32,13 @@ namespace FamilyBudget.Entities }; } - public static ExpenseBudget CreateOperation(TempExpenseBudgetMember tempExpenseBudgetMember, IEnumerable FamilyMember_Expenses) + public void setExpenseBudget(IEnumerable familyMember_Expenses) { - return new ExpenseBudget + if (familyMember_Expenses != null && familyMember_Expenses.Any()) { - Id = tempExpenseBudgetMember.Id, - FamilyMemberId = tempExpenseBudgetMember.FamilyMemberId, - Date = tempExpenseBudgetMember.Date, - FamilyMember_Expenses = FamilyMember_Expenses - }; + FamilyMember_Expenses = familyMember_Expenses; + } + } } } diff --git a/FamilyBudget/FamilyBudget/Entities/ExpenseBudgetCategory.cs b/FamilyBudget/FamilyBudget/Entities/ExpenseBudgetCategory.cs index d31bfac..69172ca 100644 --- a/FamilyBudget/FamilyBudget/Entities/ExpenseBudgetCategory.cs +++ b/FamilyBudget/FamilyBudget/Entities/ExpenseBudgetCategory.cs @@ -1,6 +1,7 @@ using FamilyBudget.Entities.Enums; using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -10,8 +11,11 @@ namespace FamilyBudget.Entities public class ExpenseBudgetCategory { public int Id { get; private set; } + [DisplayName("Тип расхода")] public string Name { get; private set; } = string.Empty; + [DisplayName("Название")] public ExpenseCategoryType ExpenseCategoryType { get; private set; } + [DisplayName("Категория")] public static ExpenseBudgetCategory CreateEntity(int id, string name, ExpenseCategoryType expenseCategoryType) { return new ExpenseBudgetCategory diff --git a/FamilyBudget/FamilyBudget/Entities/Family.cs b/FamilyBudget/FamilyBudget/Entities/Family.cs index 0a47778..2595bdb 100644 --- a/FamilyBudget/FamilyBudget/Entities/Family.cs +++ b/FamilyBudget/FamilyBudget/Entities/Family.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -9,6 +10,7 @@ namespace FamilyBudget.Entities public class Family { public int Id { get; private set; } + [DisplayName("Фамилия")] public string Name { get; private set; } = string.Empty; public static Family CreateEntity(int id, string name) { diff --git a/FamilyBudget/FamilyBudget/Entities/FamilyMember.cs b/FamilyBudget/FamilyBudget/Entities/FamilyMember.cs index c50db86..f19a13c 100644 --- a/FamilyBudget/FamilyBudget/Entities/FamilyMember.cs +++ b/FamilyBudget/FamilyBudget/Entities/FamilyMember.cs @@ -1,6 +1,8 @@ -using FamilyBudget.Entities.Enums; +using DocumentFormat.OpenXml.Wordprocessing; +using FamilyBudget.Entities.Enums; using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -10,8 +12,15 @@ namespace FamilyBudget.Entities public class FamilyMember { public int Id { get; set; } + [DisplayName("Имя")] public string Name { get; private set; } = string.Empty; + [Browsable(false)] public int FamilyId { get; private set; } + [DisplayName("Семья")] + public string FamilyName { get; private set; } = string.Empty; + public string FullName => $"{Name} {FamilyName}"; + + [DisplayName("Член семьи")] public FamilyMemberType MemberType { get; private set; } public static FamilyMember CreateEntity(int id, string name, int familyId, FamilyMemberType memberType) diff --git a/FamilyBudget/FamilyBudget/Entities/FamilyMember_ExpenseBudget.cs b/FamilyBudget/FamilyBudget/Entities/FamilyMember_ExpenseBudget.cs index 35f7465..8645259 100644 --- a/FamilyBudget/FamilyBudget/Entities/FamilyMember_ExpenseBudget.cs +++ b/FamilyBudget/FamilyBudget/Entities/FamilyMember_ExpenseBudget.cs @@ -12,6 +12,7 @@ namespace FamilyBudget.Entities public int ExpenseBudgetId { get; private set; } public int ExpenseCategoryID { get; private set; } public int Sum { get; private set; } + public string ExpenseName { get; private set; } = string.Empty; public static FamilyMember_ExpenseBudget CreateElement(int id, int expenseCategoryID, int expenseBudgetId, int sum) { return new FamilyMember_ExpenseBudget() diff --git a/FamilyBudget/FamilyBudget/Entities/FamilyMember_IncomeBudget.cs b/FamilyBudget/FamilyBudget/Entities/FamilyMember_IncomeBudget.cs index 223cbfb..a6f8391 100644 --- a/FamilyBudget/FamilyBudget/Entities/FamilyMember_IncomeBudget.cs +++ b/FamilyBudget/FamilyBudget/Entities/FamilyMember_IncomeBudget.cs @@ -12,6 +12,7 @@ namespace FamilyBudget.Entities public int IncomeBudgetId { get; private set;} public int IncomeBudgetCategoryId { get; private set; } public int Sum { get; private set; } + public string IncomeName { get; private set; } = string.Empty; public static FamilyMember_IncomeBudget CreateElement(int id, int incomeBudgetCategoryId, int incomeBudgetId, int sum) { return new FamilyMember_IncomeBudget() diff --git a/FamilyBudget/FamilyBudget/Entities/IncomeBudget.cs b/FamilyBudget/FamilyBudget/Entities/IncomeBudget.cs index f2effb7..8b8c6a3 100644 --- a/FamilyBudget/FamilyBudget/Entities/IncomeBudget.cs +++ b/FamilyBudget/FamilyBudget/Entities/IncomeBudget.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -9,8 +10,16 @@ namespace FamilyBudget.Entities public class IncomeBudget { public int Id { get; private set; } + [Browsable(false)] public int FamilyMemberId { get; private set; } + [DisplayName("Семья")] + public string FamilyName { get; private set; } = string.Empty; + [DisplayName("Дата")] public DateTime Date { get; private set; } + [DisplayName("Доходы")] + public string Incomes => FamilyMember_Incomes != null ? + string.Join(", ", FamilyMember_Incomes.Select(x => $"{x.IncomeName} {x.Sum}")) : string.Empty; + [Browsable(false)] public IEnumerable FamilyMember_Incomes { get; private set; } = []; public static IncomeBudget CreateOperation(int id, int familyMemberId, IEnumerable FamilyMember_Incomes) @@ -24,15 +33,13 @@ namespace FamilyBudget.Entities }; } - public static IncomeBudget CreateOperation(TempIncomeBudgetMember tempIncomeBudgetMember, IEnumerable FamilyMember_Incomes) + public void setIncomeBudget(IEnumerable familyMember_Incomes) { - return new IncomeBudget + if (familyMember_Incomes != null && familyMember_Incomes.Any()) { - Id = tempIncomeBudgetMember.Id, - FamilyMemberId = tempIncomeBudgetMember.FamilyMemberId, - FamilyMember_Incomes = FamilyMember_Incomes, - Date = tempIncomeBudgetMember.Date - }; + FamilyMember_Incomes = familyMember_Incomes; + } + } } } diff --git a/FamilyBudget/FamilyBudget/Entities/IncomeBudgetCategory.cs b/FamilyBudget/FamilyBudget/Entities/IncomeBudgetCategory.cs index 0ab44a1..0125b93 100644 --- a/FamilyBudget/FamilyBudget/Entities/IncomeBudgetCategory.cs +++ b/FamilyBudget/FamilyBudget/Entities/IncomeBudgetCategory.cs @@ -1,6 +1,7 @@ using FamilyBudget.Entities.Enums; using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -10,8 +11,11 @@ namespace FamilyBudget.Entities public class IncomeBudgetCategory { public int Id { get; private set; } + [DisplayName("Тип дохода")] public string Name { get; private set; } = string.Empty; + [DisplayName("Название")] public IncomeCategoryType IncomeCategoryType { get; private set; } + [DisplayName("Категория")] public static IncomeBudgetCategory CreateEntity(int id, string name, IncomeCategoryType incomeCategoryType) { return new IncomeBudgetCategory diff --git a/FamilyBudget/FamilyBudget/Entities/TempExpenseBudgetMember.cs b/FamilyBudget/FamilyBudget/Entities/TempExpenseBudgetMember.cs deleted file mode 100644 index 34de5b7..0000000 --- a/FamilyBudget/FamilyBudget/Entities/TempExpenseBudgetMember.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace FamilyBudget.Entities -{ - public class TempExpenseBudgetMember - { - public int Id { get; private set; } - public int FamilyMemberId { get; private set; } - public int ExpenseBudgetCategoryID { get; private set; } - public int ExpenseBudgetId { get; private set; } - public DateTime Date { get; private set; } - public int Sum { get; private set; } - } -} diff --git a/FamilyBudget/FamilyBudget/Entities/TempIncomeBudgetMember.cs b/FamilyBudget/FamilyBudget/Entities/TempIncomeBudgetMember.cs deleted file mode 100644 index 453e70a..0000000 --- a/FamilyBudget/FamilyBudget/Entities/TempIncomeBudgetMember.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace FamilyBudget.Entities -{ - public class TempIncomeBudgetMember - { - public int Id { get; private set; } - public int FamilyMemberId { get; private set; } - public int IncomeBudgetId { get; private set; } - public int IncomeBudgetCategoryID { get; private set; } - public DateTime Date { get; private set; } - public int Sum { get; private set; } - } -} diff --git a/FamilyBudget/FamilyBudget/Forms/FormExpenseBudgetCategories.cs b/FamilyBudget/FamilyBudget/Forms/FormExpenseBudgetCategories.cs index 1b3c37d..1e9736e 100644 --- a/FamilyBudget/FamilyBudget/Forms/FormExpenseBudgetCategories.cs +++ b/FamilyBudget/FamilyBudget/Forms/FormExpenseBudgetCategories.cs @@ -91,7 +91,11 @@ namespace FamilyBudget.Forms } } - private void LoadList() => dataGridViewExpanses.DataSource = _expenseBudgetCategoryRepository.ReadExpenseBudgetCategories(); + private void LoadList() + { + dataGridViewExpanses.DataSource = _expenseBudgetCategoryRepository.ReadExpenseBudgetCategories(); + dataGridViewExpanses.Columns["id"].Visible = false; + } private bool TryGetIdentifierFromSelectedRow(out int id) { diff --git a/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_ExpenseBudget.cs b/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_ExpenseBudget.cs index 97988e0..53026e7 100644 --- a/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_ExpenseBudget.cs +++ b/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_ExpenseBudget.cs @@ -23,7 +23,7 @@ namespace FamilyBudget.Forms _expenseBudgetRepository = expenseBudgetRepository ?? throw new ArgumentNullException(nameof( expenseBudgetRepository)); comboBoxFamilyMember.DataSource = familyMemberRepository.ReadFamilyMembers(); - comboBoxFamilyMember.DisplayMember = "Name"; + comboBoxFamilyMember.DisplayMember = "FullName"; comboBoxFamilyMember.ValueMember = "Id"; ColumnExpanseName.DataSource = expenses.ReadExpenseBudgetCategories(); diff --git a/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_ExpenseBudgets.cs b/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_ExpenseBudgets.cs index b6e3f2c..8e76d83 100644 --- a/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_ExpenseBudgets.cs +++ b/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_ExpenseBudgets.cs @@ -72,7 +72,12 @@ namespace FamilyBudget.Forms } } - private void LoadList() => dataGridViewExpenses.DataSource = _expenseBudgetRepository.ReadExpenseBudgets(); + private void LoadList() + { + dataGridViewExpenses.DataSource = _expenseBudgetRepository.ReadExpenseBudgets(); + dataGridViewExpenses.Columns["id"].Visible = false; + dataGridViewExpenses.Columns["data"].DefaultCellStyle.Format = "dd MMMM yyyy"; + } private bool TryGetIdentifierFromSelectedRow(out int id) { diff --git a/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_IncomeBudget.cs b/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_IncomeBudget.cs index fba6fbb..3757ec8 100644 --- a/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_IncomeBudget.cs +++ b/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_IncomeBudget.cs @@ -23,7 +23,7 @@ namespace FamilyBudget.Forms _incomeBudgetRepository = incomeBudgetRepository ?? throw new ArgumentNullException(nameof( incomeBudgetRepository)); comboBoxFamilyMember.DataSource = familyMemberRepository.ReadFamilyMembers(); - comboBoxFamilyMember.DisplayMember = "Name"; + comboBoxFamilyMember.DisplayMember = "FullName"; comboBoxFamilyMember.ValueMember = "Id"; ColumnIncomeName.DataSource = incomes.ReadIncomeBudgetCategories(); diff --git a/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_IncomeBudgets.cs b/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_IncomeBudgets.cs index 05b51fb..5c1e07c 100644 --- a/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_IncomeBudgets.cs +++ b/FamilyBudget/FamilyBudget/Forms/FormFamilyMember_IncomeBudgets.cs @@ -59,7 +59,12 @@ namespace FamilyBudget.Forms } } - private void LoadList() => dataGridViewIncomes.DataSource = _incomeBudgetRepository.ReadIncomeBudgets(); + private void LoadList() + { + dataGridViewIncomes.DataSource = _incomeBudgetRepository.ReadIncomeBudgets(); + dataGridViewIncomes.Columns["id"].Visible = false; + dataGridViewIncomes.Columns["data"].DefaultCellStyle.Format = "dd MMMM yyyy"; + } private bool TryGetIdentifierFromSelectedRow(out int id) { diff --git a/FamilyBudget/FamilyBudget/Forms/FormIncomeBudgetCategories.Designer.cs b/FamilyBudget/FamilyBudget/Forms/FormIncomeBudgetCategories.Designer.cs index cbf0000..ae0196a 100644 --- a/FamilyBudget/FamilyBudget/Forms/FormIncomeBudgetCategories.Designer.cs +++ b/FamilyBudget/FamilyBudget/Forms/FormIncomeBudgetCategories.Designer.cs @@ -95,6 +95,7 @@ dataGridViewIncomes.Name = "dataGridViewIncomes"; dataGridViewIncomes.ReadOnly = true; dataGridViewIncomes.RowHeadersVisible = false; + dataGridViewIncomes.SelectionMode = DataGridViewSelectionMode.FullRowSelect; dataGridViewIncomes.Size = new Size(664, 450); dataGridViewIncomes.TabIndex = 1; // diff --git a/FamilyBudget/FamilyBudget/Forms/FormIncomeBudgetCategories.cs b/FamilyBudget/FamilyBudget/Forms/FormIncomeBudgetCategories.cs index 00e1060..f795754 100644 --- a/FamilyBudget/FamilyBudget/Forms/FormIncomeBudgetCategories.cs +++ b/FamilyBudget/FamilyBudget/Forms/FormIncomeBudgetCategories.cs @@ -90,7 +90,11 @@ namespace FamilyBudget.Forms } } - private void LoadList() => dataGridViewIncomes.DataSource = _incomeBudgetCategoryRepository.ReadIncomeBudgetCategories(); + private void LoadList() + { + dataGridViewIncomes.DataSource = _incomeBudgetCategoryRepository.ReadIncomeBudgetCategories(); + dataGridViewIncomes.Columns["id"].Visible = false; + } private bool TryGetIdentifierFromSelectedRow(out int id) { diff --git a/FamilyBudget/FamilyBudget/Repositories/Implementations/ExpenseBudgetRepository.cs b/FamilyBudget/FamilyBudget/Repositories/Implementations/ExpenseBudgetRepository.cs index 8e5cdf5..c8ddca8 100644 --- a/FamilyBudget/FamilyBudget/Repositories/Implementations/ExpenseBudgetRepository.cs +++ b/FamilyBudget/FamilyBudget/Repositories/Implementations/ExpenseBudgetRepository.cs @@ -98,11 +98,10 @@ namespace FamilyBudget.Repositories.Implementations using var connection = new NpgsqlConnection(_connectionString.ConnectionString); var querySelect = @"SELECT eb.*, fmeb.expensebudgetId, fmeb.sum, fmeb.ExpensebudgetCategoryId FROM ExpenseBudget eb INNER JOIN familymember_expensebudget fmeb on fmeb.expensebudgetid = eb.id"; - var expensesBudget = connection.Query(querySelect); - _logger.LogDebug("Полученные объекты: {json}", - JsonConvert.SerializeObject(expensesBudget)); - return expensesBudget.GroupBy(x => x.Id, y => y, (key, value) => ExpenseBudget.CreateOperation(value.First(), - value.Select(z => FamilyMember_ExpenseBudget.CreateElement(0, z.ExpenseBudgetCategoryID, z.Id, z.Sum)))).ToList(); + var expensesBudget = connection.Query(querySelect); + //_logger.LogDebug("Полученные объекты: {json}", + //JsonConvert.SerializeObject(expensesBudget)); + return null; } catch (Exception ex) { diff --git a/FamilyBudget/FamilyBudget/Repositories/Implementations/FamilyMemberRepository.cs b/FamilyBudget/FamilyBudget/Repositories/Implementations/FamilyMemberRepository.cs index 7a12d22..d4b530e 100644 --- a/FamilyBudget/FamilyBudget/Repositories/Implementations/FamilyMemberRepository.cs +++ b/FamilyBudget/FamilyBudget/Repositories/Implementations/FamilyMemberRepository.cs @@ -8,6 +8,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows.Forms; namespace FamilyBudget.Repositories.Implementations { @@ -93,7 +94,8 @@ namespace FamilyBudget.Repositories.Implementations try { using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = "SELECT * FROM FamilyMember"; + var querySelect = @"SELECT fm.*, f.name as FamilyName + FROM FamilyMember fm left join family f on f.id = fm.familyid"; var familyMembers = connection.Query(querySelect); _logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(familyMembers)); return familyMembers; diff --git a/FamilyBudget/FamilyBudget/Repositories/Implementations/IncomeBudgetRepository.cs b/FamilyBudget/FamilyBudget/Repositories/Implementations/IncomeBudgetRepository.cs index a50c1a7..5ec5459 100644 --- a/FamilyBudget/FamilyBudget/Repositories/Implementations/IncomeBudgetRepository.cs +++ b/FamilyBudget/FamilyBudget/Repositories/Implementations/IncomeBudgetRepository.cs @@ -1,8 +1,10 @@ using Dapper; +using DocumentFormat.OpenXml.Office2013.Word; using FamilyBudget.Entities; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Npgsql; +using ProjectFamilyBudget.Repositories.Implementations; using System; using System.Collections.Generic; using System.Linq; @@ -94,15 +96,51 @@ namespace FamilyBudget.Repositories.Implementations _logger.LogInformation("Получение всех объектов"); try { + var builder = new QueryBuilder(); + if (dateFrom.HasValue) + { + builder.AddCondition("pi.DataReciept >= @dateForm"); + } + if (dateTo.HasValue) + { + builder.AddCondition("pi.DataReciept <= @dateTo"); + } + if (familyMemberId.HasValue) + { + builder.AddCondition("pi.PeopleId = @peopleId"); + } + if (BudgetIncomeId.HasValue) + { + builder.AddCondition("ipi.IncomeId = @incomeId"); + } using var connection = new NpgsqlConnection(_connectionString.ConnectionString); - var querySelect = @"SELECT ib.*, fmib.incomebudgetId, fmib.sum, fmib.incomebudgetcategoryid FROM incomeBudget ib - INNER JOIN familymember_incomebudget fmib on fmib.incomebudgetid = ib.id"; - var incomesBudget = connection.Query(querySelect); + var querySelect = $@"SELECT ib.*, CONCAT(fm.Name, ' ', f.Name) as people, + fmib.incomebudgetId, fmib.sum, + fmib.incomebudgetcategoryid FROM incomeBudget ib + LEFT JOIN familymember_incomebudget fmib on fmib.incomebudgetid = ib.id + LEFT JOIN Familymember fm on fm.Id = fmib.familymemberid + LEFT JOIN Family f on f.Id = fm.familyid + {builder.Build()}"; + // var incomeDict = new Dictionary>(); + // var peopleIncomes = connection.Query(querySelect, + // (income, peopleIncomes) => + // { + // if (!incomeDict.TryGetValue(income.Id, out var fmi)) + // { + // fmi = []; + // incomeDict.Add(income.Id, fmi); + // } - _logger.LogDebug("Полученные объекты: {json}", - JsonConvert.SerializeObject(incomesBudget)); - return incomesBudget.GroupBy(x => x.Id, y => y, (key, value) => IncomeBudget.CreateOperation(value.First(), - value.Select(z => FamilyMember_IncomeBudget.CreateElement(0, z.IncomeBudgetCategoryID, z.Id, z.Sum)))).ToList(); + // fmi.Add(peopleIncomes); + // return income; + // }, splitOn: "IncomeId", param: new { dateFrom, dateTo, familyMemberId, BudgetIncomeId }); + // _logger.LogDebug("Полученные объекты: {json}", + + //_logger.LogDebug("Полученные объекты: {json}", + // JsonConvert.SerializeObject(incomesBudget)); + // return incomesBudget.GroupBy(x => x.Id, y => y, (key, value) => IncomeBudget.CreateOperation(value.First(), + // value.Select(z => FamilyMember_IncomeBudget.CreateElement(0, z.IncomeBudgetCategoryID, z.Id, z.Sum)))).ToList(); + return null; } catch (Exception ex) { diff --git a/FamilyBudget/FamilyBudget/Repositories/Implementations/QueryBuilder.cs b/FamilyBudget/FamilyBudget/Repositories/Implementations/QueryBuilder.cs new file mode 100644 index 0000000..abf174b --- /dev/null +++ b/FamilyBudget/FamilyBudget/Repositories/Implementations/QueryBuilder.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectFamilyBudget.Repositories.Implementations; + +public class QueryBuilder +{ + private readonly StringBuilder _builder; + public QueryBuilder() + { + _builder = new(); + } + public QueryBuilder AddCondition(string condition) + { + if (_builder.Length > 0) + { + _builder.Append(" AND "); + } + _builder.Append(condition); + return this; + } + public string Build() + { + if (_builder.Length == 0) + { + return string.Empty; + } + return $"WHERE {_builder}"; + } +} \ No newline at end of file