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

            this._BankMovementCostCentersRepository.Delete(entity);

            #region Commit Changes
            this._unitOfWork.Commit();
            #endregion
        }
        /// <summary>
        /// Throw an exception if name is exist.
        /// </summary>
        /// <param name="model">CostCenter view model</param>
        public void ThrowExceptionIfExist(BankMovementCostCentersViewModel model)
        {
            ConditionFilter <BankMovementCostCenters, long> condition = new ConditionFilter <BankMovementCostCenters, long>
            {
                Query = (entity =>

                         entity.Id != model.Id)
            };
            var existEntity = this._BankMovementCostCentersRepository.Get(condition).FirstOrDefault();

            if (existEntity != null)
            {
                throw new ItemAlreadyExistException((int)ErrorCodeEnum.CodeAlreadyExist);
            }
        }
        /// <summary>
        /// Add an entity.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public BankMovementCostCentersViewModel Add(BankMovementCostCentersViewModel model)
        {
            this.ThrowExceptionIfExist(model);

            var entity = model.ToEntity();

            entity = this._BankMovementCostCentersRepository.Add(entity);



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

            model = entity.ToModel();
            return(model);
        }
        /// <summary>
        /// Update an entity.
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public BankMovementCostCentersViewModel Update(BankMovementCostCentersViewModel model)
        {
            this.ThrowExceptionIfExist(model);

            var entity = model.ToEntity();

            entity = this._BankMovementCostCentersRepository.Update(entity);

            ConditionFilter <CostCenter, long> conditionFilter = new ConditionFilter <CostCenter, long>()
            {
                Query = (x =>
                         x.ParentKeyCostCenterId == entity.Id)
            };


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

            model = entity.ToModel();
            return(model);
        }