Example #1
0
        public async Task Initialzie(DateTime date, string userName)
        {
            var dateStr = date.ToString("yyyy-MM-dd");
            var item    = await _retailDayRepository.GetSingleAsync(x => x.Date == dateStr, x => x.RetailProductSnapshots);

            var products = await _productRepository.All.Where(x => !x.Deleted).ToListAsync();

            var productForRetails = await _productForRetailRepository.All.Where(x => !x.Deleted).ToListAsync();

            if (item != null)
            {
                if (item.Initialized)
                {
                    throw new Exception("该零售日已经初始化, 操作失败");
                }
                item.Initialized = true;
                item.SetModification(userName, "初始化");
                InitializeRetailProducts(userName, item, productForRetails, products);
                _retailDayRepository.Update(item);
            }
            else
            {
                item = new RetailDay
                {
                    Date        = dateStr,
                    Initialized = true
                };
                item.SetCreation(userName, "初始化");
                InitializeRetailProducts(userName, item, productForRetails, products);
                _retailDayRepository.Add(item);
            }
        }
Example #2
0
        public async Task <IActionResult> Post([FromBody] RetailDayViewModel retailDayVm)
        {
            if (retailDayVm == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var newItem = Mapper.Map <RetailDay>(retailDayVm);

            newItem.SetCreation(UserName);
            _retailDayRepository.Add(newItem);
            if (!await UnitOfWork.SaveAsync())
            {
                return(StatusCode(500, "保存时出错"));
            }

            var vm = Mapper.Map <RetailDayViewModel>(newItem);

            return(CreatedAtRoute("GetRetailDay", new { id = vm.Id }, vm));
        }