public static Business_Response ValidateUpdateCategory(CategoryEntity oCategory) { using var db = new InventoryContext(); var categories = db.Categories.ToList(); Business_Response response = new Business_Response(); CategoryEntity cCategory = (CategoryEntity)oCategory.Clone(); //Nombre de la categoría. if (cCategory.CategoryName == null || cCategory.CategoryName.Length < 2) { cCategory.CategoryName = ""; response.Error = true; response.ErrorMessages.Add("El nombre de la categoría debe ser mayor a 1 caracter."); } if (cCategory.CategoryName.Length > 100) { response.Error = true; response.ErrorMessages.Add("El nombre de la categoría debe ser menor a 100 caracteres."); } if (categories.Where(c => (c.CategoryId != cCategory.CategoryId) && (c.CategoryName == cCategory.CategoryName)).Any()) { response.Error = true; response.ErrorMessages.Add($"El nombre de la categoría {cCategory.CategoryName} ya existe."); } return(response); }
public static Business_Response ValidateCreateWarehouse(WarehouseEntity oWarehouse) { using var db = new InventoryContext(); var warehouses = db.Warehouses.ToList(); Business_Response response = new Business_Response(); //Referencia do { oWarehouse.WarehouseId = Guid.NewGuid().ToString();//Asigna un identificador a la bodega hasta garantizar que sea único. } while (warehouses.Where(w => w.WarehouseId == oWarehouse.WarehouseId).Any()); WarehouseEntity cWarehouse = (WarehouseEntity)oWarehouse.Clone(); //Nombre de la bodega. if (cWarehouse.WarehouseName == null || cWarehouse.WarehouseName.Length < 2) { cWarehouse.WarehouseName = ""; response.Error = true; response.ErrorMessages.Add("El nombre de la bodega debe ser mayor a 1 caracter."); } if (cWarehouse.WarehouseName.Length > 100) { response.Error = true; response.ErrorMessages.Add("El nombre de la bodega debe ser menor a 100 caracteres."); } if (warehouses.Where(w => w.WarehouseName == cWarehouse.WarehouseName).Any()) { response.Error = true; response.ErrorMessages.Add($"El nombre de la bodega {cWarehouse.WarehouseName} ya existe."); } //Dirección de la bodega. if (cWarehouse.WarehouseAddress == null || cWarehouse.WarehouseAddress.Length < 4) { cWarehouse.WarehouseAddress = ""; response.Error = true; response.ErrorMessages.Add("La dirección de la bodega debe ser mayor a 4 caracteres."); } if (cWarehouse.WarehouseAddress.Length > 100) { response.Error = true; response.ErrorMessages.Add("La dirección de la bodega debe ser menor a 100 caracteres."); } if (warehouses.Where(w => w.WarehouseAddress == cWarehouse.WarehouseAddress).Any()) { response.Error = true; response.ErrorMessages.Add($"La dirección de la bodega {cWarehouse.WarehouseAddress} ya está registrada."); } return(response); }
public static Business_Response ValidateUpdateWarehouse(WarehouseEntity oWarehouse) { using var db = new InventoryContext(); var warehouses = db.Warehouses.ToList(); Business_Response response = new Business_Response(); WarehouseEntity cWarehouse = (WarehouseEntity)oWarehouse.Clone(); //Nombre de la bodega. if (cWarehouse.WarehouseName == null || cWarehouse.WarehouseName.Length < 2) { cWarehouse.WarehouseName = ""; response.Error = true; response.ErrorMessages.Add("El nombre de la bodega debe ser mayor a 1 caracter."); } if (cWarehouse.WarehouseName.Length > 100) { response.Error = true; response.ErrorMessages.Add("El nombre de la bodega debe ser menor a 100 caracteres."); } if (warehouses.Where(w => (w.WarehouseId != cWarehouse.WarehouseId) && (w.WarehouseName == cWarehouse.WarehouseName)).Any()) { response.Error = true; response.ErrorMessages.Add($"El nombre de la bodega {cWarehouse.WarehouseName} ya existe."); } //Dirección de la bodega. if (cWarehouse.WarehouseAddress == null || cWarehouse.WarehouseAddress.Length < 4) { cWarehouse.WarehouseAddress = ""; response.Error = true; response.ErrorMessages.Add("La dirección de la bodega debe ser mayor a 4 caracteres."); } if (cWarehouse.WarehouseAddress.Length > 100) { response.Error = true; response.ErrorMessages.Add("La dirección de la bodega debe ser menor a 100 caracteres."); } if (warehouses.Where(w => (w.WarehouseId != cWarehouse.WarehouseId) && (w.WarehouseAddress == cWarehouse.WarehouseAddress)).Any()) { response.Error = true; response.ErrorMessages.Add($"La dirección de la bodega {cWarehouse.WarehouseAddress} ya está registrada."); } return(response); }
public static Business_Response ValidateCreateInputOutput(InputOutputEntity oInputOutput) { using var db = new InventoryContext(); var inputOutputs = db.InputOutputs.ToList(); var storages = db.Storages.ToList(); Business_Response response = new Business_Response(); //Referencia do { oInputOutput.InputOutputId = Guid.NewGuid().ToString();//Asigna un identificador a la bodega hasta garantizar que sea único. } while (inputOutputs.Where(io => io.InputOutputId == oInputOutput.InputOutputId).Any()); //Asignar la hora actual. oInputOutput.InputOutputDate = DateTime.Now; InputOutputEntity cInputOutput = (InputOutputEntity)oInputOutput.Clone(); //Identificador del almacenamiento válido. if (!storages.Where(st => st.StorageId == cInputOutput.StorageId).Any()) { response.Error = true; response.ErrorMessages.Add($"La referencia del producto seleccionado no existe."); if (cInputOutput.Quantity < 1) { response.Error = true; response.ErrorMessages.Add($"La cantidad debe ser mayor o igual a 1."); } } else { var oStorage = storages.LastOrDefault(s => s.StorageId == oInputOutput.StorageId);//Evita volver a leer desde la base de datos Business_Storage.StorageById(oInputOutput.StorageId); var oProduct = oStorage.Product; if (cInputOutput.Quantity < 1) { response.Error = true; response.ErrorMessages.Add($"La cantidad debe ser mayor o igual a 1."); } else { if (!oInputOutput.IsInput && (oInputOutput.Quantity > oStorage.PartialQuantity)) { response.Error = true; response.ErrorMessages.Add($"La cantidad a retirar ({oInputOutput.Quantity}) es mayor que la cantidad del almacen ({oStorage.PartialQuantity})."); } } } return(response); }
public static Business_Response ValidateUpdateProduct(ProductEntity oProduct) { using var db = new InventoryContext(); var products = db.Products.ToList(); Business_Response response = new Business_Response(); ProductEntity cProduct = (ProductEntity)oProduct.Clone(); //Nombre del producto. if (products.Where(p => (p.ProductId != cProduct.ProductId) && (p.ProductName == cProduct.ProductName)).Any()) { response.Error = true; response.ErrorMessages.Add($"El nombre del producto {cProduct.ProductName} ya existe."); } if (cProduct.ProductName == null || cProduct.ProductName.Length < 2) { cProduct.ProductName = ""; response.Error = true; response.ErrorMessages.Add("El nombre del producto debe ser mayor a 1 caracter."); } if (cProduct.ProductName.Length > 100) { response.Error = true; response.ErrorMessages.Add("El nombre del producto debe ser menor a 100 caracteres."); } //Descripción del producto. if (cProduct.ProductDescription == null) { cProduct.ProductDescription = ""; } if (cProduct.ProductDescription.Length > 600) { response.Error = true; response.ErrorMessages.Add("La descripción del producto debe ser menor a 600 caracteres."); } if (!db.Categories.Where(c => c.CategoryId == cProduct.CategoryId).Any()) { response.Error = true; response.ErrorMessages.Add($"La referencia de la categoría {cProduct.CategoryId} no existe."); } return(response); }
public static Business_Response ValidateCreateStorage(StorageEntity oStorage) { using var db = new InventoryContext(); var storages = db.Storages.ToList(); Business_Response response = new Business_Response(); //Referencia do { oStorage.StorageId = Guid.NewGuid().ToString();//Asigna un identificador a la bodega hasta garantizar que sea único. } while (storages.Where(st => st.StorageId == oStorage.StorageId).Any()); //Asignar la hora actual. oStorage.LastUpdate = DateTime.Now; oStorage.PartialQuantity = 0; StorageEntity cStorage = (StorageEntity)oStorage.Clone(); //Identificador del producto válido. if (!db.Products.Where(p => p.ProductId == cStorage.ProductId).Any()) { response.Error = true; response.ErrorMessages.Add($"La referencia del producto seleccionado no existe."); } //Identificador de la bodega válido. if (!db.Warehouses.Where(w => w.WarehouseId == cStorage.WarehouseId).Any()) { response.Error = true; response.ErrorMessages.Add($"La referencia de la bodega seleccionada no existe."); } //Producto en Bodega if (storages.Where(st => (st.WarehouseId == oStorage.WarehouseId) && (st.ProductId == oStorage.ProductId)).Any()) {//Si ya está registrado el producto en esa bodega no lo almacena nuevamente. response.Error = true; var storage = db.Storages.Include(s => s.Product).Include(s => s.Warehouse).Where(st => (st.WarehouseId == oStorage.WarehouseId) && (st.ProductId == oStorage.ProductId)).ToList().LastOrDefault(s => true); response.ErrorMessages.Add($"El producto {storage.Product.ProductName} ya existe en la bodega {storage.Warehouse.WarehouseName}."); } return(response); }