feat : add 0.6.10.11 , add shift plan date filter , fix reporting
parent
60366045bf
commit
1cac63112e
|
@ -13,7 +13,7 @@
|
|||
}
|
||||
},
|
||||
"SiteSettings": {
|
||||
"BaseUrl": "http://192.168.88.251:32769",
|
||||
"BaseUrl": "http://192.168.1.12:32767",
|
||||
"KaveNegarApiKey": "3735494B4143727A794346457461576A2B4B6668414973424E333561505A694B",
|
||||
"UserSetting": {
|
||||
"Username": "root",
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||
<DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
|
||||
<AssemblyVersion>0.5.9.10</AssemblyVersion>
|
||||
<FileVersion>0.5.9.10</FileVersion>
|
||||
<AssemblyVersion>0.6.10.11</AssemblyVersion>
|
||||
<FileVersion>0.6.10.11</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
using Brizco.Core.CoreServices.ReportServices.Commands;
|
||||
using MediatR;
|
||||
|
||||
namespace Brizco.Api.Controllers;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<!--<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<LangVersion>10</LangVersion>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
|
@ -12,9 +12,9 @@
|
|||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
|
||||
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="7.5.1" />
|
||||
</ItemGroup>
|
||||
</ItemGroup>-->
|
||||
|
||||
<!--<PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<LangVersion>10</LangVersion>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
|
@ -25,7 +25,7 @@
|
|||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
|
||||
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="7.0.3" />
|
||||
</ItemGroup>-->
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Using Include="MD.PersianDateTime.Standard" />
|
||||
|
|
|
@ -50,7 +50,14 @@ public class PageService : IPageService
|
|||
TodayStaffNames = names,
|
||||
TotalStaffToday = todayShiftPlans.SelectMany(sp => sp.Users).Count()
|
||||
};
|
||||
|
||||
|
||||
var currentShift = todayShiftPlans.FirstOrDefault(s => s.EndAt >= DateTime.Now.TimeOfDay && s.StartAt <= DateTime.Now.TimeOfDay);
|
||||
if (currentShift != null)
|
||||
{
|
||||
page.CurrentShift = currentShift.ShiftTitle;
|
||||
page.CurrentPosition = currentShift.Users.FirstOrDefault(f => f.UserId == userId)?.PositionName ?? string.Empty;
|
||||
}
|
||||
|
||||
if (_currentUserService.Permissions != null)
|
||||
{
|
||||
int totalStepCount = 0;
|
||||
|
@ -61,8 +68,8 @@ public class PageService : IPageService
|
|||
totalStepCount++;
|
||||
var hasRoutine = await _repositoryWrapper.SetRepository<Routine>()
|
||||
.TableNoTracking
|
||||
.AnyAsync(r=>r.ComplexId== complexId, cancellationToken);
|
||||
if(hasRoutine)
|
||||
.AnyAsync(r => r.ComplexId == complexId, cancellationToken);
|
||||
if (hasRoutine)
|
||||
completeStepCount++;
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
using Brizco.Domain.Entities.Shift;
|
||||
using Brizco.Domain.Entities.Task;
|
||||
using MD.PersianDateTime.Standard;
|
||||
|
||||
namespace Brizco.Core.CoreServices.ReportServices;
|
||||
public class ShiftPlanReportCommandHandler : IRequestHandler<ShiftPlanReportCommand, byte[]>
|
||||
|
@ -52,11 +53,16 @@ public class ShiftPlanReportCommandHandler : IRequestHandler<ShiftPlanReportComm
|
|||
|
||||
var statusCell = row.CreateCell(2);
|
||||
statusCell.CellStyle = style;
|
||||
statusCell.SetCellValue(activity.Status.ToDisplay());
|
||||
if (activity.Status is ActivityStatus.Done or ActivityStatus.Complete)
|
||||
statusCell.SetCellValue("✅");
|
||||
else if (activity.Status is ActivityStatus.UnDone or ActivityStatus.InProgress)
|
||||
statusCell.SetCellValue("❌");
|
||||
else
|
||||
statusCell.SetCellValue(activity.Status.ToDisplay());
|
||||
|
||||
var doneAtCell = row.CreateCell(3);
|
||||
doneAtCell.CellStyle = style;
|
||||
doneAtCell.SetCellValue(activity.Title);
|
||||
doneAtCell.SetCellValue((new PersianDateTime(activity.DoneAt)).ToLongTimeString());
|
||||
|
||||
var unDoneReasonCell = row.CreateCell(4);
|
||||
unDoneReasonCell.CellStyle = style;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<!--<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
@ -13,10 +13,10 @@
|
|||
<PackageReference Include="MediatR" Version="12.2.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="8.0.4" />
|
||||
<PackageReference Include="PropertyChanged.Fody" Version="4.1.0" />
|
||||
</ItemGroup>
|
||||
</ItemGroup>-->
|
||||
|
||||
|
||||
<!--<PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<LangVersion>10</LangVersion>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
|
@ -32,7 +32,7 @@
|
|||
<PackageReference Include="Microsoft.Extensions.Identity.Stores" Version="5.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.0" />
|
||||
<PackageReference Include="PropertyChanged.Fody" Version="4.1.0" />
|
||||
</ItemGroup>-->
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<Target Name="Mapster">
|
||||
|
|
|
@ -8,6 +8,9 @@ public class AppDashboardPageDto
|
|||
public int TotalShiftToday { get; set; }
|
||||
public int TotalStaffToday { get; set; }
|
||||
public List<string> TodayStaffNames { get; set; } = new();
|
||||
public string CurrentPosition { get; set; } = string.Empty;
|
||||
public string CurrentShift { get; set; } = string.Empty;
|
||||
|
||||
|
||||
public string CurrentSignUpStep { get; set; } = string.Empty;
|
||||
public int SignUpCompletePercent { get; set; }
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
using Brizco.Domain.Entities.Task;
|
||||
|
||||
namespace Brizco.Domain.Dtos.SmallDtos;
|
||||
namespace Brizco.Domain.Dtos.SmallDtos;
|
||||
|
||||
public class ActivitySDto : BaseDto<ActivitySDto , Activity>
|
||||
{
|
||||
|
|
|
@ -13,6 +13,8 @@ public class ShiftPlanSDto : BaseDto<ShiftPlanSDto,ShiftPlan>
|
|||
public string CompleteDescription { get; set; } = string.Empty;
|
||||
public Guid ShiftId { get; set; }
|
||||
public string ShiftTitle { get; set; } = string.Empty;
|
||||
public TimeSpan StartAt { get; set; }
|
||||
public TimeSpan EndAt { get; set; }
|
||||
|
||||
public List<ShiftPlanUserSDto> Users { get; set; } = new();
|
||||
}
|
|
@ -1,6 +1,4 @@
|
|||
using Brizco.Domain.Entities.Shift;
|
||||
|
||||
namespace Brizco.Domain.Dtos.SmallDtos;
|
||||
namespace Brizco.Domain.Dtos.SmallDtos;
|
||||
|
||||
public class ShiftPlanUserSDto : BaseDto<ShiftPlanUserSDto,ShiftPlanUser>
|
||||
{
|
||||
|
|
|
@ -14,6 +14,7 @@ public class TaskSDto : BaseDto<TaskSDto,Entities.Task.Task>
|
|||
public List<string> Shifts { get; set; } = new();
|
||||
public List<string> Routines { get; set; } = new();
|
||||
public List<string> Positions { get; set; } = new();
|
||||
public List<string> Days { get; set; } = new();
|
||||
|
||||
public int Amount { get; set; }
|
||||
public PurchaseAmountType AmountType { get; set; }
|
||||
|
|
|
@ -7,6 +7,8 @@ public enum DateTimeQueryFilter
|
|||
Yesterday = 2,
|
||||
PastWeek = 10,
|
||||
NextWeek = 11,
|
||||
ThisWeek = 12,
|
||||
PastMonth = 20,
|
||||
NextMonth = 21
|
||||
NextMonth = 21,
|
||||
ThisMonth = 22,
|
||||
}
|
|
@ -90,6 +90,8 @@ namespace Brizco.Domain.Mappers
|
|||
CompleteDescription = p11.CompleteDescription,
|
||||
ShiftId = p11.ShiftId,
|
||||
ShiftTitle = p11.Shift == null ? null : p11.Shift.Title,
|
||||
StartAt = p11.Shift != null ? p11.Shift.StartAt : TimeSpan.MinValue,
|
||||
EndAt = p11.Shift != null ? p11.Shift.EndAt : TimeSpan.MinValue,
|
||||
Users = funcMain4(p11.Users),
|
||||
Id = p11.Id
|
||||
};
|
||||
|
@ -109,6 +111,8 @@ namespace Brizco.Domain.Mappers
|
|||
result.CompleteDescription = p13.CompleteDescription;
|
||||
result.ShiftId = p13.ShiftId;
|
||||
result.ShiftTitle = p13.Shift == null ? null : p13.Shift.Title;
|
||||
result.StartAt = p13.Shift != null ? p13.Shift.StartAt : TimeSpan.MinValue;
|
||||
result.EndAt = p13.Shift != null ? p13.Shift.EndAt : TimeSpan.MinValue;
|
||||
result.Users = funcMain5(p13.Users, result.Users);
|
||||
result.Id = p13.Id;
|
||||
return result;
|
||||
|
@ -123,6 +127,8 @@ namespace Brizco.Domain.Mappers
|
|||
CompleteDescription = p17.CompleteDescription,
|
||||
ShiftId = p17.ShiftId,
|
||||
ShiftTitle = p17.Shift.Title,
|
||||
StartAt = p17.Shift != null ? p17.Shift.StartAt : TimeSpan.MinValue,
|
||||
EndAt = p17.Shift != null ? p17.Shift.EndAt : TimeSpan.MinValue,
|
||||
Users = p17.Users.Select<ShiftPlanUser, ShiftPlanUserSDto>(p18 => new ShiftPlanUserSDto()
|
||||
{
|
||||
ShiftPlanId = p18.ShiftPlanId,
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,4 +1,5 @@
|
|||
using Task = Brizco.Domain.Entities.Task.Task;
|
||||
using MD.PersianDateTime.Standard;
|
||||
using Task = Brizco.Domain.Entities.Task.Task;
|
||||
|
||||
namespace Brizco.Domain;
|
||||
|
||||
|
@ -11,6 +12,7 @@ public class MapsterRegister : IRegister
|
|||
.Map("Shifts", o => o.Shifts.Select(d => d.Shift != null ? d.Shift.Title : string.Empty))
|
||||
.Map("Routines", o => o.Routines.Select(d => d.Routine != null ? d.Routine.Name : string.Empty))
|
||||
.Map("Positions", o => o.Positions.Select(d => d.Position != null ? d.Position.Name : string.Empty))
|
||||
.Map(s=>s.Days,o=>o.Days.Select(d=> d.DayOfWeek.GetPersianDayOfWeek()).ToList())
|
||||
.TwoWays();
|
||||
|
||||
config.NewConfig<TaskShift, TaskShiftSDto>()
|
||||
|
@ -46,6 +48,8 @@ public class MapsterRegister : IRegister
|
|||
|
||||
config.NewConfig<ShiftPlan, ShiftPlanSDto>()
|
||||
.Map("SupervisorFullName", o => o.Supervisor != null ? o.Supervisor.FirstName + " " + o.Supervisor.LastName : string.Empty)
|
||||
.Map(s=>s.StartAt , o=>o.Shift != null ? o.Shift.StartAt : TimeSpan.MinValue)
|
||||
.Map(s=>s.EndAt , o=>o.Shift != null ? o.Shift.EndAt : TimeSpan.MinValue)
|
||||
.TwoWays();
|
||||
|
||||
config.NewConfig<ShiftPlanUser, ShiftPlanUserSDto>()
|
||||
|
|
|
@ -24,7 +24,7 @@ public class GetActivitiesQueryHandler : IRequestHandler<GetActivitiesQuery, Lis
|
|||
|
||||
|
||||
IQueryable<Domain.Entities.Task.Activity> activities = _repositoryWrapper.SetRepository<Domain.Entities.Task.Activity>().TableNoTracking
|
||||
.Where(a=>a.IsActivity);
|
||||
.Where(a=>a.IsActivity && a.ComplexId == complexId);
|
||||
if (_currentUserService is { Permissions: not null, RoleName: not null })
|
||||
{
|
||||
if (_currentUserService.Permissions.Contains(ApplicationPermission.ViewMineActivities) && _currentUserService.RoleName == ApplicationRoles.Staff)
|
||||
|
@ -52,12 +52,11 @@ public class GetActivitiesQueryHandler : IRequestHandler<GetActivitiesQuery, Lis
|
|||
if (request.SelectedDate > 0)
|
||||
{
|
||||
var selectedDate = DateTimeExtensions.UnixTimeStampToDateTime(request.SelectedDate);
|
||||
activities = activities.Where(a => a.ComplexId == complexId && a.SetFor.Date == selectedDate.Date);
|
||||
activities = activities.Where(a => a.SetFor.Date == selectedDate.Date);
|
||||
}
|
||||
|
||||
if (request.SelectedShift != default)
|
||||
activities = activities.Where(a => a.ComplexId == complexId && a.ShiftId == request.SelectedShift);
|
||||
|
||||
activities = activities.Where(a => a.ShiftId == request.SelectedShift);
|
||||
|
||||
|
||||
var response= await activities.OrderByDescending(s => s.UserId)
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using Brizco.Domain.Entities.Shift;
|
||||
using MD.PersianDateTime.Standard;
|
||||
|
||||
namespace Brizco.Repository.Handlers.ShiftPlan;
|
||||
|
||||
|
@ -25,10 +26,11 @@ public class GetShiftPlansQueryHandler : IRequestHandler<GetShiftPlansQuery, Lis
|
|||
.Where(s => s.ComplexId == complexId);
|
||||
|
||||
List<ShiftPlanSDto> shiftPlans = new List<ShiftPlanSDto>();
|
||||
bool setActiviesCount = false;
|
||||
|
||||
if (request.SelectedDate == 0)
|
||||
{
|
||||
return await baseQuery
|
||||
shiftPlans = await baseQuery
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
|
@ -36,64 +38,104 @@ public class GetShiftPlansQueryHandler : IRequestHandler<GetShiftPlansQuery, Lis
|
|||
}
|
||||
else if (request.SelectedDate > 0)
|
||||
{
|
||||
if (request.SelectedDate > 0)
|
||||
var selectedDate = DateTimeExtensions.UnixTimeStampToDateTime(request.SelectedDate);
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date == selectedDate.Date)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
setActiviesCount = true;
|
||||
}
|
||||
|
||||
if (request.DateTimeQueryFilter != null)
|
||||
{
|
||||
|
||||
setActiviesCount = true;
|
||||
switch (request.DateTimeQueryFilter)
|
||||
{
|
||||
var selectedDate = DateTimeExtensions.UnixTimeStampToDateTime(request.SelectedDate);
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date == selectedDate.Date)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (request.DateTimeQueryFilter)
|
||||
{
|
||||
case DateTimeQueryFilter.Today:
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date == DateTime.Now.Date)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
case DateTimeQueryFilter.Yesterday:
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date == DateTime.Now.AddDays(-1).Date)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
case DateTimeQueryFilter.PastWeek:
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date >= DateTime.Now.AddDays(-7).Date)
|
||||
.OrderByDescending(s => s.CreatedAt)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
case DateTimeQueryFilter.NextWeek:
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date >= DateTime.Now.Date && s.PlanFor.Date <= DateTime.Today.AddDays(+7))
|
||||
.OrderByDescending(s => s.CreatedAt)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
case DateTimeQueryFilter.PastMonth:
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date >= DateTime.Now.AddDays(-31).Date)
|
||||
.OrderByDescending(s => s.CreatedAt)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
case DateTimeQueryFilter.NextMonth:
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date >= DateTime.Now.Date && s.PlanFor.Date <= DateTime.Today.AddDays(+31))
|
||||
.OrderByDescending(s => s.CreatedAt)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
case null:
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
case DateTimeQueryFilter.Today:
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date == DateTime.Now.Date)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
case DateTimeQueryFilter.Yesterday:
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date == DateTime.Now.AddDays(-1).Date)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
case DateTimeQueryFilter.PastWeek:
|
||||
DateTime pastWeekToday = DateTime.Today;
|
||||
int pastWeekDelta = DayOfWeek.Saturday - pastWeekToday.DayOfWeek;
|
||||
if (pastWeekDelta > 0) pastWeekDelta -= 7;
|
||||
DateTime startOfPastWeek = DateTime.Today.AddDays(pastWeekDelta).AddDays(-7);
|
||||
DateTime endOfPastWeek = startOfPastWeek.AddDays(6);
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date >= startOfPastWeek.Date && s.PlanFor.Date <= endOfPastWeek.Date)
|
||||
.OrderByDescending(s => s.CreatedAt)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
case DateTimeQueryFilter.NextWeek:
|
||||
DateTime startOfNextWeek = DateTime.Today.AddDays(7 - (int)DateTime.Today.DayOfWeek + 1);
|
||||
DateTime endOfNextWeek = startOfNextWeek.AddDays(5);
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date >= startOfNextWeek.Date && s.PlanFor.Date <= endOfNextWeek.Date)
|
||||
.OrderByDescending(s => s.CreatedAt)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
case DateTimeQueryFilter.ThisWeek:
|
||||
DateTime today = DateTime.Today;
|
||||
int delta = DayOfWeek.Saturday - today.DayOfWeek;
|
||||
if (delta > 0) delta -= 7;
|
||||
DateTime startOfWeek = today.AddDays(delta);
|
||||
DateTime endOfWeek = startOfWeek.AddDays(6);
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date >= startOfWeek.Date && s.PlanFor.Date <= endOfWeek.Date)
|
||||
.OrderByDescending(s => s.CreatedAt)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
case DateTimeQueryFilter.PastMonth:
|
||||
|
||||
DateTime startOfPastMonth = new PersianDateTime(PersianDateTime.Today.AddMonths(-1).Year, PersianDateTime.Today.AddMonths(-1).Month, 1).ToDateTime();
|
||||
DateTime endOfPastMonth = startOfPastMonth.AddMonths(1);
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date >= startOfPastMonth.Date && s.PlanFor.Date < endOfPastMonth.Date)
|
||||
.OrderByDescending(s => s.CreatedAt)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
case DateTimeQueryFilter.NextMonth:
|
||||
DateTime startOfNextMonth = new PersianDateTime(PersianDateTime.Today.AddMonths(1).Year, PersianDateTime.Today.AddMonths(1).Month, 1).ToDateTime();
|
||||
DateTime endOfNextMonth = startOfNextMonth.AddMonths(1);
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date >= startOfNextMonth.Date && s.PlanFor.Date < endOfNextMonth.Date)
|
||||
.OrderByDescending(s => s.CreatedAt)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
|
||||
case DateTimeQueryFilter.ThisMonth:
|
||||
DateTime startOfThisMonth = new PersianDateTime(PersianDateTime.Today.Year, PersianDateTime.Today.Month, 1).ToDateTime();
|
||||
DateTime endOfThisMonth = startOfThisMonth.AddMonths(1);
|
||||
shiftPlans = await baseQuery.Where(s => s.PlanFor.Date >= startOfThisMonth.Date && s.PlanFor.Date < endOfThisMonth.Date)
|
||||
.OrderByDescending(s => s.CreatedAt)
|
||||
.Skip(request.Page * 15).Take(15)
|
||||
.Select(ShiftPlanMapper.ProjectToSDto)
|
||||
.ToListAsync(cancellationToken);
|
||||
break;
|
||||
case null:
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (setActiviesCount)
|
||||
{
|
||||
|
||||
foreach (var shiftPlan in shiftPlans)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue