public void Initialize()
 {
     _itemsRepository.AddItem(new Item
     {
         Id    = "1",
         Name  = "Good 1",
         Price = 1000
     });
     _itemsRepository.AddItem(new Item
     {
         Id    = "2",
         Name  = "Good 2",
         Price = 777
     });
     _itemsRepository.AddItem(new Item
     {
         Id    = "3",
         Name  = "Good 3",
         Price = 456
     });
     _itemsRepository.AddItem(new Item
     {
         Id    = "4",
         Name  = "Good 4",
         Price = 987
     });
     _itemsRepository.AddItem(new Item
     {
         Id    = "5",
         Name  = "Good 5",
         Price = 235
     });
 }
示例#2
0
        public IActionResult Post([FromBody] Item item)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Item createdItem = _items.AddItem(item);

            return(CreatedAtAction(nameof(Get), new { id = createdItem.Id }, createdItem));
        }
示例#3
0
        public async Task <ActionResult <ToDoItem> > PostTodoItem(ToDoItem item)
        {
            GetLogin userinfo = await GetLoginUser();

            if (userinfo == null)
            {
                Response.StatusCode = 401;
                await Response.WriteAsync("Пользователь не авторизован");
            }
            item.UserId = userinfo.Id;
            bool completed = await repositoryItems.AddItem(item);

            if (!completed)
            {
                return(StatusCode(500));
            }
            Dictionary <string, long> d = new Dictionary <string, long> {
                { "id", item.ID }
            };

            return(Ok(d));
        }
示例#4
0
        public async Task <ActionResult> Create([Bind(Include = "ID,ItemType,Title,Description,ImagePath,DocumentPath,Approved,UserID,Created_at,Updated_at")] Item item)
        {
            //Get uploaded image, if there is one.
            var ImageFile = Request.Files["ImagePath"];

            if (ImageFile != null && ImageFile.ContentLength > 0)
            {
                item.ImagePath = SaveImage(ImageFile);
            }

            var DocumentFile = Request.Files["DocumentPath"];

            if (DocumentFile != null && DocumentFile.ContentLength > 0)
            {
                item.DocumentPath = SaveDocument(DocumentFile);
            }

            item.Approved = false;
            if (User.IsInRole("admin"))
            {
                item.Approved = true;
            }
            item.Created_at = DateTime.Now;
            item.Updated_at = DateTime.Now;
            item.UserID     = User.Identity.GetUserId(); // NOte need to include: using Microsoft.AspNet.Identity;
            if (ModelState.IsValid)
            {
                try
                {
                    await _itemsRepository.AddItem(item);
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError(string.Empty, "Error: " + ex.InnerException);
                }

                return(RedirectToAction("Index", new { ItemType = item.ItemType }));
            }

            return(View(item));
        }
示例#5
0
        private async Task <IHttpActionResult> UploadProtectedFileImpl(HttpPostedFile file, int itemId)
        {
            var item = await _itemsRepository.GetItem(itemId);

            var exists = true;

            if (item == null)
            {
                item = new Item {
                    ItemId = itemId
                };
                exists = false;
            }

            MapItem(file, item);

            using (var stream = file.InputStream)
            {
                string fileName = item.ItemId + item.FileExtension;
                await _fileManager.UploadFileAsync(fileName, stream);
            }

            if (exists)
            {
                _itemsRepository.UpdateItem(item);
            }
            else
            {
                _itemsRepository.AddItem(item);
            }

            await _itemsRepository.SaveChangesAsync();

            var model = new UploadFileResult {
                Success = true,
            };

            return(Json(model));
        }
示例#6
0
        public async Task <IActionResult> AddItems(AddItemsViewModel model)
        {
            if (ModelState.IsValid)
            {
                string uniqueFilename = null;
                if (model.ItemPhoto != null)
                {
                    string uploadsFolder = Path.Combine(hostingEnvironment.WebRootPath, "images\\item");
                    uniqueFilename = Guid.NewGuid().ToString() + "_" + Path.GetFileName(model.ItemPhoto.FileName);
                    string filePath = Path.Combine(uploadsFolder, uniqueFilename);
                    using (var fileStream = new FileStream(filePath, FileMode.Create))
                    {
                        model.ItemPhoto.CopyTo(fileStream);
                    }
                }

                Shop = await userManager.GetUserAsync(HttpContext.User);

                await itemsRepository.AddItem(new Items
                {
                    ItemName   = model.ItemName,
                    ItemPrice  = model.ItemPrice,
                    ItemDesc   = model.ItemDesc,
                    ItemWeight = model.ItemWeight,
                    Seller     = Shop,
                    category   = await context.Categories.FindAsync(model.Category),
                    Id         = Shop.Id,
                    IsInStock  = true,
                    PhotoPath  = uniqueFilename
                });

                ModelState.Clear();
                return(View());
            }

            return(View(model));
        }
 public async Task <Unit> Handle(AddItemCommand request, CancellationToken cancellationToken)
 {
     itemsRepository.AddItem(request.Nazwa, request.Kolor, request.Cena);
     return(Unit.Value);
 }
示例#8
0
 public ActionResult AddItem(Item item, string productName)
 {
     return(Json(_itemRepository.AddItem(item, productName)));
 }
示例#9
0
        public async Task <AddReceiptResult> AddReceiptAsync([NotNull] ReceiptRequestDto requestDto)
        {
            if (requestDto == null)
            {
                throw new ArgumentNullException(nameof(requestDto));
            }
            var hash = _HashCalculator.Calculate(requestDto);

            var isExistsInFnsDb = await _FnsService.IsReceiptExists(requestDto.FiscalNumber, requestDto.FiscalDocument, requestDto.FiscalSign, requestDto.Time,
                                                                    requestDto.Sum);

            if (!isExistsInFnsDb.ReceiptExists)
            {
                throw new ReceiptNotExistsInFns("Receipt is not exists in FNS db");
            }

            CheckReceiptSDK.Results.Document doc = null;

            int tries = 6;

            while (tries > 0)
            {
                tries--;

                var result = await _FnsService.ReceiveAsync(requestDto.FiscalNumber, requestDto.FiscalDocument, requestDto.FiscalSign);

                doc = result.Document;
                if (result.StatusCode == HttpStatusCode.PaymentRequired)
                {
                    throw new OverLimitException("Free FNS requests limit exceeded. Login as another user or pay to FNS.");
                }

                if (result.StatusCode != HttpStatusCode.Accepted &&
                    result.StatusCode != HttpStatusCode.OK &&
                    result.StatusCode != HttpStatusCode.Created)
                {
                    throw new Exception($"Failed to receive fns data. Status Code: {result.StatusCode}; Details: \'{result.Message}\'");
                }
                if (doc == null && result.StatusCode == HttpStatusCode.Accepted)
                {
                    await Task.Delay(750);

                    continue;
                }

                break;
            }

            //todo вместо этого, реализовать очередь на добавление, что бы сервис сам добавил рецепт, когда фнс станет доступен.
            if (doc == null)
            {
                throw new FnsProbablyUnavailableException("FNS Service currently can be unavailable. Please try later.");
            }

            var receipt = new Receipt
            {
                Hash      = hash,
                Date      = requestDto.Time,
                RawQrData = requestDto.RawQRData,
                //todo после реализации юзеров, получать id реального авторизованного юзера веб-сервиса.
                UserId = 1
            };

            var addedReceipt = await _ReceiptsRepository.AddReceiptAsync(receipt);

            if (addedReceipt == null)
            {
                throw new FailedToAddReceiptException("Failed to add receipt to db");
            }

            var extended = new ReceiptExtended
            {
                ReceiptId     = addedReceipt.ReceiptId,
                Cashier       = doc.Receipt.Cashier,
                StoreName     = doc.Receipt.StoreName,
                RetailAddress = doc.Receipt.RetailPlaceAddress,
                KktRegId      = doc.Receipt.KktRegId,
                ShiftNumber   = doc.Receipt.ShiftNumber.ToString(),
                RetailInn     = doc.Receipt.RetailInn
            };

            var addedExtended = await _ReceiptsRepository.AddExtendedInfoToReceipt(extended);

            if (addedExtended == null)
            {
                _Logger.Log(LogLevel.Error, "Failed to add extended receipt for {receiptId}", extended.ReceiptId);
            }

            var addedItems = new List <Item>();

            foreach (var receiptItem in doc.Receipt.Items)
            {
                var item = new Item()
                {
                    Sum       = receiptItem.Sum,
                    Name      = receiptItem.Name,
                    Price     = receiptItem.Price,
                    Quantity  = receiptItem.Quantity,
                    ReceiptId = addedReceipt.ReceiptId
                };
                var addedItem = await _ItemsRepository.AddItem(item);

                addedItems.Add(addedItem);
            }

            return(new AddReceiptResult
            {
                Id = addedReceipt.ReceiptId,
                Hash = addedReceipt.Hash,
                AddedItemsCount = addedItems.Count,
                RawQRData = requestDto.RawQRData
            });
        }