From 566a4797eab8590f0cec0ffcb035a8b6c0fdd85c Mon Sep 17 00:00:00 2001 From: Berkan Sasmaz Date: Mon, 11 Oct 2021 18:36:33 +0300 Subject: [PATCH 01/21] fix minor problems and enhance UX --- .../Organizations/IOrganizationAppService.cs | 2 +- .../Organizations/OrganizationDto.cs | 12 + .../EventHubApplicationAutoMapperProfile.cs | 3 +- .../Organizations/OrganizationAppService.cs | 4 +- src/EventHub.Domain/Events/EventUrlHelper.cs | 10 +- .../Organizations/OrganizationManager.cs | 2 + .../Organizations/OrganizationController.cs | 4 +- .../EventHub/Components/Footer/Default.cshtml | 36 +- .../Components/MainNavbar/Default.cshtml | 18 +- .../Themes/EventHub/Layouts/Account.cshtml | 4 +- .../EventHub/Layouts/Application.cshtml | 4 +- .../Themes/EventHub/Layouts/Empty.cshtml | 4 +- .../wwwroot/themes/eventhub/style.css | 548 +++++++++++------- src/EventHub.Web/Pages/Events/Edit.cshtml | 5 +- src/EventHub.Web/Pages/Events/Edit.js | 4 + src/EventHub.Web/Pages/Events/New.cshtml | 7 +- src/EventHub.Web/Pages/Events/New.js | 4 + src/EventHub.Web/Pages/Index.cshtml | 200 +++---- src/EventHub.Web/Pages/Index.js | 52 +- .../Pages/Organizations/Edit.cshtml | 5 +- .../Pages/Organizations/New.cshtml | 2 +- .../Pages/Organizations/New.cshtml.cs | 4 +- .../Pages/Organizations/Profile.cshtml | 2 +- src/EventHub.Web/Pages/User.cshtml | 11 - 24 files changed, 537 insertions(+), 410 deletions(-) create mode 100644 src/EventHub.Application.Contracts/Organizations/OrganizationDto.cs diff --git a/src/EventHub.Application.Contracts/Organizations/IOrganizationAppService.cs b/src/EventHub.Application.Contracts/Organizations/IOrganizationAppService.cs index 55fa1a7..ce98bbb 100644 --- a/src/EventHub.Application.Contracts/Organizations/IOrganizationAppService.cs +++ b/src/EventHub.Application.Contracts/Organizations/IOrganizationAppService.cs @@ -8,7 +8,7 @@ namespace EventHub.Organizations { public interface IOrganizationAppService : IApplicationService { - Task CreateAsync(CreateOrganizationDto input); + Task CreateAsync(CreateOrganizationDto input); Task> GetListAsync(OrganizationListFilterDto input); diff --git a/src/EventHub.Application.Contracts/Organizations/OrganizationDto.cs b/src/EventHub.Application.Contracts/Organizations/OrganizationDto.cs new file mode 100644 index 0000000..21c5684 --- /dev/null +++ b/src/EventHub.Application.Contracts/Organizations/OrganizationDto.cs @@ -0,0 +1,12 @@ +using System; +using Volo.Abp.Application.Dtos; + +namespace EventHub.Organizations +{ + public class OrganizationDto : EntityDto + { + public string Name { get; set; } + + public string DisplayName { get; set; } + } +} \ No newline at end of file diff --git a/src/EventHub.Application/EventHubApplicationAutoMapperProfile.cs b/src/EventHub.Application/EventHubApplicationAutoMapperProfile.cs index 64e9dc5..72e16f2 100644 --- a/src/EventHub.Application/EventHubApplicationAutoMapperProfile.cs +++ b/src/EventHub.Application/EventHubApplicationAutoMapperProfile.cs @@ -17,7 +17,8 @@ namespace EventHub { CreateMap(); CreateMap(); - + CreateMap(); + CreateMap(); CreateMap(); diff --git a/src/EventHub.Application/Organizations/OrganizationAppService.cs b/src/EventHub.Application/Organizations/OrganizationAppService.cs index f4dc8e7..6628c48 100644 --- a/src/EventHub.Application/Organizations/OrganizationAppService.cs +++ b/src/EventHub.Application/Organizations/OrganizationAppService.cs @@ -38,7 +38,7 @@ namespace EventHub.Organizations } [Authorize] - public async Task CreateAsync(CreateOrganizationDto input) + public async Task CreateAsync(CreateOrganizationDto input) { var organization = await _organizationManager.CreateAsync( CurrentUser.GetId(), @@ -60,6 +60,8 @@ namespace EventHub.Organizations { await SaveProfilePictureAsync(organization.Id, input.ProfilePictureStreamContent); } + + return ObjectMapper.Map(organization); } public async Task> GetListAsync(OrganizationListFilterDto input) diff --git a/src/EventHub.Domain/Events/EventUrlHelper.cs b/src/EventHub.Domain/Events/EventUrlHelper.cs index 0a95a91..031c228 100644 --- a/src/EventHub.Domain/Events/EventUrlHelper.cs +++ b/src/EventHub.Domain/Events/EventUrlHelper.cs @@ -5,21 +5,27 @@ namespace EventHub.Events { internal static class EventUrlHelper { - private static string AllowedUrlChars = "abcdefghijklmnopqrstuvwxyz0123456789"; + private static string AllowedUrlChars = "abcdefghijklmnopqrstuvwxyz0123456789-"; public static string ConvertTitleToUrlPart(string title) { var normalizedTitle = title + .Trim() .Replace(' ', '-') .ToKebabCase() .ToLowerInvariant(); var urlPartBuilder = new StringBuilder(); + char previousChar = ' '; foreach (var c in normalizedTitle) { if (AllowedUrlChars.Contains(c)) { + if (previousChar == '-' && c == '-') + { + continue; + } urlPartBuilder.Append(c); } @@ -27,6 +33,8 @@ namespace EventHub.Events { break; } + + previousChar = c; } return urlPartBuilder.ToString(); diff --git a/src/EventHub.Domain/Organizations/OrganizationManager.cs b/src/EventHub.Domain/Organizations/OrganizationManager.cs index 7ee6c9a..0cb5f9c 100644 --- a/src/EventHub.Domain/Organizations/OrganizationManager.cs +++ b/src/EventHub.Domain/Organizations/OrganizationManager.cs @@ -21,6 +21,8 @@ namespace EventHub.Organizations string displayName, string description) { + name = name.Trim().Replace(' ', '-').ToKebabCase().ToLowerInvariant();; + if (await _organizationRepository.AnyAsync(o => o.Name == name)) { throw new BusinessException(EventHubErrorCodes.OrganizationNameAlreadyExists) diff --git a/src/EventHub.HttpApi.Host/Controllers/Organizations/OrganizationController.cs b/src/EventHub.HttpApi.Host/Controllers/Organizations/OrganizationController.cs index 471657a..8b4a7b4 100644 --- a/src/EventHub.HttpApi.Host/Controllers/Organizations/OrganizationController.cs +++ b/src/EventHub.HttpApi.Host/Controllers/Organizations/OrganizationController.cs @@ -28,9 +28,9 @@ namespace EventHub.Controllers.Organizations } [HttpPost] - public async Task CreateAsync([FromForm] CreateOrganizationDto input) + public async Task CreateAsync([FromForm] CreateOrganizationDto input) { - await _organizationAppService.CreateAsync(input); + return await _organizationAppService.CreateAsync(input); } [HttpGet] diff --git a/src/EventHub.Web.Theme/Themes/EventHub/Components/Footer/Default.cshtml b/src/EventHub.Web.Theme/Themes/EventHub/Components/Footer/Default.cshtml index a528740..ee71f3a 100644 --- a/src/EventHub.Web.Theme/Themes/EventHub/Components/Footer/Default.cshtml +++ b/src/EventHub.Web.Theme/Themes/EventHub/Components/Footer/Default.cshtml @@ -13,7 +13,7 @@ EventHub - +
@if (!CurrentUser.IsAuthenticated) { @@ -45,23 +45,23 @@
- -