예제 #1
0
        /// <summary>
        /// Updates the story.
        /// </summary>
        /// <param name="details">The details.</param>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public async Task <APIResponse> UpdateStory(StoryIdDetails details, UpdateStoryRequest 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.PutAsync(servicesConfig.Blog + BlogServiceOperation.UpdateStory(details.StoryId), contentPost);

                return(new APIResponse(response.StatusCode));
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception in method 'UpdateStory()'");
                var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                return(new APIResponse(exMessage, HttpStatusCode.InternalServerError));
            }
        }
        public async Task <IActionResult> UpdateStory(int storyId, [FromBody] UpdateStoryRequest request)
        {
            var updateStoryCommand = new UpdateStoryCommand(storyId, request);
            var result             = await mediator.Send(updateStoryCommand);

            return(StatusCode((int)result.Code, result.Value));
        }
        /// <summary>
        /// Updates the story.
        /// </summary>
        /// <param name="details">The details.</param>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public async Task <APIResponse> UpdateStory(StoryIdDetails details, UpdateStoryRequest 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.PutAsync(servicesConfig.Blog + BlogServiceOperation.UpdateStory(details.StoryId), contentPost);

                return(new APIResponse(response.StatusCode));
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Exception in method 'UpdateStory()'");
                var exMessage = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                return(new APIResponse(exMessage, HttpStatusCode.InternalServerError));
            }
        }
        //[Authorize(Roles = "Admin, Vendor")]
        public async Task <IActionResult> UpdateStory(int storyId, [FromBody] UpdateStoryRequest request)
        {
            var result = await storyService.UpdateStory(new StoryIdDetails(storyId), request);

            return(StatusCode((int)result.Code, result.Value));
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="UpdateStoryCommand" /> class.
 /// </summary>
 /// <param name="storyId">The story identifier.</param>
 /// <param name="Request">The request.</param>
 public UpdateStoryCommand(int storyId, UpdateStoryRequest request)
 {
     StoryId = storyId;
     Request = request;
 }
예제 #6
0
        public async Task UpdateStoryRequestHandler_Handle_Returns_NotFound()
        {
            StoryContext.OpenInMemoryConnection();

            try
            {
                var charity = new Charity
                {
                    CharityKey = Guid.NewGuid()
                };
                var image1 = new Image
                {
                    Base64 = "image1"
                };

                var image2 = new Image
                {
                    Base64 = "image2"
                };
                var story = new Story
                {
                    StoryKey   = Guid.NewGuid(),
                    Title      = "title",
                    CoverImage = "cover",
                    Charity    = charity,
                    Images     = new List <Image>
                    {
                        image1,
                        image2
                    }
                };

                using (var context = StoryContext.GetInMemoryContext())
                {
                    context.Stories.Add(story);
                    context.SaveChanges();
                }

                var request = new UpdateStoryRequest
                {
                    StoryKey = Guid.NewGuid(),
                    Title    = "newTitle",
                    Images   = new List <string>
                    {
                        "image3"
                    },
                    StoryImage = "storyImage"
                };

                UpdateStoryResponse response;
                using (var context = StoryContext.GetInMemoryContext())
                {
                    var handler = new UpdateStoryRequestHandler(context);
                    response = await handler.Handle(request);
                }

                using (var context = StoryContext.GetInMemoryContext())
                {
                    Assert.IsFalse(response.IsSuccess);
                    Assert.AreEqual(ErrorType.NotFound, response.ErrorType);
                    Assert.AreEqual(story.StoryImage, context.Stories.Single().StoryImage);
                    Assert.AreEqual(story.Title, context.Stories.Single().Title);
                    Assert.AreEqual(story.CoverImage, story.CoverImage);
                    Assert.AreEqual(story.CoreText, story.CoreText);
                    Assert.AreEqual(2, context.Images.Count());
                    Assert.AreEqual(1, context.Images.Count(i => i.Base64 == image1.Base64));
                    Assert.AreEqual(1, context.Images.Count(i => i.Base64 == image2.Base64));
                }
            }
            finally
            {
                StoryContext.CloseInMemoryConnection();
            }
        }