示例#1
0
        public Task <Either <ActionResult, List <Link> > > UpdateRelatedInformationAsync(
            Guid releaseId, Guid relatedInformationId, CreateUpdateLinkRequest request)
        {
            return(_persistenceHelper
                   .CheckEntityExists <Release>(releaseId)
                   .OnSuccess(_userService.CheckCanUpdateRelease)
                   .OnSuccess(async release =>
            {
                var toUpdate = release
                               .RelatedInformation
                               .Find(item => item.Id == relatedInformationId);

                if (toUpdate == null)
                {
                    return NotFound <List <Link> >();
                }

                toUpdate.Description = request.Description;
                toUpdate.Url = request.Url;

                _context.Releases.Update(release);
                await _context.SaveChangesAsync();
                return release.RelatedInformation;
            }));
        }
示例#2
0
 public async Task <ActionResult <List <Link> > > UpdateRelatedInformation(
     CreateUpdateLinkRequest request, Guid releaseId, Guid relatedInformationId)
 {
     return(await _relatedInformationService
            .UpdateRelatedInformationAsync(releaseId, relatedInformationId, request)
            .HandleFailuresOrOk());
 }
示例#3
0
        public Task <Either <ActionResult, List <Link> > > AddRelatedInformationAsync(Guid releaseId, CreateUpdateLinkRequest request)
        {
            return(_persistenceHelper
                   .CheckEntityExists <Release>(releaseId)
                   .OnSuccess(_userService.CheckCanUpdateRelease)
                   .OnSuccess(async release =>
            {
                if (release.RelatedInformation == null)
                {
                    release.RelatedInformation = new List <Link>();
                }

                release.RelatedInformation.Add(new Link
                {
                    Id = Guid.NewGuid(),
                    Description = request.Description,
                    Url = request.Url
                });

                _context.Releases.Update(release);
                await _context.SaveChangesAsync();
                return release.RelatedInformation;
            }));
        }
示例#4
0
 public async Task <ActionResult <List <Link> > > AddRelatedInformation(CreateUpdateLinkRequest request, Guid releaseId)
 {
     return(await _relatedInformationService
            .AddRelatedInformationAsync(releaseId, request)
            .HandleFailuresOr(result => Created(HttpContext.Request.Path, result)));
 }