Esempio n. 1
0
        public IHttpActionResult PutProductStocks(int id, ProductStocks productStocks)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != productStocks.ProductStocksId)
            {
                return(BadRequest());
            }

            db.Entry(productStocks).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProductStocksExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Esempio n. 2
0
        public IHttpActionResult AddStocks(JObject jsonBody)
        {
            JObject products = (JObject)jsonBody["ProductsInStocks"]; // this variable must be present in the javascript

            jsonBody.Remove("ProductsInStocks");

            ProductStocks productStocks = jsonBody.ToObject <ProductStocks>(); // the job card object\



            JEnumerable <JToken> tokens = (JEnumerable <JToken>)products.Children <JToken>();

            foreach (JToken token in tokens)
            {
                JToken productJson = token.Children().First();

                ProductInProductStocks productInstance = productJson.ToObject <ProductInProductStocks>();
                // get the product and update it
                Product product = db.Products.Find(productInstance.ProductId);
                if (product == null)
                {
                    return(NotFound());
                }

                product.StocksQuantity  = productInstance.QuantityRecieved + product.StocksQuantity;
                db.Entry(product).State = EntityState.Modified;
            }

            db.SaveChanges();

            return(StatusCode(HttpStatusCode.Created));
        }
Esempio n. 3
0
        public static async Task <DL.Models.Product> GetProduct(Guid productId, DateTimeOffset referenceDate)
        {
            DL.Models.Product result = null;

            if (!ProductStocks.ContainsKey(productId))
            {
                await _loadLock.WaitAsync().ConfigureAwait(false);

                try
                {
                    result = await LoadProduct(productId).ConfigureAwait(false);

                    SetProductState(result, referenceDate);
                    return(result);
                }
                catch (Exception exception)
                {
                    // Log exception
                    throw;
                }
                finally
                {
                    _loadLock.Release();
                }
            }

            return(result);
        }
Esempio n. 4
0
        internal static DL.Models.Product SetProduct(ProductStock.DL.Models.Product product)
        {
            if (!ProductStocks.ContainsKey(product.Id))
            {
                ProductStocks.Add(product.Id, product);

                var result = new DL.Models.Product(product.Id, product.Number, product.Description);
                Products.Add(product.Id, result);

                var priceChanges = ChangeFactory.ToOrderedChangeEvent <
                    DL.Models.Product,
                    ProductStock.DL.Models.ProductPrice,
                    Guid,
                    double,
                    DateTimeOffset>(
                    x => x.Price,
                    0,
                    product.Prices,
                    x => x.Id,
                    x => x.Price,
                    x => x.RegisterDate).
                                   Cast <IEvent <DL.Models.Product, Guid> >().ToList();

                var stockAvailableMutations = MutationFactory.ToOrderedMutationEvent <
                    DL.Models.Product,
                    ProductStock.DL.Models.ProductStockMutation,
                    Guid,
                    int,
                    DateTimeOffset>(
                    x => x.Available,
                    product.StockMutations,
                    x => x.Id,
                    x => x.Amount * (x.Type == ProductStock.DL.Enums.MutationType.Purchase ? -1 : 1),
                    x => x.OrderDate).Cast <IEvent <DL.Models.Product, Guid> >().ToList();

                var stockInStockMutations = MutationFactory.ToOrderedMutationEvent <
                    DL.Models.Product,
                    ProductStock.DL.Models.ProductStockMutation,
                    Guid,
                    int,
                    DateTimeOffset>(
                    x => x.InStock,
                    product.StockMutations,
                    x => x.Id,
                    x => x.Amount * (x.Type == ProductStock.DL.Enums.MutationType.Purchase ? -1 : 1),
                    x => x.ShipmentDate).Cast <IEvent <DL.Models.Product, Guid> >().ToList();

                AddEvents(product.Id, new OrderedEventCollection <DL.Models.Product, Guid, DateTimeOffset>(priceChanges.ToList()));
                AddEvents(product.Id, new OrderedEventCollection <DL.Models.Product, Guid, DateTimeOffset>(stockAvailableMutations.ToList()));
                AddEvents(product.Id, new OrderedEventCollection <DL.Models.Product, Guid, DateTimeOffset>(stockInStockMutations.ToList()));

                return(result);
            }

            return(Products[product.Id]);
        }
Esempio n. 5
0
 private void cmdProductExpanded_Execute()
 {
     ProductStocks.Clear();
     foreach (var productStock in ContextManager.Context.dProductStocks)
     {
         ProductStocks.Add(new wrapProductStock {
             Stock = productStock
         });
     }
 }
        public ActionResult Guncelle(ProductStocks pr1)
        {
            var urnstk = db.ProductStocks.Find(pr1.UrunStokId);

            urnstk.Piece      = pr1.Piece;
            urnstk.RecordDate = pr1.RecordDate;
            urnstk.ProductId  = pr1.ProductId;
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult yenistk(ProductStocks pr1)
 {
     if (!ModelState.IsValid)
     {
         return(View("yenistk"));
     }
     db.ProductStocks.Add(pr1);
     db.SaveChanges();
     return(View());
 }
Esempio n. 8
0
        public IHttpActionResult GetProductStocks(int id)
        {
            ProductStocks productStocks = db.Stocks.Find(id);

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

            return(Ok(productStocks));
        }
Esempio n. 9
0
        public IHttpActionResult PostProductStocks(ProductStocks productStocks)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Stocks.Add(productStocks);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = productStocks.ProductStocksId }, productStocks));
        }
Esempio n. 10
0
        public IHttpActionResult DeleteProductStocks(int id)
        {
            ProductStocks productStocks = db.Stocks.Find(id);

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

            db.Stocks.Remove(productStocks);
            db.SaveChanges();

            return(Ok(productStocks));
        }
Esempio n. 11
0
        public IHttpActionResult AddStocks(JObject jsonBody)
        {
            JObject products = (JObject)jsonBody["ProductsInStocks"]; // this variable must be present in the javascript

            jsonBody.Remove("ProductsInStocks");

            ProductStocks productStocks = jsonBody.ToObject <ProductStocks>(); // the job card object\

            productStocks.ApplicationUserId = User.Identity.GetUserId();

            db.Stocks.Add(productStocks);

            db.SaveChanges();                                    // save it to db, to get the new stock id for further processing

            int productStocksId = productStocks.ProductStocksId; // the foregin key to be used for the -> proudcts

            JEnumerable <JToken> tokens = (JEnumerable <JToken>)products.Children <JToken>();

            foreach (JToken token in tokens)
            {
                JToken productJson = token.Children().First();
                ProductInProductStocks productInstance = productJson.ToObject <ProductInProductStocks>();
                productInstance.ProductStocksId = productStocksId;
                // add a products in stock entry.
                db.ProductsInProductStocks.Add(productInstance);

                // increase quantity in the products table

                Product product = db.Products.Find(productInstance.ProductId);
                product.StocksQuantity = product.StocksQuantity + productInstance.QuantityRecieved;

                db.Entry(product).State = EntityState.Modified;
            }

            db.SaveChanges();
            return(StatusCode(HttpStatusCode.Created));
        }