Exemplo n.º 1
0
        public async Task <IActionResult> AddItem(AddInventoryItemViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.GetUserAsync(HttpContext.User);

                if (user.CurrentJobId != null)
                {
                    var item = new InventoryItem
                    {
                        UserId       = user.UserId,
                        JobId        = user.CurrentJobId.Value,
                        ProductId    = viewModel.ProductId ?? string.Empty,
                        Quantity     = viewModel.Quantity <= 0 ? 1 : viewModel.Quantity,
                        ImageFiles   = new List <string>(),
                        DepartmentId = int.Parse(viewModel.DepartmentId),
                        Brand        = viewModel.Brand,
                        Model        = viewModel.Model,
                        SerialNumber = viewModel.SerialNumber
                    };

                    //upload files
                    if (viewModel.Images?.Any(f => f.Length > 0) == true)
                    {
                        foreach (var file in viewModel.Images.Where(f => f.Length > 0))
                        {
                            var fileName = $"{user.CurrentJobId}-{user.UserId}-{Guid.NewGuid():N}.jpg";
                            using (var readStream = file.OpenReadStream())
                            {
                                await storageService.UploadStreamToFile(fileName, readStream);
                            }
                            item.ImageFiles.Add(fileName);
                        }
                    }

                    //save data to database
                    item = await inventoryService.AddInventoryItem(item);

                    logger.LogInformation($"User {user.UserName}({user.DisplayName}) add new item to job {item.JobId} with {item.ImageFiles.Count} pictures");
                    return(RedirectToAction("Index", new
                    {
                        addSuccessed = true
                    }));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "当前工作已结束");
                    return(RedirectToAction("Index"));
                }
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
        public ActionResult <InventoryItems> AddInventoryItem(InventoryItems items)
        {
            var inventoryItems = _service.AddInventoryItem(items);

            if (inventoryItems == null)
            {
                return(NotFound());
            }

            return(inventoryItems);
        }
        public ActionResult <InventoryItem> AddInventoryItem(InventoryItem item)
        {
            var inventoryItem = _service.AddInventoryItem(item);

            if (inventoryItem == null)
            {
                return(NotFound());
            }
            // test differences between them
            //return inventoryItem;
            return(Ok(inventoryItem));
        }