public async Task <DataResult <GenusModel> > GetGenusById(int id) { try { Genus entity = await _genusRepository.GetById(id); if (entity == null) { return(new DataResult <GenusModel> { Success = false, ErrorCode = ErrorCode.NotFound, }); } GenusModel model = _mapper.Map(entity); return(new DataResult <GenusModel> { Success = true, Data = model, }); } catch (Exception ex) { _logger.LogError(ex, $"Problems with getting Genus by id : {id}"); return(new DataResult <GenusModel> { Success = false, ErrorCode = ErrorCode.InternalError, }); } }
public async Task <Result> UpdateGenus(int id, GenusModel model) { try { Genus entity = await _genusRepository.GetById(id); if (entity == null) { return(new Result { Success = false, ErrorCode = ErrorCode.NotFound, }); } return(await _genusRepository.Update(_mapper.MapUpdate(entity, model))); } catch (Exception ex) { _logger.LogError(ex, $"Problems with updating Genus by id : {id}"); return(new DataResult <GenusModel> { Success = false, ErrorCode = ErrorCode.InternalError, }); } }
public async Task <DataResult <GenusModel> > CreateGenus(GenusModel model) { try { Genus entity = _mapper.MapBack(model); DataResult <Genus> result = await _genusRepository.Add(entity); return(new DataResult <GenusModel> { Success = result.Success, ErrorCode = result.ErrorCode, Data = _mapper.Map(result.Data), }); } catch (Exception ex) { _logger.LogError(ex, $"Problems with creating Genus"); return(new DataResult <GenusModel> { Success = false, ErrorCode = ErrorCode.InternalError, }); } }
public async Task <IActionResult> Create(GenusModel model) { DataResult <GenusModel> result = await _genusService.CreateGenus(model); if (result.Success) { return(RedirectToAction("Details", new { result.Data.Id })); } if (result.ErrorCode == ErrorCode.UniquenessError) { ViewBag.Families = new SelectList( (await _familyRepository.GetAll()).OrderBy(e => e.Denomination), nameof(Genus.Id), nameof(Genus.Denomination)); ModelState[nameof(model.Denomination)].Errors.Add("Such a record already exists"); return(View("Create", model)); } return(RedirectToAction("Error", "Error", new { result.ErrorCode, modelName = nameof(Genus) })); }