Доработан UI

This commit is contained in:
FrigaT
2026-04-14 14:33:43 +03:00
parent dcb2efbedb
commit 9e8bb0db75
8 changed files with 53 additions and 39 deletions

View File

@@ -1,7 +1,7 @@
using AutoMapper;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using PlaylistShared.Api.Data;
using PlaylistShared.Api.Entities;
using PlaylistShared.Shared.Auth;
using PlaylistShared.Shared.Enums;
using PlaylistShared.Shared.Playlist;
using PlaylistShared.Shared.Shared;
@@ -11,13 +11,11 @@ namespace PlaylistShared.Api.Services;
public class SharedPlaylistService
{
private readonly ApplicationDbContext _db;
private readonly IMapper _mapper;
private readonly TrackAdditionLogService _trackLogService;
public SharedPlaylistService(ApplicationDbContext db, IMapper mapper, TrackAdditionLogService trackLogService)
public SharedPlaylistService(ApplicationDbContext db, TrackAdditionLogService trackLogService)
{
_db = db;
_mapper = mapper;
_trackLogService = trackLogService;
}
@@ -42,7 +40,7 @@ public class SharedPlaylistService
};
_db.SharedPlaylists.Add(entity);
await _db.SaveChangesAsync();
return _mapper.Map<SharedPlaylistDto>(entity);
return MapToDto(entity);
}
public async Task<SharedPlaylistDto?> GetByTokenAsync(string token)
@@ -50,7 +48,7 @@ public class SharedPlaylistService
var entity = await _db.SharedPlaylists
.Include(sp => sp.Creator)
.FirstOrDefaultAsync(sp => sp.ShareToken == token && !sp.IsDeleted);
return entity == null ? null : _mapper.Map<SharedPlaylistDto>(entity);
return entity == null ? null : MapToDto(entity);
}
public async Task<SharedPlaylist?> GetEntityByTokenAsync(string token)
@@ -70,7 +68,7 @@ public class SharedPlaylistService
entity.RemovePermission = dto.RemovePermission;
entity.UpdatedAt = DateTime.UtcNow;
await _db.SaveChangesAsync();
return _mapper.Map<SharedPlaylistDto>(entity);
return MapToDto(entity);
}
public async Task<bool> DeleteAsync(Guid playlistId)
@@ -144,4 +142,36 @@ public class SharedPlaylistService
.Where(sp => sp.CreatorUserId == userId && !sp.IsDeleted)
.ToListAsync();
}
// Ручное маппинг сущности в DTO
private SharedPlaylistDto MapToDto(SharedPlaylist entity)
{
return new SharedPlaylistDto
{
Id = entity.Id,
CreatorUserId = entity.CreatorUserId,
YandexPlaylistUuid = entity.YandexPlaylistUuid,
YandexPlaylistKind = entity.YandexPlaylistKind,
YandexPlaylistOwnerUid = entity.YandexPlaylistOwnerUid,
Title = entity.Title,
Description = entity.Description,
CoverUrl = entity.CoverUrl,
CreatedAt = entity.CreatedAt,
UpdatedAt = entity.UpdatedAt,
IsDeleted = entity.IsDeleted,
ShareToken = entity.ShareToken,
ViewPermission = entity.ViewPermission,
PlayPermission = entity.PlayPermission,
AddPermission = entity.AddPermission,
RemovePermission = entity.RemovePermission,
Creator = entity.Creator != null ? new ApplicationUserDto
{
Id = entity.Creator.Id,
UserName = entity.Creator.UserName ?? string.Empty,
Email = entity.Creator.Email,
YandexId = entity.Creator.YandexId,
DisplayName = entity.Creator.UserName
} : null
};
}
}