/// <summary> /// Map FeedbackAdd_DTO to FeedbackDB, passes to Add DB-method the FeedbackDB /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <Result <Feedback> > AddFeedbackAsync(FeedbackAdd_DTO model) { var feedbackDb = _mapper.Map <FeedbackAdd_DTO, FeedbackDB>(model); _uow.Feedbacks.Add(feedbackDb); try { await _uow.SaveAsync(); return(Result <Feedback> .Ok(_mapper.Map <Feedback>(feedbackDb))); } catch (DbUpdateConcurrencyException e) { return((Result <Feedback>) Result <Feedback> .Fail("Cannot save model")); } catch (DbUpdateException e) { return((Result <Feedback>) Result <Feedback> .Fail($"Cannot save model. Duplicate field. {e.Message}")); } catch (DbEntityValidationException e) { return((Result <Feedback>) Result <Feedback> .Fail("Invalid model")); } }
public async Task <IHttpActionResult> CreateFeedbackAsync ([FromBody, CustomizeValidator] FeedbackAdd_DTO feedback) { if (feedback is null || !ModelState.IsValid) { return(BadRequest(ModelState)); } var result = await _feedbackBase.AddFeedbackAsync(feedback); return(result.IsError ? BadRequest(result.Message) : (IHttpActionResult)Ok(result.Data)); }