public bool AddProduct(ProductRequirementDto productDto) { if (!_productR.GetAll().Any(i => i.Products.Alias == productDto.Base_Name && i.Products1.Alias == productDto.Require_Name) && (_product.GetAll().Any(i => i.Alias == productDto.Require_Name)) && (_product.GetAll().Any(i => i.Alias == productDto.Require_Name))) { _productR.Add(new ProductRequirements { Base_ID = _product.GetAll().First(i => i.Alias == productDto.Base_Name).ID, Require_ID = _product.GetAll().First(i => i.Alias == productDto.Require_Name).ID, Value = productDto.Value }); _unitOfWork.Commit(); return true; } return false; }
public List<ProductRequirementDto> GetCanUserProducts(string user) { int uID = _user.GetAll().First(i => i.Login == user).ID; List<ProductRequirementDto> productRDto = new List<ProductRequirementDto>(); ProductRequirementDto productDictionary = new ProductRequirementDto(); productDictionary.RequireProduct = new List<Dictionary<string, int[]>>(); string building = String.Empty; var products = _productR.GetAll().GroupBy(i => i.Base_ID); foreach (var item in products) { bool[] temp = new bool[item.Count()]; bool temp2 = false; bool can = false; int iterator = 0; foreach (var item2 in item) { if ((_userProduct.GetAll().Any(i => i.User_ID == uID && i.Product_ID == item2.Require_ID)) && (_userProduct.GetAll().First(i => i.User_ID == uID && i.Product_ID == item2.Require_ID).Value > 0)) { temp[iterator] = true; } else { temp[iterator] = false; } var buildingID = _building.GetAll().FirstOrDefault(p => p.Product_ID == item2.Base_ID).ID; if (_userBuilding.GetAll().Any(i => i.User_ID == uID && i.Building_ID == buildingID && i.Status.Contains("gotowy"))) { temp2 = true; } building = _building.Get(buildingID).Alias; iterator++; } if (temp2) { can = true; foreach (var itemTemp in temp) { if (!itemTemp) { can = false; } } } productRDto.Add(new ProductRequirementDto { Base_Name = _product.Get(item.Key).Alias, RequireProduct = item.Select(i => new Dictionary<string, int[]>() { { _product.Get(i.Require_ID).Alias, new int[] { i.Value, i.Require_ID } }, }).ToList(), IfCanProduct = can, RequireBuilding = building }); } return productRDto; }
public bool UpdateProduct(ProductRequirementDto productDto) { if (_product.GetAll().Any(i => i.Alias == productDto.Require_Name) && (_product.GetAll().Any(i=> i.Alias == productDto.Base_Name))) { foreach (var item in _productR.GetAll().Where(i => i.ID == productDto.ID)) { item.Base_ID = _product.GetAll().First(i => i.Alias == productDto.Base_Name).ID; item.Require_ID = _product.GetAll().First(i => i.Alias == productDto.Require_Name).ID; item.Value = productDto.Value; } _unitOfWork.Commit(); return true; } return false; }
public ActionResult AddProductRequirementAdmin(ProductRequirementViewModel productrMode) { List<string> errors; if (Session["val"] != null) { errors = ((string[])Session["val"]).ToList(); } else { errors = new List<string>(); } ProductRequirementDto productrDto = new ProductRequirementDto(); productrDto.Base_Name = productrMode.viewModel.BaseName; productrDto.Require_Name = productrMode.viewModel.RequireName; productrDto.Value = productrMode.viewModel.Value; if(_productRService.AddProduct(productrDto)) { errors.Add("Dodano produkt."); } else { errors.Add("Błąd. Spróbuj ponownie."); } Session["val"] = errors.ToArray<string>(); return RedirectToAction("Admin"); }