Exemplo n.º 1
0
 public async Task <dynamic> Submit([FromBody] Model.BrandPost.Submit.Input input)
 {
     return(await _brandPost.Submit(input));
 }
Exemplo n.º 2
0
        public async Task <ApiResult <long> > Submit(Model.BrandPost.Submit.Input input)
        {
            var output = new ApiResult <long>();

            if (string.IsNullOrWhiteSpace(input.Name))
            {
                output.Msgs.Add(new MsgResult("name", "common.name_empty"));
            }

            if (output.Msgs.Any())
            {
                return(output);
            }

            var name = input.Name.Trim();
            var queryBrandWithName = _repository.ProductBrandGetQuery(new Model.Repository.ProductBrandGetQuery.Input
            {
                Name = name
            });

            try
            {
                if (input.Id.HasValue)
                {
                    var item = await _repository.ProductBrandGetQuery(input.Id.Value).FirstOrDefaultAsync();

                    if (item == null)
                    {
                        output.Msgs.Add(new MsgResult("general", "common.not_exists"));
                        return(output);
                    }

                    if (await queryBrandWithName.Where(x => !x.Name.Equals(item.Name)).AnyAsync())
                    {
                        output.Msgs.Add(new MsgResult("name", "common.name_dupplicate"));
                        return(output);
                    }

                    _unitOfWork.Edit(item, nameof(item.Name), name);
                    _unitOfWork.Edit(item, nameof(item.PopularOrderNumber), input.PopularOrderNumber);
                    await _unitOfWork.SaveChanges();

                    output.Code = Const.ApiCodeEnum.Success;
                    output.Data = item.Id;
                }
                else
                {
                    if (await queryBrandWithName.AnyAsync())
                    {
                        output.Msgs.Add(new MsgResult("name", "common.name_dupplicate"));
                        return(output);
                    }

                    var item = new Models.ProductBrand
                    {
                        Name = input.Name,
                        PopularOrderNumber = input.PopularOrderNumber,
                    };
                    await _unitOfWork._dbContext.ProductBrand.AddAsync(item);

                    await _unitOfWork.SaveChanges();

                    input.Id = item.Id;

                    output.Code = Const.ApiCodeEnum.Success;
                    output.Data = item.Id;
                }

                if (input.FileList != null)
                {
                    await _fileManage.Update(new File.Model.Manage.UpdateModel.Input
                    {
                        CategoryId = (long)Const.FileCategory.Brand,
                        ItemId     = input.Id.ToString(),
                        IsTemp     = false,
                        FileList   = input.FileList.Select((m, index) => new File.Model.Manage.UploadModel.File {
                            Id = m.Id, OrderNumber = index
                        }).ToList(),
                    });
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex, ex.Message);
            }
            return(output);
        }