Пример #1
0
        public IActionResult Create(ReleaseCreateViewModel model)
        {
            var dto    = _mapper.Map <Dtos.ReleaseDto>(model);
            var result = Dtos.ReleaseDtoModule.toDomain(dto);

            if (result.IsError)
            {
                foreach (var domainMessage in result.ErrorValue)
                {
                    var key = string.Concat(nameof(SharedResources.Error), ".", domainMessage.ToString());
                    ModelState.AddModelError(string.Empty, _localizer[key]);
                }
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            else
            {
                var release = Dtos.ReleaseDtoModule.fromDomain(result.ResultValue);
                _changelogData.Create(release);
                return(Ok(release));
            }
        }
        public async Task <ActionResult <ReleaseViewModel> > CreateRelease(ReleaseCreateViewModel release,
                                                                           Guid publicationId)
        {
            release.PublicationId = publicationId;

            return(await _releaseService
                   .CreateRelease(release)
                   .HandleFailuresOrOk());
        }
Пример #3
0
        public async Task <Either <ActionResult, ReleaseViewModel> > CreateRelease(ReleaseCreateViewModel releaseCreate)
        {
            return(await _persistenceHelper
                   .CheckEntityExists <Publication>(releaseCreate.PublicationId)
                   .OnSuccess(_userService.CheckCanCreateReleaseForPublication)
                   .OnSuccess(async _ => await ValidateReleaseSlugUniqueToPublication(releaseCreate.Slug, releaseCreate.PublicationId))
                   .OnSuccess(async() =>
            {
                var release = _mapper.Map <Release>(releaseCreate);

                release.Id = _guidGenerator.NewGuid();

                if (releaseCreate.TemplateReleaseId.HasValue)
                {
                    CreateGenericContentFromTemplate(releaseCreate.TemplateReleaseId.Value, release);
                }
                else
                {
                    release.GenericContent = new List <ContentSection>();
                }

                release.SummarySection = new ContentSection
                {
                    Type = ContentSectionType.ReleaseSummary
                };
                release.KeyStatisticsSection = new ContentSection {
                    Type = ContentSectionType.KeyStatistics
                };
                release.KeyStatisticsSecondarySection = new ContentSection {
                    Type = ContentSectionType.KeyStatisticsSecondary
                };
                release.HeadlinesSection = new ContentSection {
                    Type = ContentSectionType.Headlines
                };
                release.Created = DateTime.UtcNow;
                release.CreatedById = _userService.GetUserId();

                await _context.Releases.AddAsync(release);
                await _context.SaveChangesAsync();
                return await GetRelease(release.Id);
            }));
        }