コード例 #1
0
        private async void btnAddRequest_Click(object sender, EventArgs e)
        {
            if (!ValidateAll())
            {
                MessageBox.Show("Podaci nisu ispravni", "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            var request = new ProductUpsertRequest()
            {
                Condition   = txtStanje.Text,
                Description = txtDimensions.Text,
                Discount    = double.Parse(txtPopust.Text) / 100,
                ProductName = txtNaziv.Text,
                Price       = double.Parse(txtCijena.Text)
            };

            if (txtFilename.Text != _originalFilename)
            {
                request.ImageFileName = pictureDialog.SafeFileName;
                try
                {
                    var stream = pictureDialog.OpenFile();
                    using (stream)
                    {
                        request.Image = File.ReadAllBytes(pictureDialog.FileName);
                    }
                }
                catch (Exception) { }
            }

            if (_product != null)
            {
                var result = await _service
                             .Patch <EToolService.Model.Models.Product>(_product.Id, request);

                MessageBox.Show("Uspješno promijenjeno", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Parent.Reload(result);
                this.Close();
            }
            else
            {
                var result = await _service
                             .Insert <EToolService.Model.Models.Product>(request);

                MessageBox.Show("Proizvod uspješno dodan", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
                if (_product != null)
                {
                    Parent.Reload(result);
                }
                this.Close();
            }
        }
コード例 #2
0
        public async Task <Model.Models.Product> Insert(ProductUpsertRequest request)
        {
            var product = new Product()
            {
                ProductName = request.ProductName,
                Price       = (decimal)request.Price,
                Condition   = request.Condition,
                Description = request.Description,
                Discount    = request.Discount,
                Active      = true
            };

            await InsertImage(product, request.ImageFileName, request.Image);

            _context.Product.Add(product);
            await _context.SaveChangesAsync();

            return(_mapper.Map <Model.Models.Product>(product));
        }
コード例 #3
0
        public async Task <Model.Models.Product> Update(int id, ProductUpsertRequest request)
        {
            var entity = _context.Product.Find(id);

            if (entity == null)
            {
                throw new UserException("Proizvod ID nije validan");
            }

            await Map(entity, request);

            await _context.SaveChangesAsync();

            var result    = _mapper.Map <Model.Models.Product>(entity);
            var directory = Path.Combine(Directory.GetCurrentDirectory(), "Data", "Images", "Products", $"{result.ImageLocation}");

            result.Image = await FindImage(directory);

            return(result);
        }
コード例 #4
0
        private async Task <Database.Product> Map(Database.Product product, ProductUpsertRequest request)
        {
            product.Condition   = request.Condition != null ? request.Condition : product.Condition;
            product.Discount    = request.Discount != product.Discount ? request.Discount : product.Discount;
            product.Description = request.Description != null ? request.Description : product.Description;
            if (request.Image != null)
            {
                if (request.Image.Length != 0)
                {
                    var path  = Path.Combine(Directory.GetCurrentDirectory(), "Data", "Images", "Products", $"{product.ImageLocation}");
                    var image = FindImage(path);
                    if (image != null)
                    {
                        await ReplaceImage(product, request.ImageFileName, request.Image);
                    }
                }
            }
            product.Price       = (decimal)request.Price;
            product.ProductName = request.ProductName != null ? request.ProductName : product.ProductName;

            await _context.SaveChangesAsync();

            return(product);
        }
コード例 #5
0
 public async Task <Model.Models.Product> Insert([FromBody] ProductUpsertRequest request)
 {
     return(await _service.Insert(request));
 }
コード例 #6
0
 public async Task <Model.Models.Product> Update(int id, [FromBody] ProductUpsertRequest request)
 {
     return(await _service.Update(id, request));
 }