Beispiel #1
0
        public async Task <Result <GetGoodDto> > CreateGoodAsync(CreateGoodDto goodToCreate)
        {
            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                HttpResponseMessage response = await client.PostAsJsonAsync($"{BaseUrl}/{apiUrl}", goodToCreate);

                return(response.IsSuccessStatusCode
                    ? await response.Content.ReadAsAsync <Result <GetGoodDto> >()
                    : new Result <GetGoodDto>
                {
                    IsSuccess = false,
                    Message = ReasonPhrases.GetReasonPhrase(Convert.ToInt32(response.StatusCode))
                });
            }
        }
        public JObject CreateGood(CreateGoodDto dto)
        {
            JObject jo = new JObject();

            if (dto.Number == "" || dto.Number.Length > 100)
            {
                jo["stateCode"] = 400;
                jo["message"]   = "商品编号不合法,无法添加!";
                return(jo);
            }
            else if (dto.Name == "" || dto.Name.Length > 100)
            {
                jo["stateCode"] = 400;
                jo["message"]   = "商品名称不合法,无法添加!";
                return(jo);
            }
            else if (dto.Price <= 0m)
            {
                jo["stateCode"] = 400;
                jo["message"]   = "商品价格不合法,无法添加!";
                return(jo);
            }
            else if (dto.TagsId.Count() > 5)
            {
                jo["stateCode"] = 400;
                jo["message"]   = "商品标签数超过五个,无法添加!";
                return(jo);
            }
            else if (dto.Description.Length > 2000)
            {
                jo["stateCode"] = 400;
                jo["message"]   = "商品描述超过2000个字符,无法添加!";
                return(jo);
            }
            var isRepeat = WebapiDbContext.Goods.Where(o => o.Number == dto.Number).FirstOrDefault();

            if (isRepeat != null)
            {
                jo["stateCode"] = 400;
                jo["message"]   = "商品编号重复,无法添加!";
                return(jo);
            }
            dto.Price = System.Decimal.Round(System.Decimal.Floor(dto.Price * 100) / 100, 2);
            WebapiDbContext.Goods.Add(new Repository.Entity.Good()
            {
                Number      = dto.Number,
                Name        = dto.Name,
                Price       = dto.Price,
                Description = dto.Description,
                State       = "待上架",
                Is_deleted  = "否",
                Created_at  = DateTime.Now,
                Updated_at  = DateTime.Now
            });
            WebapiDbContext.SaveChanges();
            var length = dto.TagsId.Length;

            for (var i = 0; i < length; i++)
            {
                var result = WebapiDbContext.Goods.Where(o => o.Number == dto.Number).Select(o => new CreateGoodDto
                {
                    Id = o.Id
                }).FirstOrDefault();
                WebapiDbContext.GoodTags.Add(new Repository.Entity.Goodtags()
                {
                    Tag_id  = dto.TagsId[i],
                    Good_id = result.Id
                });
            }
            WebapiDbContext.SaveChanges();
            jo["stateCode"] = 200;
            jo["message"]   = "success!";
            return(jo);
        }