/// <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}")); } }
/// <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))); }
/// <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)); } }