66 lines
2.2 KiB
C#
66 lines
2.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using LCU.Shared.Collections.RepoApiLib.Exceptions;
|
|
using LCU.Shared.Collections.RepoApiLib.Models;
|
|
using LCU.Shared.Collections.RepoApiLib.Persistence;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace LCU.Shared.Collections.RepoApiLib.Repositories
|
|
{
|
|
public class RepoManualStatusRepository : BaseRepository, IRepoManualStatusRepository
|
|
{
|
|
public RepoManualStatusRepository(AppDbContext context) : base(context)
|
|
{
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<RepoManualStatus>> ListAllAsync()
|
|
{
|
|
return await _context.RepoManualStatuses.ToListAsync();
|
|
}
|
|
|
|
public async Task<IReadOnlyCollection<string>> ListWatchStatusesAsync()
|
|
{
|
|
var statusSet = await (from status in _context.RepoManualStatuses
|
|
where status.WatchForStatusChanges == true
|
|
select status).ToListAsync();
|
|
|
|
return statusSet.Select(x => x.Description).ToList() as IReadOnlyCollection<string>;
|
|
}
|
|
|
|
public async Task AddAsync(RepoManualStatus repoManualStatus)
|
|
{
|
|
// Only Create the Alert if an identical one doesn't already exist
|
|
var duplicateStatus = (
|
|
from status in _context.RepoManualStatuses
|
|
where status.Description.ToUpper().Trim() == repoManualStatus.Description.ToUpper().Trim()
|
|
select status
|
|
);
|
|
|
|
if (!duplicateStatus.Any())
|
|
{
|
|
await _context.RepoManualStatuses.AddAsync(repoManualStatus);
|
|
}
|
|
else
|
|
{
|
|
throw new DuplicateResourceException("RepoManualStatus");
|
|
}
|
|
}
|
|
|
|
public async Task<RepoManualStatus> FindByIdAsync(int id)
|
|
{
|
|
return await _context.RepoManualStatuses.FindAsync(id);
|
|
}
|
|
|
|
public void Update(RepoManualStatus repoManualStatus)
|
|
{
|
|
_context.RepoManualStatuses.Update(repoManualStatus);
|
|
}
|
|
|
|
public void Remove(RepoManualStatus repoManualStatus)
|
|
{
|
|
_context.RepoManualStatuses.Remove(repoManualStatus);
|
|
}
|
|
}
|
|
} |