#129 anonymous methods for querying donations and expenses

This commit is contained in:
Hamid Reza Mohammadi 2021-06-05 21:41:12 +04:30
parent 178a33aabe
commit 44bf79686c
4 changed files with 156 additions and 0 deletions

View File

@ -15,6 +15,29 @@ namespace RMuseum.Controllers
[Route("api/donations")]
public class DonationAccountingController : Controller
{
/// <summary>
/// returns all donations
/// </summary>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorDonationViewModel[]))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> GetDonations()
{
try
{
var res = await _donationService.GetDonations();
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
return Ok(res.Result);
}
catch (Exception exp)
{
return BadRequest(exp.ToString());
}
}
/// <summary>
/// add donation + regenerate donations page
/// </summary>
@ -69,6 +92,29 @@ namespace RMuseum.Controllers
}
}
/// <summary>
/// returns all expenses
/// </summary>
/// <returns></returns>
[HttpGet("expenses")]
[AllowAnonymous]
[ProducesResponseType((int)HttpStatusCode.OK, Type = typeof(GanjoorExpense[]))]
[ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))]
public async Task<IActionResult> GetExpenses()
{
try
{
var res = await _donationService.GetExpenses();
if (!string.IsNullOrEmpty(res.ExceptionString))
return BadRequest(res.ExceptionString);
return Ok(res.Result);
}
catch (Exception exp)
{
return BadRequest(exp.ToString());
}
}
/// <summary>
/// add expense + regenerate donations page
/// </summary>

View File

@ -584,6 +584,12 @@
<param name="auditLogService">
</param>
</member>
<member name="M:RMuseum.Controllers.DonationAccountingController.GetDonations">
<summary>
returns all donations
</summary>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.DonationAccountingController.AddDonation(RMuseum.Models.Accounting.ViewModels.GanjoorDonationViewModel)">
<summary>
add donation + regenerate donations page
@ -598,6 +604,12 @@
<param name="id"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.DonationAccountingController.GetExpenses">
<summary>
returns all expenses
</summary>
<returns></returns>
</member>
<member name="M:RMuseum.Controllers.DonationAccountingController.AddExpense(RMuseum.Models.Accounting.GanjoorExpense)">
<summary>
add expense + regenerate donations page
@ -6901,6 +6913,18 @@
<param name="note"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.IDonationService.GetDonations">
<summary>
returns all donations
</summary>
<returns></returns>
</member>
<member name="M:RMuseum.Services.IDonationService.GetExpenses">
<summary>
returns all expenses
</summary>
<returns></returns>
</member>
<member name="P:RMuseum.Services.IDonationService.ShowAccountInfo">
<summary>
Show Donating Information (temporary switch off/on)
@ -8000,6 +8024,18 @@
<param name="id"></param>
<returns></returns>
</member>
<member name="M:RMuseum.Services.Implementation.DonationService.GetDonations">
<summary>
returns all donations
</summary>
<returns></returns>
</member>
<member name="M:RMuseum.Services.Implementation.DonationService.GetExpenses">
<summary>
returns all expenses
</summary>
<returns></returns>
</member>
<member name="T:RMuseum.Services.Implementation.DonationService.DonationPageRow">
<summary>
donation page row

View File

@ -57,6 +57,18 @@ namespace RMuseum.Services
/// <returns></returns>
Task<RServiceResult<bool>> RegenerateDonationsPage(Guid editingUserId, string note);
/// <summary>
/// returns all donations
/// </summary>
/// <returns></returns>
Task<RServiceResult<GanjoorDonationViewModel[]>> GetDonations();
/// <summary>
/// returns all expenses
/// </summary>
/// <returns></returns>
Task<RServiceResult<GanjoorExpense[]>> GetExpenses();
/// <summary>
/// Show Donating Information (temporary switch off/on)
/// </summary>

View File

@ -283,6 +283,68 @@ namespace RMuseum.Services.Implementation
}
}
/// <summary>
/// returns all donations
/// </summary>
/// <returns></returns>
public async Task<RServiceResult<GanjoorDonationViewModel[]>> GetDonations()
{
try
{
return new RServiceResult<GanjoorDonationViewModel[]>
(
await _context.GanjoorDonations
.AsNoTracking()
.OrderByDescending(d => d.Id)
.Select
(
d =>
new GanjoorDonationViewModel()
{
Id = d.Id,
Amount = d.Amount,
AmountString = d.AmountString,
DateString = d.DateString,
DonorName = d.DonorName,
ExpenditureDesc = d.ExpenditureDesc,
ImportedRecord = d.ImportedRecord,
RecordDate = d.RecordDate,
Remaining = d.Remaining,
Unit = d.Unit
}
).ToArrayAsync()
);
}
catch(Exception exp)
{
return new RServiceResult<GanjoorDonationViewModel[]>(null, exp.ToString());
}
}
/// <summary>
/// returns all expenses
/// </summary>
/// <returns></returns>
public async Task<RServiceResult<GanjoorExpense[]>> GetExpenses()
{
try
{
return new RServiceResult<GanjoorExpense[]>
(
await _context.GanjoorExpenses
.AsNoTracking()
.OrderByDescending(x => x.Id)
.ToArrayAsync()
);
}
catch (Exception exp)
{
return new RServiceResult<GanjoorExpense[]>(null, exp.ToString());
}
}
/// <summary>
/// donation page row
/// </summary>