/// <summary>
        /// Add an entity.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public InventoryViewModel Add(InventoryViewModel model)
        {
            this.ThrowExceptionIfExist(model);

            var entity = model.ToEntity();

            entity = this._InventorysRepository.Add(entity);

            var entityAr = new Inventory()
            {
                Id          = entity.Id,
                Name        = model.NameAr,
                Description = model.DescriptionAr,
                Language    = Language.Arabic
            };

            entity.ChildTranslatedInventorys.Add(entityAr);
            this._InventorysRepository.Add(entityAr);

            var entityEn = new Inventory()
            {
                Id          = entity.Id,
                Name        = model.NameEn,
                Description = model.DescriptionEn,
                Language    = Language.English
            };

            entity.ChildTranslatedInventorys.Add(entityEn);
            this._InventorysRepository.Add(entityEn);

            #region Commit Changes
            this._unitOfWork.Commit();
            #endregion

            Address address = this._AddresssRepository.Get().FirstOrDefault(x => x.ObjectId == entity.Id && x.ObjectType == ObjectType.Inventory);
            if (address == null)
            {
                address = new Address
                {
                    ObjectId    = entity.Id,
                    ObjectType  = ObjectType.Inventory,
                    Description = model.Address,
                    IsActive    = true,
                    IsMain      = true
                };
                this._AddresssRepository.Add(address);
            }
            else
            {
                address.Description = model.Address;
                this._AddresssRepository.Update(address);
            }

            #region Commit Changes
            this._unitOfWork.Commit();
            #endregion

            model = entity.ToModel();
            return(model);
        }
        /// <summary>
        /// Delete an entity.
        /// </summary>
        /// <param name="model"></param>
        public void Delete(InventoryViewModel model)
        {
            var entity = model.ToEntity();

            this._InventorysRepository.Delete(entity);

            #region Commit Changes
            this._unitOfWork.Commit();
            #endregion
        }