Beispiel #1
0
        /// <summary>
        /// Save async current search request as story for User
        /// </summary>
        /// <param name="story"></param>
        /// <returns></returns>
        public async Task <Result <SearchStory> > SaveAsync(SearchStory story)
        {
            //validation
            var result = _validator.Validate(story, ruleSet: "AddStory");

            if (!result.IsValid)
            {
                return((Result <SearchStory>)Result.Fail($"Invalid model"));
            }


            var storyDb = _mapper.Map <SearchStoryDb>(story);

            _storyRepository.Save(storyDb);

            try
            {
                await _storyRepository.SaveChangeAsync();

                return(Result <SearchStory> .Ok(_mapper.Map <SearchStory>(storyDb)));
            }
            catch (DbUpdateConcurrencyException ex)
            {
                return((Result <SearchStory>)Result.Fail($"Cannot save model. {ex.Message}"));
            }
            catch (DbUpdateException ex)
            {
                return((Result <SearchStory>)Result.Fail($"Cannot save model. {ex.Message}"));
            }
            catch (DbEntityValidationException ex)
            {
                return((Result <SearchStory>)Result.Fail($"Cannot save model. Invalid model. {ex.Message}"));
            }
        }
Beispiel #2
0
        /// <summary>
        /// Save current search request as story for User
        /// </summary>
        /// <param name="story"></param>
        public SearchStory Save(SearchStory story)
        {
            var result = _validator.Validate(story, ruleSet: "AddStory");

            if (!result.IsValid)
            {
                return(story);
            }

            var storyDb = _mapper.Map <SearchStoryDb>(story);

            return(_mapper.Map <SearchStory>(_storyRepository.Save(storyDb)));
        }
Beispiel #3
0
        /// <summary>
        /// Gets a example of model view search story.
        /// </summary>
        /// <returns></returns>
        public virtual object GetExamples()
        {
            var value = new SearchStory()
            {
                UserId        = "guest",
                SearchRequest = new SearchRequest()
                {
                    Title = "Angular"
                }
            };

            return(value);
        }
        public async Task <IHttpActionResult> SaveStoryAsync([FromBody] SearchStory story)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var result = _storyService.SaveAsync(story);
                if (result == null)
                {
                    return(BadRequest());
                }

                return(Ok(result));
            }
            catch (InvalidOperationException exc)
            {
                return(InternalServerError(exc));
            }
        }