public async Task <ApproveStoryResponse> Handle(ApproveStoryRequest message) { var story = await _context.Stories.FirstOrDefaultAsync(b => b.StoryKey.Equals(message.StoryKey)); if (story != null) { if (story.IsApproved) { return new ApproveStoryResponse { ErrorType = ErrorType.AlreadyActive } } ; story.IsApproved = true; return(await _context.TrySaveChangesAsync <ApproveStoryResponse>()); } return(new ApproveStoryResponse { ErrorType = ErrorType.NotFound }); } }
public async Task <UpdateStoryResponse> Handle(UpdateStoryRequest message) { var story = await _context.Stories.IncludeImages().FirstOrDefaultAsync(s => s.StoryKey == message.StoryKey); if (story == null) { return(new UpdateStoryResponse { ErrorType = ErrorType.NotFound }); } _context.Entry(story).CurrentValues.SetValues(message); _context.Images.RemoveRange(story.Images); story.Images.Clear(); if (message.Images != null) { var images = message.Images.Select(i => new Image { Base64 = i }).ToList(); _context.Images.AddRange(images); story.Images = images; } return(await _context.TrySaveChangesAsync <UpdateStoryResponse>()); }
public override async Task <CreateStoryResponse> Handle(CreateStoryRequest message) { var story = _mapper.Map <Story>(message); if (story.StoryKey == default) { return(Error(ErrorType.InvalidKey)); } if (message.AuthorUserKey.HasValue) { var user = await _context.Users.FirstOrDefaultAsync(u => u.UserKey == message.AuthorUserKey); if (user != null) { story.Author = user; } else { return(Error(ErrorType.InvalidUserKey)); } } var charity = await _context.Charities.FirstOrDefaultAsync(c => c.CharityKey == message.CharityKey); if (charity == null) { return(Error(ErrorType.CharityNotFound)); } story.Charity = charity; _context.Stories.Add(story); return(await _context.TrySaveChangesAsync <CreateStoryResponse>()); }