예제 #1
0
파일: ItemBll.cs 프로젝트: ifdog/Queries
        public ResultItemsModel AddItem(ItemModel item, string user = "******")
        {
            var dbModel = new ItemDbModel
            {
                Item = new ItemModel
                {
                    Name        = item.Name,
                    Model       = item.Model,
                    Brand       = item.Brand,
                    Spec        = item.Spec,
                    Supplier    = item.Supplier,
                    Discount    = item.Discount,
                    OriginPrice = item.OriginPrice,
                    CreateDate  = DateTime.Now,
                    Owner       = user,
                    Remark      = item.Remark
                },
                FlatItem = new ItemModel()
            };

            _itemType.GetProperties(BindingFlags.Instance | BindingFlags.Public)
            .Where(i => i.PropertyType == typeof(string) && _itemPropertyNames.Contains(i.Name))
            .ForEach(
                i => i.SetValue(dbModel.FlatItem, Strings.Flatten(_itemType.GetProperty(i.Name).GetValue(dbModel.Item) as string)));
            _itemDal.Insert(dbModel);
            return(ResultFactory.CreateItemsResult(ResultCode.Ok));
        }
        private async void ExecuteAddItemCommand()
        {
            var errorList = ValidateInputParameters();

            if (errorList.Count > 0)
            {
                MessageBox.Show("Error encountered in adding new item.\n" + string.Join(Environment.NewLine, errorList));
                return;
            }

            var item = new ItemDbModel()
            {
                Barcode            = Barcode,
                BrandName          = BrandName,
                DosageForm         = DosageForm,
                DosageStrength     = DosageStrength,
                GenericName        = GenericName,
                Manufacturer       = Manufacturer,
                Price              = (int)(UnitPrice * 100),
                TherapeuticClassId = SelectedTherapeuticClass.TherapeuticClassId
            };

            var resultsChanged = await _itemProcessor.AddItem(item);

            if (resultsChanged == 0)
            {
                throw new Exception("Failed to add item");
            }

            var newItem = (await _itemProcessor.GetItems(item.GenericName, item.BrandName, item.Manufacturer,
                                                         item.Barcode, SelectedTherapeuticClass)).FirstOrDefault();

            var inventoryItem = new InventoryDbModel()
            {
                ItemId            = newItem.ItemId,
                BatchNumber       = BatchNumber,
                LotNumber         = LotNumber,
                ExpiryDate        = ExpiryDate.Date,
                ManufacturingDate = ManufacturingDate.Date,
                Quantity          = Quantity
            };

            resultsChanged = await _inventoryProcessor.AddInventoryItem(inventoryItem);

            DisplayAddItemResult(resultsChanged > 0);
            InitializeValues();
        }
예제 #3
0
        public async Task <ItemModel> CreateAsync(CreateItemRequest request, CancellationToken token)
        {
            var item = new ItemDbModel
            {
                Article          = request.Article,
                Name             = request.Name,
                Description      = request.Description,
                Size             = request.Size,
                Currency         = request.Currency,
                PurchasePrice    = request.PurchasePrice,
                Price            = request.Price,
                Photo            = request.Photo,
                CreationDate     = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                ModificationDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                Type             = request.Type
            };

            await _repository.CreateAsync(item, token);

            return(item.ConvertTo <ItemModel>());
        }
 public Item(ItemDbModel itemModel, InventoryDbModel inventoryModel, TherapeuticClassDbModel therapeuticClass)
 {
     ItemModel        = itemModel;
     InventoryModel   = inventoryModel;
     TherapeuticClass = therapeuticClass;
 }