Пример #1
0
        public async Task <IngridientDto> GetIngridientAsync(int id, string userId)
        {
            var ingridient = await _repositoryIngridient
                             .GetEntityWithoutTrackingAsync(ingridient =>
                                                            ingridient.Id == id && ingridient.UserId == userId);

            if (ingridient is null)
            {
                throw new ArgumentNullException(nameof(ingridient));
            }

            var ingridientDto = new IngridientDto
            {
                Id           = ingridient.Id,
                UserId       = ingridient.UserId,
                Name         = ingridient.Name,
                Category     = ingridient.Category,
                IsVeggie     = ingridient.IsVeggie,
                Description  = ingridient.Description,
                Colories     = ingridient.Colories,
                IsRecomended = ingridient.IsRecomended,
                ReactionType = ingridient.ReactionType,
                Date         = ingridient.Date
            };

            return(ingridientDto);
        }
        public async Task <IActionResult> Create(IngridientActionViewModel model)
        {
            model = model ?? throw new ArgumentNullException(nameof(model));

            if (ModelState.IsValid)
            {
                var userId = await _accountManager.GetUserIdByNameAsync(User.Identity.Name);

                var ingridientDto = new IngridientDto
                {
                    UserId       = userId,
                    Name         = model.Name,
                    Category     = model.Category,
                    IsVeggie     = model.IsVeggie,
                    Description  = model.Description,
                    ReactionType = ReactionTypeExtension.ToReactionType(model.Reaction),
                    Colories     = model.Colories,
                    //Date = model.DateTime,
                };

                await _ingridientManager.CreateAsync(ingridientDto);

                return(RedirectToAction("Index", "Ingridient"));
            }
            GenerateReactionTypeList();
            return(View(model));
        }
Пример #3
0
        public async Task UpdateAsync(IngridientDto ingridientDto)
        {
            ingridientDto = ingridientDto ?? throw new ArgumentNullException(nameof(ingridientDto));

            var ingridient = await _repositoryIngridient
                             .GetEntityAsync(ingridient =>
                                             ingridient.Id == ingridientDto.Id && ingridient.UserId == ingridientDto.UserId);

            if (ingridient is null)
            {
                throw new KeyNotFoundException(ErrorResource.IngridientNotFound);
            }
Пример #4
0
        public async Task CreateAsync(IngridientDto ingridientDto)
        {
            if (ingridientDto is null)
            {
                throw new ArgumentNullException(nameof(ingridientDto));
            }

            var ingridient = new Ingridient
            {
                Id           = ingridientDto.Id,
                UserId       = ingridientDto.UserId,
                Name         = ingridientDto.Name,
                Category     = ingridientDto.Category,
                IsVeggie     = ingridientDto.IsVeggie,
                Description  = ingridientDto.Description,
                Colories     = ingridientDto.Colories,
                IsRecomended = ingridientDto.IsRecomended,
                ReactionType = ingridientDto.ReactionType,
                Date         = ingridientDto.Date
            };
            await _repositoryIngridient.CreateAsync(ingridient);

            await _repositoryIngridient.SaveChangesAsync();
        }
Пример #5
0
            static bool CheckAndUpdate(Ingridient ingridient, IngridientDto newIngridient)
            {
                var toUpdate = false;

                if (ingridient.Name != newIngridient.Name)
                {
                    ingridient.Name = newIngridient.Name;
                    toUpdate        = true;
                }

                if (ingridient.Category != newIngridient.Category)
                {
                    ingridient.Category = newIngridient.Category;
                    toUpdate            = true;
                }

                if (ingridient.Colories != newIngridient.Colories)
                {
                    ingridient.Colories = newIngridient.Colories;
                    toUpdate            = true;
                }

                if (ingridient.Description != newIngridient.Description)
                {
                    ingridient.Description = newIngridient.Description;
                    toUpdate = true;
                }

                if (ingridient.ReactionType != newIngridient.ReactionType)
                {
                    ingridient.ReactionType = newIngridient.ReactionType;
                    toUpdate = true;
                }

                return(toUpdate);
            }