stll has errors
This commit is contained in:
parent
6d3fd79a5d
commit
9e0c116449
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@ -9,8 +10,15 @@ namespace FamilyBudget.Entities
|
|||||||
public class ExpenseBudget
|
public class ExpenseBudget
|
||||||
{
|
{
|
||||||
public int Id { get; private set; }
|
public int Id { get; private set; }
|
||||||
|
[Browsable(false)]
|
||||||
public int FamilyMemberId { get; private set; }
|
public int FamilyMemberId { get; private set; }
|
||||||
|
[DisplayName("Семья")]
|
||||||
|
public string Name { get; private set; } = string.Empty;
|
||||||
|
[DisplayName("Дата")]
|
||||||
public DateTime Date { get; private set; }
|
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_ExpenseBudget> FamilyMember_Expenses { get; private set; } = [];
|
public IEnumerable<FamilyMember_ExpenseBudget> FamilyMember_Expenses { get; private set; } = [];
|
||||||
|
|
||||||
public static ExpenseBudget СreateOperation(int id, int familyMemberId, IEnumerable<FamilyMember_ExpenseBudget> familyMember_Expenses)
|
public static ExpenseBudget СreateOperation(int id, int familyMemberId, IEnumerable<FamilyMember_ExpenseBudget> familyMember_Expenses)
|
||||||
@ -24,15 +32,13 @@ namespace FamilyBudget.Entities
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ExpenseBudget CreateOperation(TempExpenseBudgetMember tempExpenseBudgetMember, IEnumerable<FamilyMember_ExpenseBudget> FamilyMember_Expenses)
|
public void setExpenseBudget(IEnumerable<FamilyMember_ExpenseBudget> familyMember_Expenses)
|
||||||
{
|
{
|
||||||
return new ExpenseBudget
|
if (familyMember_Expenses != null && familyMember_Expenses.Any())
|
||||||
{
|
{
|
||||||
Id = tempExpenseBudgetMember.Id,
|
FamilyMember_Expenses = familyMember_Expenses;
|
||||||
FamilyMemberId = tempExpenseBudgetMember.FamilyMemberId,
|
}
|
||||||
Date = tempExpenseBudgetMember.Date,
|
|
||||||
FamilyMember_Expenses = FamilyMember_Expenses
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using FamilyBudget.Entities.Enums;
|
using FamilyBudget.Entities.Enums;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@ -10,8 +11,11 @@ namespace FamilyBudget.Entities
|
|||||||
public class ExpenseBudgetCategory
|
public class ExpenseBudgetCategory
|
||||||
{
|
{
|
||||||
public int Id { get; private set; }
|
public int Id { get; private set; }
|
||||||
|
[DisplayName("Тип расхода")]
|
||||||
public string Name { get; private set; } = string.Empty;
|
public string Name { get; private set; } = string.Empty;
|
||||||
|
[DisplayName("Название")]
|
||||||
public ExpenseCategoryType ExpenseCategoryType { get; private set; }
|
public ExpenseCategoryType ExpenseCategoryType { get; private set; }
|
||||||
|
[DisplayName("Категория")]
|
||||||
public static ExpenseBudgetCategory CreateEntity(int id, string name, ExpenseCategoryType expenseCategoryType)
|
public static ExpenseBudgetCategory CreateEntity(int id, string name, ExpenseCategoryType expenseCategoryType)
|
||||||
{
|
{
|
||||||
return new ExpenseBudgetCategory
|
return new ExpenseBudgetCategory
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@ -9,6 +10,7 @@ namespace FamilyBudget.Entities
|
|||||||
public class Family
|
public class Family
|
||||||
{
|
{
|
||||||
public int Id { get; private set; }
|
public int Id { get; private set; }
|
||||||
|
[DisplayName("Фамилия")]
|
||||||
public string Name { get; private set; } = string.Empty;
|
public string Name { get; private set; } = string.Empty;
|
||||||
public static Family CreateEntity(int id, string name)
|
public static Family CreateEntity(int id, string name)
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
using FamilyBudget.Entities.Enums;
|
using DocumentFormat.OpenXml.Wordprocessing;
|
||||||
|
using FamilyBudget.Entities.Enums;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@ -10,8 +12,15 @@ namespace FamilyBudget.Entities
|
|||||||
public class FamilyMember
|
public class FamilyMember
|
||||||
{
|
{
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
|
[DisplayName("Имя")]
|
||||||
public string Name { get; private set; } = string.Empty;
|
public string Name { get; private set; } = string.Empty;
|
||||||
|
[Browsable(false)]
|
||||||
public int FamilyId { get; private set; }
|
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 FamilyMemberType MemberType { get; private set; }
|
||||||
|
|
||||||
public static FamilyMember CreateEntity(int id, string name, int familyId, FamilyMemberType memberType)
|
public static FamilyMember CreateEntity(int id, string name, int familyId, FamilyMemberType memberType)
|
||||||
|
@ -12,6 +12,7 @@ namespace FamilyBudget.Entities
|
|||||||
public int ExpenseBudgetId { get; private set; }
|
public int ExpenseBudgetId { get; private set; }
|
||||||
public int ExpenseCategoryID { get; private set; }
|
public int ExpenseCategoryID { get; private set; }
|
||||||
public int Sum { 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)
|
public static FamilyMember_ExpenseBudget CreateElement(int id, int expenseCategoryID, int expenseBudgetId, int sum)
|
||||||
{
|
{
|
||||||
return new FamilyMember_ExpenseBudget()
|
return new FamilyMember_ExpenseBudget()
|
||||||
|
@ -12,6 +12,7 @@ namespace FamilyBudget.Entities
|
|||||||
public int IncomeBudgetId { get; private set;}
|
public int IncomeBudgetId { get; private set;}
|
||||||
public int IncomeBudgetCategoryId { get; private set; }
|
public int IncomeBudgetCategoryId { get; private set; }
|
||||||
public int Sum { 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)
|
public static FamilyMember_IncomeBudget CreateElement(int id, int incomeBudgetCategoryId, int incomeBudgetId, int sum)
|
||||||
{
|
{
|
||||||
return new FamilyMember_IncomeBudget()
|
return new FamilyMember_IncomeBudget()
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@ -9,8 +10,16 @@ namespace FamilyBudget.Entities
|
|||||||
public class IncomeBudget
|
public class IncomeBudget
|
||||||
{
|
{
|
||||||
public int Id { get; private set; }
|
public int Id { get; private set; }
|
||||||
|
[Browsable(false)]
|
||||||
public int FamilyMemberId { get; private set; }
|
public int FamilyMemberId { get; private set; }
|
||||||
|
[DisplayName("Семья")]
|
||||||
|
public string FamilyName { get; private set; } = string.Empty;
|
||||||
|
[DisplayName("Дата")]
|
||||||
public DateTime Date { get; private set; }
|
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_IncomeBudget> FamilyMember_Incomes { get; private set; } = [];
|
public IEnumerable<FamilyMember_IncomeBudget> FamilyMember_Incomes { get; private set; } = [];
|
||||||
|
|
||||||
public static IncomeBudget CreateOperation(int id, int familyMemberId, IEnumerable<FamilyMember_IncomeBudget> FamilyMember_Incomes)
|
public static IncomeBudget CreateOperation(int id, int familyMemberId, IEnumerable<FamilyMember_IncomeBudget> FamilyMember_Incomes)
|
||||||
@ -24,15 +33,13 @@ namespace FamilyBudget.Entities
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IncomeBudget CreateOperation(TempIncomeBudgetMember tempIncomeBudgetMember, IEnumerable<FamilyMember_IncomeBudget> FamilyMember_Incomes)
|
public void setIncomeBudget(IEnumerable<FamilyMember_IncomeBudget> familyMember_Incomes)
|
||||||
{
|
{
|
||||||
return new IncomeBudget
|
if (familyMember_Incomes != null && familyMember_Incomes.Any())
|
||||||
{
|
{
|
||||||
Id = tempIncomeBudgetMember.Id,
|
FamilyMember_Incomes = familyMember_Incomes;
|
||||||
FamilyMemberId = tempIncomeBudgetMember.FamilyMemberId,
|
}
|
||||||
FamilyMember_Incomes = FamilyMember_Incomes,
|
|
||||||
Date = tempIncomeBudgetMember.Date
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using FamilyBudget.Entities.Enums;
|
using FamilyBudget.Entities.Enums;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@ -10,8 +11,11 @@ namespace FamilyBudget.Entities
|
|||||||
public class IncomeBudgetCategory
|
public class IncomeBudgetCategory
|
||||||
{
|
{
|
||||||
public int Id { get; private set; }
|
public int Id { get; private set; }
|
||||||
|
[DisplayName("Тип дохода")]
|
||||||
public string Name { get; private set; } = string.Empty;
|
public string Name { get; private set; } = string.Empty;
|
||||||
|
[DisplayName("Название")]
|
||||||
public IncomeCategoryType IncomeCategoryType { get; private set; }
|
public IncomeCategoryType IncomeCategoryType { get; private set; }
|
||||||
|
[DisplayName("Категория")]
|
||||||
public static IncomeBudgetCategory CreateEntity(int id, string name, IncomeCategoryType incomeCategoryType)
|
public static IncomeBudgetCategory CreateEntity(int id, string name, IncomeCategoryType incomeCategoryType)
|
||||||
{
|
{
|
||||||
return new IncomeBudgetCategory
|
return new IncomeBudgetCategory
|
||||||
|
@ -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; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -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; }
|
|
||||||
}
|
|
||||||
}
|
|
@ -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)
|
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||||
{
|
{
|
||||||
|
@ -23,7 +23,7 @@ namespace FamilyBudget.Forms
|
|||||||
_expenseBudgetRepository = expenseBudgetRepository ?? throw new ArgumentNullException(nameof(
|
_expenseBudgetRepository = expenseBudgetRepository ?? throw new ArgumentNullException(nameof(
|
||||||
expenseBudgetRepository));
|
expenseBudgetRepository));
|
||||||
comboBoxFamilyMember.DataSource = familyMemberRepository.ReadFamilyMembers();
|
comboBoxFamilyMember.DataSource = familyMemberRepository.ReadFamilyMembers();
|
||||||
comboBoxFamilyMember.DisplayMember = "Name";
|
comboBoxFamilyMember.DisplayMember = "FullName";
|
||||||
comboBoxFamilyMember.ValueMember = "Id";
|
comboBoxFamilyMember.ValueMember = "Id";
|
||||||
|
|
||||||
ColumnExpanseName.DataSource = expenses.ReadExpenseBudgetCategories();
|
ColumnExpanseName.DataSource = expenses.ReadExpenseBudgetCategories();
|
||||||
|
@ -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)
|
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||||
{
|
{
|
||||||
|
@ -23,7 +23,7 @@ namespace FamilyBudget.Forms
|
|||||||
_incomeBudgetRepository = incomeBudgetRepository ?? throw new ArgumentNullException(nameof(
|
_incomeBudgetRepository = incomeBudgetRepository ?? throw new ArgumentNullException(nameof(
|
||||||
incomeBudgetRepository));
|
incomeBudgetRepository));
|
||||||
comboBoxFamilyMember.DataSource = familyMemberRepository.ReadFamilyMembers();
|
comboBoxFamilyMember.DataSource = familyMemberRepository.ReadFamilyMembers();
|
||||||
comboBoxFamilyMember.DisplayMember = "Name";
|
comboBoxFamilyMember.DisplayMember = "FullName";
|
||||||
comboBoxFamilyMember.ValueMember = "Id";
|
comboBoxFamilyMember.ValueMember = "Id";
|
||||||
|
|
||||||
ColumnIncomeName.DataSource = incomes.ReadIncomeBudgetCategories();
|
ColumnIncomeName.DataSource = incomes.ReadIncomeBudgetCategories();
|
||||||
|
@ -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)
|
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||||
{
|
{
|
||||||
|
@ -95,6 +95,7 @@
|
|||||||
dataGridViewIncomes.Name = "dataGridViewIncomes";
|
dataGridViewIncomes.Name = "dataGridViewIncomes";
|
||||||
dataGridViewIncomes.ReadOnly = true;
|
dataGridViewIncomes.ReadOnly = true;
|
||||||
dataGridViewIncomes.RowHeadersVisible = false;
|
dataGridViewIncomes.RowHeadersVisible = false;
|
||||||
|
dataGridViewIncomes.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
||||||
dataGridViewIncomes.Size = new Size(664, 450);
|
dataGridViewIncomes.Size = new Size(664, 450);
|
||||||
dataGridViewIncomes.TabIndex = 1;
|
dataGridViewIncomes.TabIndex = 1;
|
||||||
//
|
//
|
||||||
|
@ -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)
|
private bool TryGetIdentifierFromSelectedRow(out int id)
|
||||||
{
|
{
|
||||||
|
@ -98,11 +98,10 @@ namespace FamilyBudget.Repositories.Implementations
|
|||||||
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
|
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
|
||||||
var querySelect = @"SELECT eb.*, fmeb.expensebudgetId, fmeb.sum, fmeb.ExpensebudgetCategoryId FROM ExpenseBudget eb
|
var querySelect = @"SELECT eb.*, fmeb.expensebudgetId, fmeb.sum, fmeb.ExpensebudgetCategoryId FROM ExpenseBudget eb
|
||||||
INNER JOIN familymember_expensebudget fmeb on fmeb.expensebudgetid = eb.id";
|
INNER JOIN familymember_expensebudget fmeb on fmeb.expensebudgetid = eb.id";
|
||||||
var expensesBudget = connection.Query<TempExpenseBudgetMember>(querySelect);
|
var expensesBudget = connection.Query<FamilyMember>(querySelect);
|
||||||
_logger.LogDebug("Полученные объекты: {json}",
|
//_logger.LogDebug("Полученные объекты: {json}",
|
||||||
JsonConvert.SerializeObject(expensesBudget));
|
//JsonConvert.SerializeObject(expensesBudget));
|
||||||
return expensesBudget.GroupBy(x => x.Id, y => y, (key, value) => ExpenseBudget.CreateOperation(value.First(),
|
return null;
|
||||||
value.Select(z => FamilyMember_ExpenseBudget.CreateElement(0, z.ExpenseBudgetCategoryID, z.Id, z.Sum)))).ToList();
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -8,6 +8,7 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
namespace FamilyBudget.Repositories.Implementations
|
namespace FamilyBudget.Repositories.Implementations
|
||||||
{
|
{
|
||||||
@ -93,7 +94,8 @@ namespace FamilyBudget.Repositories.Implementations
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
|
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<FamilyMember>(querySelect);
|
var familyMembers = connection.Query<FamilyMember>(querySelect);
|
||||||
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(familyMembers));
|
_logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(familyMembers));
|
||||||
return familyMembers;
|
return familyMembers;
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
using Dapper;
|
using Dapper;
|
||||||
|
using DocumentFormat.OpenXml.Office2013.Word;
|
||||||
using FamilyBudget.Entities;
|
using FamilyBudget.Entities;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using Npgsql;
|
using Npgsql;
|
||||||
|
using ProjectFamilyBudget.Repositories.Implementations;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -94,15 +96,51 @@ namespace FamilyBudget.Repositories.Implementations
|
|||||||
_logger.LogInformation("Получение всех объектов");
|
_logger.LogInformation("Получение всех объектов");
|
||||||
try
|
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);
|
using var connection = new NpgsqlConnection(_connectionString.ConnectionString);
|
||||||
var querySelect = @"SELECT ib.*, fmib.incomebudgetId, fmib.sum, fmib.incomebudgetcategoryid FROM incomeBudget ib
|
var querySelect = $@"SELECT ib.*, CONCAT(fm.Name, ' ', f.Name) as people,
|
||||||
INNER JOIN familymember_incomebudget fmib on fmib.incomebudgetid = ib.id";
|
fmib.incomebudgetId, fmib.sum,
|
||||||
var incomesBudget = connection.Query<TempIncomeBudgetMember>(querySelect);
|
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<int, List<FamilyMember_IncomeBudget>>();
|
||||||
|
// var peopleIncomes = connection.Query<FamilyMember, Family, IncomeBudget, FamilyMember_IncomeBudget>(querySelect,
|
||||||
|
// (income, peopleIncomes) =>
|
||||||
|
// {
|
||||||
|
// if (!incomeDict.TryGetValue(income.Id, out var fmi))
|
||||||
|
// {
|
||||||
|
// fmi = [];
|
||||||
|
// incomeDict.Add(income.Id, fmi);
|
||||||
|
// }
|
||||||
|
|
||||||
_logger.LogDebug("Полученные объекты: {json}",
|
// fmi.Add(peopleIncomes);
|
||||||
JsonConvert.SerializeObject(incomesBudget));
|
// return income;
|
||||||
return incomesBudget.GroupBy(x => x.Id, y => y, (key, value) => IncomeBudget.CreateOperation(value.First(),
|
// }, splitOn: "IncomeId", param: new { dateFrom, dateTo, familyMemberId, BudgetIncomeId });
|
||||||
value.Select(z => FamilyMember_IncomeBudget.CreateElement(0, z.IncomeBudgetCategoryID, z.Id, z.Sum)))).ToList();
|
// _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)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -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}";
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user