/// <summary> /// Creates the story. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> public async Task <APIResponse> CreateStory(CreateStoryRequest request) { try { var client = httpClientFactory.CreateClient(BlogServiceOperation.serviceName); var param = JsonConvert.SerializeObject(request); HttpContent contentPost = new StringContent(param, Encoding.UTF8, "application/json"); var response = await client.PostAsync(servicesConfig.Blog + BlogServiceOperation.CreateStory(), contentPost); if (response.IsSuccessStatusCode) { var story = JsonConvert.DeserializeObject <StoryResponse>(await response.Content.ReadAsStringAsync()); return(new APIResponse(story, HttpStatusCode.Created)); } return(new APIResponse(response.StatusCode)); } catch (Exception ex) { logger.Error(ex, "Exception in method 'CreateStory()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
public async Task <IActionResult> CreateStory([FromBody] CreateStoryRequest request) { var createStoryCommand = new CreateStoryCommand(request); var result = await mediator.Send(createStoryCommand); return(StatusCode((int)result.Code, result.Value)); }
public async Task <IActionResult> CreateStory([FromForm] CreateStoryRequest request) { var response = await mediator.Send(request); logger.LogResponse($"User #{HttpContext.GetCurrentUserId()} created story #{response.Story?.Id}", response.Error); return(response.IsSucceeded ? (IActionResult)Ok(response) : BadRequest(response)); }
public async Task CreateStoryRequestHandler_Handle_Returns_InvalidUserKey() { StoryContext.OpenInMemoryConnection(); try { var author = new User { UserKey = Guid.NewGuid() }; var charity = new Charity { CharityKey = Guid.NewGuid() }; using (var context = StoryContext.GetInMemoryContext()) { context.Users.Add(author); context.Charities.Add(charity); context.SaveChanges(); } var request = new CreateStoryRequest { CharityKey = charity.CharityKey, StoryKey = Guid.NewGuid(), AuthorUserKey = Guid.NewGuid(), Title = "title", CoverImage = "cover", Images = new List <string> { "image1", "image2" } }; CreateStoryResponse response; using (var context = StoryContext.GetInMemoryContext()) { var handler = new CreateStoryRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile())); response = await handler.Handle(request); } using (var context = StoryContext.GetInMemoryContext()) { Assert.IsFalse(response.IsSuccess); Assert.IsFalse(context.Stories.Any()); Assert.IsFalse(context.Images.Any()); Assert.AreEqual(ErrorType.InvalidUserKey, response.ErrorType); } } finally { StoryContext.CloseInMemoryConnection(); } }
/// <summary> /// Creates the story. /// </summary> /// <param name="request">The request.</param> /// <returns></returns> public async Task <APIResponse> CreateStory(CreateStoryRequest request) { try { string filename = ""; var folderName = Path.Combine("EventStories"); var pathToSave = Path.Combine("D:", "HappyWedding", folderName); if (request.CoverPhotoVideo.Length > 0) { string format = System.IO.Path.GetExtension(request.CoverPhotoVideo.FileName); filename = request.VendorId + "_Event_" + DateTime.Now + format; string filenme = filename.Replace(":", "."); var filePath = Path.Combine(pathToSave, filenme); using var fileStream = new FileStream(filePath, FileMode.Create); request.CoverPhotoVideo.CopyTo(fileStream); request.CoverPhotoOrVideo = filePath; request.CoverPhotoOrVideo = null; } var client = httpClientFactory.CreateClient(BlogServiceOperation.serviceName); var param = JsonConvert.SerializeObject(request); HttpContent contentPost = new StringContent(param, Encoding.UTF8, "application/json"); var response = await client.PostAsync(servicesConfig.Blog + BlogServiceOperation.CreateStory(), contentPost); if (response.IsSuccessStatusCode) { var story = JsonConvert.DeserializeObject <StoryResponse>(await response.Content.ReadAsStringAsync()); return(new APIResponse(story, HttpStatusCode.Created)); } return(new APIResponse(response.StatusCode)); } catch (Exception ex) { logger.Error(ex, "Exception in method 'CreateStory()'"); var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message; return(new APIResponse(exMessage, HttpStatusCode.InternalServerError)); } }
//[Authorize(Roles = "Admin, Vendor")] public async Task <IActionResult> CreateStory([FromBody] CreateStoryRequest request) { var result = await storyService.CreateStory(request); return(StatusCode((int)result.Code, result.Value)); }
/// <summary> /// Initializes a new instance of the <see cref="CreateStoryCommand"/> class. /// </summary> /// <param name="request">The request.</param> public CreateStoryCommand(CreateStoryRequest request) { Request = request; }
public async Task CreateStoryRequestHandler_Handle_Returns_Success() { StoryContext.OpenInMemoryConnection(); try { var author = new User { UserKey = Guid.NewGuid() }; var charity = new Charity { CharityKey = Guid.NewGuid() }; using (var context = StoryContext.GetInMemoryContext()) { context.Users.Add(author); context.Charities.Add(charity); context.SaveChanges(); } var request = new CreateStoryRequest { CharityKey = charity.CharityKey, AuthorUserKey = author.UserKey, StoryKey = Guid.NewGuid(), Title = "title", CoverImage = "cover", Images = new List <string> { "image1", "image2" } }; CreateStoryResponse response; using (var context = StoryContext.GetInMemoryContext()) { var handler = new CreateStoryRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile())); response = await handler.Handle(request); } using (var context = StoryContext.GetInMemoryContext()) { Assert.IsTrue(response.IsSuccess); Assert.AreEqual(1, context.Stories.Count()); Assert.AreEqual(request.CoverImage, context.Stories.Single().CoverImage); Assert.AreEqual(request.Title, context.Stories.Single().Title); Assert.AreEqual(request.StoryKey, context.Stories.Single().StoryKey); Assert.AreEqual(request.AuthorUserKey, context.Stories.IncludeAuthor().Single().Author.UserKey); Assert.AreEqual(2, context.Images.Count()); Assert.AreEqual(2, context.Stories.IncludeImages().Single().Images.Count); Assert.AreEqual(1, context.Images.Count(i => i.Base64 == "image1")); Assert.AreEqual(1, context.Images.Count(i => i.Base64 == "image2")); } } finally { StoryContext.CloseInMemoryConnection(); } }