diff --git a/PlaylistShared.Api/Mapping/AppMappingProfile.cs b/PlaylistShared.Api/Mapping/AppMappingProfile.cs deleted file mode 100644 index 9e400de..0000000 --- a/PlaylistShared.Api/Mapping/AppMappingProfile.cs +++ /dev/null @@ -1,16 +0,0 @@ -using AutoMapper; -using PlaylistShared.Api.Entities; -using PlaylistShared.Shared.Auth; -using PlaylistShared.Shared.Shared; - -namespace PlaylistShared.Api.Mapping; - -public class AppMappingProfile : Profile -{ - public AppMappingProfile() - { - CreateMap() - .ForMember(dest => dest.Creator, opt => opt.MapFrom(src => src.Creator)); - CreateMap(); - } -} \ No newline at end of file diff --git a/PlaylistShared.Api/PlaylistShared.Api.csproj b/PlaylistShared.Api/PlaylistShared.Api.csproj index c71500b..35fcb18 100644 --- a/PlaylistShared.Api/PlaylistShared.Api.csproj +++ b/PlaylistShared.Api/PlaylistShared.Api.csproj @@ -10,7 +10,6 @@ - diff --git a/PlaylistShared.Api/Program.cs b/PlaylistShared.Api/Program.cs index 59356e7..0457d4d 100644 --- a/PlaylistShared.Api/Program.cs +++ b/PlaylistShared.Api/Program.cs @@ -5,7 +5,6 @@ using Microsoft.EntityFrameworkCore; using Microsoft.IdentityModel.Tokens; using PlaylistShared.Api.Data; using PlaylistShared.Api.Entities; -using PlaylistShared.Api.Mapping; using PlaylistShared.Api.Services; using System.IdentityModel.Tokens.Jwt; using System.Text; @@ -89,7 +88,6 @@ public class Program builder.Services.AddHttpContextAccessor(); builder.Services.AddAuthorization(); - builder.Services.AddAutoMapper(t => t.AddProfile()); builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); diff --git a/PlaylistShared.Api/Services/SharedPlaylistService.cs b/PlaylistShared.Api/Services/SharedPlaylistService.cs index 022c79f..49effcd 100644 --- a/PlaylistShared.Api/Services/SharedPlaylistService.cs +++ b/PlaylistShared.Api/Services/SharedPlaylistService.cs @@ -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(entity); + return MapToDto(entity); } public async Task 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(entity); + return entity == null ? null : MapToDto(entity); } public async Task GetEntityByTokenAsync(string token) @@ -70,7 +68,7 @@ public class SharedPlaylistService entity.RemovePermission = dto.RemovePermission; entity.UpdatedAt = DateTime.UtcNow; await _db.SaveChangesAsync(); - return _mapper.Map(entity); + return MapToDto(entity); } public async Task 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 + }; + } } \ No newline at end of file diff --git a/PlaylistShared.Pwa/Layout/LoginDisplay.razor b/PlaylistShared.Pwa/Layout/LoginDisplay.razor index c4eff22..49b1a9f 100644 --- a/PlaylistShared.Pwa/Layout/LoginDisplay.razor +++ b/PlaylistShared.Pwa/Layout/LoginDisplay.razor @@ -2,18 +2,23 @@ - Здравствуйте, @context.User.Identity?.Name! - Выйти + + Профиль + Выйти + Вход - | - Регистрация @code { - public void BeginLogOut() + private void GoToProfile() + { + Navigation.NavigateTo("/profile"); + } + + private void BeginLogOut() { Navigation.NavigateTo("/logout"); } diff --git a/PlaylistShared.Pwa/Layout/NavMenu.razor b/PlaylistShared.Pwa/Layout/NavMenu.razor index 57f1938..d936fb4 100644 --- a/PlaylistShared.Pwa/Layout/NavMenu.razor +++ b/PlaylistShared.Pwa/Layout/NavMenu.razor @@ -4,7 +4,7 @@ Профиль Мои плейлисты - Избранное + Избранное \ No newline at end of file diff --git a/PlaylistShared.Pwa/Pages/Favorites.razor b/PlaylistShared.Pwa/Pages/Favorites.razor index 7544732..8457793 100644 --- a/PlaylistShared.Pwa/Pages/Favorites.razor +++ b/PlaylistShared.Pwa/Pages/Favorites.razor @@ -1,6 +1,6 @@ @page "/favorites" +@using PlaylistShared.Shared.Shared @attribute [Authorize] -@using PlaylistShared.Shared.DTO @inject HttpClient Http @inject ISnackbar Snackbar @inject NavigationManager Navigation @@ -33,7 +33,6 @@ Название Владелец - Треков @@ -43,7 +42,6 @@ @context.Creator?.UserName - @context.TrackCount
- + @_playlist.Title -