Files
Backend-Api/CompanyManagment.EFCore/Repository/SmsSettingsRepository.cs
2025-11-17 17:35:04 +03:30

71 lines
2.3 KiB
C#

using System.Linq;
using System.Threading.Tasks;
using _0_Framework.Application.Enums;
using _0_Framework.InfraStructure;
using Company.Domain.SmsResultAgg;
using CompanyManagment.App.Contracts.SmsResult;
using Microsoft.EntityFrameworkCore;
namespace CompanyManagment.EFCore.Repository;
public class SmsSettingsRepository : RepositoryBase<long, SmsSetting>, ISmsSettingsRepository
{
private readonly CompanyContext _context;
public SmsSettingsRepository(CompanyContext context) : base(context)
{
_context = context;
}
/// <summary>
/// ویرایش پیامک خودکار
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<EditSmsSetting> GetSmsSettingToEdit(long id)
{
var edit = new EditSmsSetting();
var getItem = await _context.SmsSettings.FirstOrDefaultAsync(x => x.id == id);
if (getItem != null)
{
edit.Id = getItem.id;
edit.TimeOfDayDisplay = getItem.TimeOfDay.ToString(@"hh\:mm");
edit.DayOfMonth = getItem.DayOfMonth;
edit.TypeOfSmsSetting = getItem.TypeOfSmsSetting;
}
return edit;
}
/// <summary>
/// دریافت لیست پیامک های خودکار بر اساس نوع آن
/// </summary>
/// <param name="typeOfSmsSetting"></param>
/// <returns></returns>
public async Task<SmsSettingViewModel> GetSmsSettingsByType(TypeOfSmsSetting typeOfSmsSetting)
{
var result = new SmsSettingViewModel();
var data =await _context.SmsSettings
.Where(x => x.TypeOfSmsSetting == typeOfSmsSetting).Select(x =>
new EditSmsSetting
{
Id = x.id,
DayOfMonth = x.DayOfMonth,
IsActive = x.IsActive,
TimeOfDay = x.TimeOfDay,
TypeOfSmsSetting = x.TypeOfSmsSetting,
TimeOfDayDisplay = x.TimeOfDay.ToString(@"hh\:mm")
}).OrderBy(x=>x.DayOfMonth).ThenBy(x=>x.TimeOfDay).ToListAsync();
result.EditSmsSettings = data;
return result;
}
public async Task RemoveItem(long id)
{
var removeItem = Get(id);
_context.SmsSettings.Remove(removeItem);
await _context.SaveChangesAsync();
}
}