62 lines
2.1 KiB
C#
62 lines
2.1 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using _0_Framework.InfraStructure;
|
|
using AccountManagement.Application.Contracts.Media;
|
|
using AccountManagement.Domain.AdminResponseMediaAgg;
|
|
using AccountManagement.Domain.ClientResponseMediaAgg;
|
|
using AccountManagement.Domain.MediaAgg;
|
|
using AccountManagement.Domain.TaskMediaAgg;
|
|
using AccountManagement.Domain.TicketMediasAgg;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace AccountMangement.Infrastructure.EFCore.Repository;
|
|
|
|
public class MediaRepository:RepositoryBase<long,Media>,IMediaRepository
|
|
{
|
|
private readonly AccountContext _taskManagerContext;
|
|
public MediaRepository( AccountContext taskManagerContext) : base(taskManagerContext)
|
|
{
|
|
_taskManagerContext = taskManagerContext;
|
|
}
|
|
//ساخت جدول واسط بین مدیا و نسک
|
|
//نکته: این متد ذخیره انجام نمیدهد
|
|
public void CreateMediaWithTaskMedia(long taskId, long mediaId)
|
|
{
|
|
var Taskmedias = new TaskMedia(taskId,mediaId);
|
|
_taskManagerContext.Add(Taskmedias);
|
|
}
|
|
public void Remove(long id)
|
|
{
|
|
var media = Get(id);
|
|
Remove(media);
|
|
}
|
|
|
|
public void CreateTicketMedia(long ticketId, long mediaId)
|
|
{
|
|
var ticketMedias = new TicketMedia(ticketId, mediaId);
|
|
_taskManagerContext.Add(ticketMedias);
|
|
}
|
|
|
|
public void CreateAdminResponseMedia(long adminResponseId, long mediaId)
|
|
{
|
|
var adminResMedia = new AdminResponseMedia(adminResponseId, mediaId);
|
|
_taskManagerContext.Add(adminResMedia);
|
|
}
|
|
|
|
public void CreateClientResponseMedia(long clientResponseId, long mediaId)
|
|
{
|
|
var clientResMedia = new ClientResponseMedia(clientResponseId, mediaId);
|
|
_taskManagerContext.Add(clientResMedia);
|
|
}
|
|
|
|
public List<MediaViewModel> GetMediaByTaskId(long taskId)
|
|
{
|
|
return _taskManagerContext.TaskMedias.Include(x => x.Media).Where(x => x.TaskId == taskId).Select(x =>
|
|
new MediaViewModel()
|
|
{
|
|
Id = x.Media.id,
|
|
Path = x.Media.Path,
|
|
Type = x.Media.Type,
|
|
}).ToList();
|
|
}
|
|
} |