예제 #1
0
        public string Create(UserClaim creator, List <AccessoryInputModel> model)
        {
            try
            {
                var accessories = model.ConvertAll <Accessory>(input =>
                {
                    var provider = _providerService.Get(input.ProviderId);
                    var type     = _accTypeService.Get(input.AccessoryTypeId);
                    return(new Accessory()
                    {
                        Name = input.Name,
                        Quantity = input.Quantity,
                        Unit = input.Unit,
                        Provider = provider,
                        AccessoryType = type,
                        ReceiptPrice = input.ReceiptPrice,
                        ExpiredDate = input.ExpiredTime,
                        Description = input.Description
                    });
                });
                var res = _accessoryService.Create(accessories);
                if (res == null)
                {
                    return(null);
                }
                int index   = -1;
                var details = res.ConvertAll <AccessoryReceiptDetail>(accessory =>
                {
                    index++;
                    return(new AccessoryReceiptDetail()
                    {
                        Quantity = accessory.Quantity,
                        UnitPrice = accessory.ReceiptPrice,
                        Unit = accessory.Unit,
                        AccessoryId = accessory.Id,
                        ExpiredTime = model[index].ExpiredTime
                    });
                });

                double total = details.Sum(detail => detail.Quantity * detail.UnitPrice);

                AccessoryReceipt newReceipt = new AccessoryReceipt()
                {
                    CreatedDate = DateTime.Now,
                    Creator     = creator,
                    TotalAmount = total,
                    Details     = details.ToArray()
                };

                _accessoryReceipt.InsertOne(newReceipt);
                return(newReceipt.Id);
            }
            catch
            {
                return(null);
            }
        }
예제 #2
0
 public void Remove(AccessoryReceipt accessoryReceiptIn) =>
 _accessoryReceipt.DeleteOne(accessoryReceipt => accessoryReceipt.Id == accessoryReceiptIn.Id);
예제 #3
0
 public void Update(string id, AccessoryReceipt accessoryReceiptIn) =>
 _accessoryReceipt.ReplaceOne(accessoryReceipt => accessoryReceipt.Id == id, accessoryReceiptIn);