public async Task CreateAsync(CategoryArea categoryArea)
        {
            ValidateDuplicateName(categoryArea);

            _context.Add(categoryArea);
            await _context.SaveChangesAsync();
        }
 /// <summary>
 /// 创建套餐模板项构造器
 /// </summary>
 /// <param name="itemName">模板项名称</param>
 /// <param name="packId">套餐模板Id</param>
 /// <param name="packSpaceId">套餐模板空间Id</param>
 /// <param name="categoryArea">品类区域</param>
 /// <param name="categoryIds">三级品类Id集</param>
 public DecorationPackItem(string itemName, Guid packId, Guid packSpaceId, CategoryArea categoryArea, IEnumerable <Guid> categoryIds)
     : this()
 {
     base.Name         = itemName;
     this.PackId       = packId;
     this.PackSpaceId  = packSpaceId;
     this.CategoryArea = categoryArea;
     this.SetCategoryIds(categoryIds);
 }
        private void ValidateNoCategoryAssigned(CategoryArea categoryArea)
        {
            var categoryAreaId      = categoryArea.Id;
            var anyCategoryAssigned = _context.Categories.Any(c => c.CategoryArea.Id == categoryAreaId);

            if (anyCategoryAssigned)
            {
                throw new ValidationException($"There are one or more categories assigned to '{categoryArea?.Name}' area.");
            }
        }
Esempio n. 4
0
        public async Task <IActionResult> Post([FromBody] CategoryAreaDto categoryAreaDto)
        {
            var categoryArea = new CategoryArea
            {
                Name        = categoryAreaDto.Name,
                Description = categoryAreaDto.Description
            };
            await _categoryAreaService.CreateAsync(categoryArea);

            categoryAreaDto.Id = categoryArea.Id;
            return(CreatedAtRoute("GetCategoryArea", new { id = categoryAreaDto.Id }, categoryAreaDto));
        }
        private void ValidateDuplicateName(CategoryArea categoryArea)
        {
            var id   = categoryArea.Id;
            var name = categoryArea?.Name?.Trim();
            var sameNameAreaExists = _context.CategoryAreas
                                     .Any(c => c.Name == name && c.Id != id);

            if (sameNameAreaExists)
            {
                throw new EntityAlreadyExistsException($"{categoryArea?.GetEntityName()} with same name:'{name}' already exists.");
            }
        }
Esempio n. 6
0
 public static CategoryAreaDto ConvertFrom(CategoryArea categoryArea)
 {
     if (categoryArea == null)
     {
         return(null);
     }
     return(new CategoryAreaDto
     {
         Id = categoryArea.Id,
         Name = categoryArea.Name,
         Description = categoryArea.Description
     });
 }
 public async Task UpdateAsync(CategoryArea categoryArea)
 {
     ValidateDuplicateName(categoryArea);
     _context.CategoryAreas.Update(categoryArea);
     try
     {
         await _context.SaveChangesAsync();
     }
     catch (DbUpdateConcurrencyException e)
     {
         if (!CategoryAreaExists(categoryArea.Id))
         {
             throw new EntityNotFoundException($"{categoryArea.GetEntityName()} with Id:{categoryArea.Id} not found", e);
         }
         throw;
     }
 }
Esempio n. 8
0
        public async Task <ImportResult <CategoryArea> > Import(string csvContent)
        {
            var result = new ImportResult <CategoryArea>
            {
                ImportedEntities = new List <CategoryArea>(),
                ErrorMessages    = new List <string>()
            };

            int counter = 0;
            var records = _recordExtractor.GetRecords <CategoryAreaRecord, CategoryAreaRecordMap>(csvContent);

            foreach (var record in records)
            {
                counter++;
                if (string.IsNullOrWhiteSpace(record.Name))
                {
                    AddError(result, $"[{counter}]: Area name is null or empty.");
                    continue;
                }

                var categoryArea = await _categoryAreaService.ReadByNameAsync(record.Name);

                if (categoryArea != null)
                {
                    AddError(result, $"[{counter}]: Area with name: {record.Name} already exists.");
                    continue;
                }

                categoryArea = new CategoryArea
                {
                    Name        = record.Name,
                    Description = record.Description
                };
                await _categoryAreaService.CreateAsync(categoryArea);

                result.ImportedEntities.Add(categoryArea);
            }

            return(result);
        }
 /// <summary>
 /// 修改套餐模板项名称
 /// </summary>
 /// <param name="packItemName">套餐模板项名称</param>
 /// <param name="categoryArea">品类区域</param>
 public void UpdateInfo(string packItemName, CategoryArea categoryArea)
 {
     base.Name         = packItemName;
     this.CategoryArea = categoryArea;
 }