コード例 #1
0
        public YeastPairingViewModel CreateYeastPairingViewModel(YeastPairDto pairingDto)
        {
            if (pairingDto == null)
            {
                throw new ArgumentNullException(nameof(pairingDto));
            }

            var yeastDto       = _yeastsDtoList.FirstOrDefault(y => y.Id == pairingDto.Yeast.Value);
            var yeastViewModel = new YeastViewModel
            {
                Id        = yeastDto.Id,
                Brand     = CreateYeastBrandViewModel(yeastDto.Brand),
                Style     = CreateYeastStyleViewModel(yeastDto.Style),
                Trademark = yeastDto.Trademark,
                TempMax   = yeastDto.TempMax,
                TempMin   = yeastDto.TempMin,
                Alcohol   = yeastDto.Alcohol,
                Note      = yeastDto.Note
            };
            var yeastModel = yeastViewModel;

            var categoryModel = new CategoryViewModel();

            if (pairingDto.Category.HasValue)
            {
                var categoryDto = _categoriesDtoList.FirstOrDefault(c => c.Id == pairingDto.Category.Value);
                if (categoryDto != null)
                {
                    categoryModel = CreateCategoryViewModel(categoryDto);
                }
            }

            var varietyModel = new VarietyViewModel();

            if (pairingDto.Variety.HasValue)
            {
                var varietyDto = _varietiesDtoList.FirstOrDefault(v => v.Id == pairingDto.Variety.Value);
                varietyModel = CreateVarietyViewModel(varietyDto, null);
            }

            var existingPairings = _yeastPairingsDtoList.Where(p => p.Yeast.Value == yeastModel.Id && p.Id != pairingDto.Id).ToList();
            var model            = new YeastPairingViewModel
            {
                Id       = pairingDto.Id,
                Yeast    = yeastModel,
                Category = categoryModel,
                Variety  = varietyModel,
                Note     = pairingDto.Note
            };

            model.Varieties.AddRange(CreateSelectList("Variety", _varietiesDtoList, _categoriesDtoList, existingPairings));

            return(model);
        }
コード例 #2
0
        public async Task <IActionResult> UpdateYeastPairing(YeastPairingViewModel model)
        {
            var cQuery = _recipeQueryFactory.CreateCategoriesQuery();
            var vQuery = _recipeQueryFactory.CreateVarietiesQuery();

            var   dto     = new YeastPairDto();
            ICode variety = null;

            if (model != null)
            {
                variety = await vQuery.ExecuteAsync(model.Variety.Id).ConfigureAwait(false);
            }

            if (variety != null)
            {
                dto.Variety  = variety.Id;
                dto.Category = variety.ParentId;
            }
            else
            {
                ICode cat = null;
                if (model != null)
                {
                    cat = await cQuery.ExecuteAsync(model.Variety.Id).ConfigureAwait(false);
                }
                dto.Category = cat.Id;
                dto.Yeast    = model?.Yeast.Id;
            }

            if (model != null)
            {
                dto.Id    = model.Id;
                dto.Yeast = model.Yeast.Id;
                dto.Note  = model.Note;
            }

            var cmd = _yeastCommandFactory.CreateYeastPairCommand();

            if (dto.Id == 0)
            {
                await cmd.AddAsync(dto).ConfigureAwait(false);
            }
            else
            {
                await cmd.UpdateAsync(dto).ConfigureAwait(false);
            }

            return(RedirectToAction("Index", "Admin", new { id = "yeasts" }));
        }
コード例 #3
0
        public YeastViewModel CreateYeastViewModel(YeastDto yeastDto)
        {
            if (yeastDto == null)
            {
                throw new ArgumentNullException(nameof(yeastDto));
            }

            var model = new YeastViewModel
            {
                Id        = yeastDto.Id,
                Brand     = CreateYeastBrandViewModel(yeastDto.Brand),
                Style     = CreateYeastStyleViewModel(yeastDto.Style),
                Trademark = yeastDto.Trademark,
                TempMax   = yeastDto.TempMax,
                TempMin   = yeastDto.TempMin,
                Alcohol   = yeastDto.Alcohol,
                Note      = yeastDto.Note
            };

            model.Brands.AddRange(CreateSelectList("Brand", _yeastBrandsDtoList));
            model.Styles.AddRange(CreateSelectList("Style", _yeastStylesDtoList));

            var dto = new YeastPairDto {
                Yeast = yeastDto.Id
            };

            model.Pairing          = CreateYeastPairingViewModel(dto);
            model.Pairing.Category = null;
            model.Pairing.Variety  = null;

            var pairs = _yeastPairingsDtoList.Where(p => p.Yeast.Value == yeastDto.Id).ToList();

            if (pairs != null)
            {
                model.Pairings.Clear();
                model.Pairings.AddRange(CreateYeastPairingViewModel(pairs));
            }

            return(model);
        }