Esempio n. 1
0
        public Task <Either <ActionResult, List <ReleaseNoteViewModel> > > UpdateReleaseNoteAsync(Guid releaseId,
                                                                                                  Guid releaseNoteId, CreateOrUpdateReleaseNoteRequest request)
        {
            return(_persistenceHelper
                   .CheckEntityExists <Release>(releaseId, HydrateReleaseForUpdates)
                   .OnSuccess(_userService.CheckCanUpdateRelease)
                   .OnSuccess(async release =>
            {
                var releaseNote = release
                                  .Updates
                                  .First(note => note.Id == releaseNoteId);

                if (releaseNote == null)
                {
                    return NotFound <List <ReleaseNoteViewModel> >();
                }

                releaseNote.On = request.On ?? DateTime.Now;
                releaseNote.Reason = request.Reason;

                _context.Update.Update(releaseNote);
                await _context.SaveChangesAsync();
                return GetReleaseNoteViewModels(release.Id);
            }));
        }
Esempio n. 2
0
        public Task <Either <ActionResult, List <ReleaseNoteViewModel> > > AddReleaseNoteAsync(Guid releaseId,
                                                                                               CreateOrUpdateReleaseNoteRequest request)
        {
            return(_persistenceHelper
                   .CheckEntityExists <Release>(releaseId, HydrateReleaseForUpdates)
                   .OnSuccess(_userService.CheckCanUpdateRelease)
                   .OnSuccess(async release =>
            {
                _context.Update.Add(new Update
                {
                    On = request.On ?? DateTime.Now,
                    Reason = request.Reason,
                    ReleaseId = release.Id
                });

                await _context.SaveChangesAsync();
                return GetReleaseNoteViewModels(release.Id);
            }));
        }