public async Task <PostDto> CreatePost(ThreadDto threadDto, PostCreationDto postDto) { throwHelper.ThrowIfNull(threadDto, nameof(threadDto)); throwHelper.ThrowIfNull(postDto, nameof(postDto)); var thread = mapper.Map <Thread>(threadDto); if (thread.Id != 0 || context.Threads.Local.Any(t => t.Id == thread.Id)) { context.Attach(thread); } var post = new Post { CreationTime = DateTime.UtcNow, Message = postDto.Message, Name = postDto.AuthorName, Thread = thread, UserId = postDto.AuthorId }; if (postDto.Attachment != null) { post.Image = await CreateImageAsync(postDto.Attachment); } context.Posts.Add(post); await context.SaveChangesAsync(); return(mapper.Map <PostDto>(post)); }
public async Task <UserDto> CreateAnonymousAsync(string ip) { var anon = new Anonymous { Created = DateTime.UtcNow, Id = Guid.NewGuid(), IP = ip }; context.Anonymous.Add(anon); await context.SaveChangesAsync(); var user = mapper.Map <UserDto>(anon); return(user); }