public ActionResult Update([DataSourceRequest] DataSourceRequest request, VmWarehouse warehouse)
        {
            var isEditable = CurrentUser.UserLevel == 3;

            if (!isEditable)
            {
                ModelState.AddModelError("Update", "Current user does not have permission to update warehouses.");
            }

            if (ModelState.IsValid)
            {
                var dbWarehouse = Db.Warehouses.Find(warehouse.WarehouseId);

                if (dbWarehouse != null)
                {
                    dbWarehouse.Description = warehouse.Description;
                    dbWarehouse.IsActive    = warehouse.IsActive;
                    try
                    {
                        Db.SaveChanges();
                    }
                    catch (Exception e)
                    {
                        ModelState.AddModelError("Update Warehouse", ServerError.GetErrorFromException(e).ExceptionMsg);
                    }
                }
            }

            return(Json(new[] { warehouse }.ToDataSourceResult(request, ModelState)));
        }
        public ActionResult Create([DataSourceRequest] DataSourceRequest request, VmWarehouse warehouse)
        {
            var isEditable = CurrentUser.IsAdmin;

            if (!isEditable)
            {
                ModelState.AddModelError("Create", "Current user does not have permission to create a warehouse.");
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var newDbWarehouse = new Warehouse()
                    {
                        WarehouseCode = warehouse.WarehouseCode,
                        Description   = warehouse.Description,
                        IsActive      = true
                    };

                    Db.Warehouses.Add(newDbWarehouse);
                    Db.SaveChanges();
                    warehouse.WarehouseId = newDbWarehouse.WarehouseId;
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("Create Warehouse", ServerError.GetErrorFromException(e).ExceptionMsg);
                }
            }

            return(Json(new[] { warehouse }.ToDataSourceResult(request, ModelState)));
        }