/// <summary> /// Map PresentationAdd_DTO to PresentationDB, passes to Add DB-method the PresentationDB /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <Result <Presentation> > AddPresentationAsync(PresentationAdd_DTO model) { var presentationDb = _mapper.Map <PresentationAdd_DTO, PresentationDB>(model); _uow.Presentations.Add(presentationDb); try { await _uow.SaveAsync(); return(Result <Presentation> .Ok(_mapper.Map <Presentation>(presentationDb))); } catch (DbUpdateConcurrencyException e) { return((Result <Presentation>) Result <Presentation> .Fail("Cannot save model")); } catch (DbUpdateException e) { return((Result <Presentation>) Result <Presentation> .Fail($"Cannot save model. Duplicate field. {e.Message}")); } catch (DbEntityValidationException e) { return((Result <Presentation>) Result <Presentation> .Fail("Invalid model")); } }
public async Task <IHttpActionResult> CreatePresentationAsync ([FromBody, CustomizeValidator(RuleSet = "AddPresentation, default")] PresentationAdd_DTO presentation) { if (presentation is null || !ModelState.IsValid) { return(BadRequest(ModelState)); } var result = await _presentationsBase.AddPresentationAsync(presentation); return(result.IsError ? BadRequest(result.Message) : (IHttpActionResult)Ok(result.Data)); }