Пример #1
0
        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,
                });
            }
        }
Пример #2
0
        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,
                });
            }
        }
Пример #3
0
        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,
                });
            }
        }
Пример #4
0
        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) }));
        }