(function () {
	window.app.factory('inventoryTypeSvc', inventoryTypeSvc);

	inventoryTypeSvc.$inject = ['$http'];
	function inventoryTypeSvc($http) {
		var inventoryTypes = [];

		loadInventoryTypes();

		var svc = {
			add: add,
			update: update,
			inventoryTypes: inventoryTypes
		};

		return svc;

		function loadInventoryTypes() {
			$http.post('/InventoryType/All')
				.success(function (data) {
					inventoryTypes.addRange(data);
				});
		}

		function add(inventoryType) {
			return $http.post('/InventoryType/Add', inventoryType)
				.success(function (inventoryType) {
					inventoryTypes.unshift(inventoryType);
				});
		}

		function update(existingInventoryType, updatedInventoryType) {
			return $http.post('/InventoryType/Update', updatedInventoryType)
				.success(function (inventoryType) {
					angular.extend(existingInventoryType, inventoryType);
				});
		}
	}
})();