public List <FeedingIngredientViewParAll> GetAllFeedIngr()
 {
     using (var feedIng = new FeedingIngredientRepository())
     {
         return(feedIng.GetAll().Select(x => new FeedingIngredientViewParAll
         {
             FeedingIngredientsId = x.FeedingIngredientsId,
             Percentage = (_percentage.GetAll().ToList().Find(p => p.FeedingPercentageId == x.FeedingPercentageId).Percentage).ToString(CultureInfo.InvariantCulture),
             StockItem = _stock.GetAll().ToList().Find(s => s.FeedingStockId == x.FeedingStockId).ItemName,
             IngredientMass = x.IngredientMass
         }).ToList());
     }
 }
Пример #2
0
 public void DeleteAllIngredientsFromList()
 {
     using (var feedIng = new FeedingIngredientRepository())
     {
         foreach (var ingredient in feedIng.GetAll())
         {
             var ing = feedIng.GetById(ingredient.FeedingIngredientsId);
             if (ing != null)
             {
                 feedIng.Delete(ing);
             }
         }
     }
 }
 public void UpdateFeedIngr(FeedingIngredientsView model)
 {
     using (var feedIng = new FeedingIngredientRepository())
     {
         var feed = feedIng.GetById(model.FeedingIngredientsId);
         if (feed != null)
         {
             feed.FeedingIngredientsId = model.FeedingIngredientsId;
             feed.FeedingPercentageId  = model.FeedingPercentageId;
             feed.FeedingStockId       = model.FeedingStockId;
             feed.IngredientMass       = model.IngredientMass;
         }
     }
 }
        public void DeleteFeedIngr(int id)
        {
            using (var feedIng = new FeedingIngredientRepository())
            {
                var feed = feedIng.GetById(id);
                if (feed != null)
                {
                    //from ingredients
                    var ingredient = feedIng.GetById(id);

                    //Mass from stock
                    //Get selected stock
                    var stock = _stock.GetAll().ToList().Find(x => x.FeedingStockId == ingredient.FeedingStockId);
                    if (stock != null)
                    {
                        //Calculate total mass from stock add with selected ingredients
                        double totalMass = (Math.Round(stock.TotalMass, 0) + Math.Round(Convert.ToDouble(ingredient.IngredientMass), 0));

                        //Gets the average mass
                        double qtyRatio = totalMass / stock.Mass;

                        //Checks if its a double or not
                        int index = qtyRatio.ToString(CultureInfo.InvariantCulture).IndexOf('.');

                        //calculates the number of items bought and replace values with left
                        int number;
                        if (index > 0)
                        {
                            number =
                                (Convert.ToInt16(qtyRatio.ToString(CultureInfo.InvariantCulture).Substring(0, index)) +
                                 1);
                            stock.NumberOfItems = number;
                        }
                        else
                        {
                            number = Convert.ToInt16(qtyRatio.ToString(CultureInfo.InvariantCulture));
                            stock.NumberOfItems = number;
                        }
                        //equate mass with the calculated
                        stock.TotalMass = totalMass;

                        //Call update method fro the repository
                        _stock.Update(stock);
                    }
                    feedIng.Delete(feed);
                }
            }
        }
 public FeedingIngredientViewParAll GetFeedIngrById(int id)
 {
     using (var feedIng = new FeedingIngredientRepository())
     {
         var feed     = feedIng.GetById(id);
         var feedView = new FeedingIngredientViewParAll();
         if (feed != null)
         {
             feedView.FeedingIngredientsId = feed.FeedingIngredientsId;
             feedView.Percentage           = feed.FeedingPercentage.Percentage;
             feedView.StockItem            = feed.FeedingStock.ItemName;
             feedView.IngredientMass       = feed.IngredientMass;
         }
         return(feedView);
     }
 }
        public void AddFeedIngr(FeedingIngredientsView model)
        {
            using (var feedIng = new FeedingIngredientRepository())
            {
                //calculate percentage from dropdown list
                string per =
                    _percentage.GetAll()
                    .ToList()
                    .Find(x => x.FeedingPercentageId == model.FeedingPercentageId)
                    .Percentage;

                //get percentage length
                int indper = per.Length;


                //Get total mass from feeding stock
                double mass = _stock.GetAll().ToList().Find(x => x.FeedingStockId == model.FeedingStockId).TotalMass;

                //calculatye percentage mass that has been added as an ingredient
                double calcPercMass = ((Convert.ToDouble(per.Substring(0, indper - 2))) / 100) * mass;

                //Add Ingredients to database
                FeedingIngredients getList = feedIng.GetAll().ToList().Find(x => x.FeedingStockId == model.FeedingStockId);
                if (getList != null)
                {
                    getList.IngredientMass      = Convert.ToString(Convert.ToDouble(getList.IngredientMass) + calcPercMass, CultureInfo.InvariantCulture);
                    getList.FeedingPercentageId = model.FeedingPercentageId;
                    getList.FeedingStockId      = model.FeedingStockId;

                    feedIng.Update(getList);
                }
                else
                {
                    var feedIn = new FeedingIngredients
                    {
                        FeedingIngredientsId = model.FeedingIngredientsId,
                        IngredientMass       = calcPercMass.ToString(CultureInfo.InvariantCulture),
                        FeedingPercentageId  = model.FeedingPercentageId,
                        FeedingStockId       = model.FeedingStockId
                    };
                    //Call repository insert
                    feedIng.Insert(feedIn);
                }



                //Mass from stock update every time ingredient is added
                //Gets stock item that has been selected
                var stock = _stock.GetAll().ToList().Find(x => x.FeedingStockId == model.FeedingStockId);
                if (stock != null)
                {
                    //Calculate mass left
                    double massLeff = stock.TotalMass - calcPercMass;

                    //Get the number of items minused in stock
                    double massRatio = massLeff / stock.Mass;

                    //Check if number is a double
                    int index = massRatio.ToString(CultureInfo.InvariantCulture).IndexOf('.');

                    //calculates the number of items bought and replace values with left
                    int number;
                    if (index > 0)
                    {
                        number = (Convert.ToInt16(massRatio.ToString(CultureInfo.InvariantCulture).Substring(0, index)) + 1);
                        stock.NumberOfItems = number;
                    }
                    else
                    {
                        number = Convert.ToInt16(massRatio.ToString(CultureInfo.InvariantCulture));
                        stock.NumberOfItems = number;
                    }
                    //update mass stock to new value
                    stock.TotalMass = Math.Round(massLeff, 0);

                    //call update method from repository and update
                    _stock.Update(stock);
                }
            }
        }