/// <summary>
        /// Gets the automatic businesses.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public AutoBusinessResponse GetAutoBusinesses(AutoBusinessRequest request)
        {
            var response = new AutoBusinessResponse();

            if (request.LoadOptions.Contains("AutoBusinesss"))
            {
                if (request.LoadOptions.Contains("IsActive"))
                {
                    response.AutoBusinesses = AutoBusinessDao.GetAutoBusinesssByActive(true);
                }
                else if (request.LoadOptions.Contains("RefType"))
                {
                    response.AutoBusinesses = AutoBusinessDao.GetAutoBusinessByRefType(request.RefTypeId, request.IsActive);
                }
                else
                {
                    response.AutoBusinesses = AutoBusinessDao.GetAutoBusinesss();
                }

                response.AutoBusinesses = response.AutoBusinesses.OrderBy(o => o.AutoBusinessCode).ToList();
            }
            if (request.LoadOptions.Contains("AutoBusiness"))
            {
                response.AutoBusiness = AutoBusinessDao.GetAutoBusiness(request.AutoBusinessId);
            }

            return(response);
        }
        /// <summary>
        /// Updates the account category.
        /// </summary>
        /// <param name="autoBusinessEntity">The automatic business entity.</param>
        /// <returns>
        /// AccountCategoryResponse.
        /// </returns>
        public AutoBusinessResponse UpdateAutoBusiness(AutoBusinessEntity autoBusinessEntity)
        {
            var response = new AutoBusinessResponse {
                Acknowledge = AcknowledgeType.Success
            };

            try
            {
                if (!autoBusinessEntity.Validate())
                {
                    foreach (string error in autoBusinessEntity.ValidationErrors)
                    {
                        response.Message += error + Environment.NewLine;
                    }
                    response.Acknowledge = AcknowledgeType.Failure;
                    return(response);
                }

                var autoBusiness = AutoBusinessDao.GetAutoBusinessesByAutoBusinessCode(autoBusinessEntity.AutoBusinessCode.Trim());
                if (autoBusiness != null)
                {
                    if (autoBusiness.AutoBusinessId != autoBusinessEntity.AutoBusinessId)
                    {
                        response.Acknowledge = AcknowledgeType.Failure;
                        response.Message     = @"Mã định khoản tự động " + autoBusinessEntity.AutoBusinessCode.Trim() + @" đã tồn tại !";
                        return(response);
                    }
                }

                response.Message = AutoBusinessDao.UpdateAutoBusiness(autoBusinessEntity);
                if (!string.IsNullOrEmpty(response.Message))
                {
                    response.Acknowledge = AcknowledgeType.Failure;
                    return(response);
                }
                response.AutoBusinessId = autoBusinessEntity.AutoBusinessId;
                return(response);
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
                return(response);
            }
        }
        public AutoBusinessResponse DeleteAutoBusinessConvert()
        {
            var response = new AutoBusinessResponse {
                Acknowledge = AcknowledgeType.Success
            };

            try
            {
                response.Message = AutoBusinessDao.DeleteAutoBusinessConvert();
                if (!string.IsNullOrEmpty(response.Message))
                {
                    response.Acknowledge = AcknowledgeType.Failure;
                    return(response);
                }
                return(response);
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
                return(response);
            }
        }
        /// <summary>
        /// Deletes the account category.
        /// </summary>
        /// <param name="accountTransferEId">The account transfer e identifier.</param>
        /// <returns>
        /// AccountCategoryResponse.
        /// </returns>
        public AutoBusinessResponse DeleteAutoBusiness(string accountTransferEId)
        {
            var response = new AutoBusinessResponse {
                Acknowledge = AcknowledgeType.Success
            };

            try
            {
                var accountTransferEntity = AutoBusinessDao.GetAutoBusiness(accountTransferEId);
                response.Message = AutoBusinessDao.DeleteAutoBusiness(accountTransferEntity);
                if (!string.IsNullOrEmpty(response.Message))
                {
                    response.Acknowledge = AcknowledgeType.Failure;
                    return(response);
                }
                response.AutoBusinessId = accountTransferEntity.AutoBusinessId;
                return(response);
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
                return(response);
            }
        }
        /// <summary>
        /// Sets the automatic businesses.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public AutoBusinessResponse SetAutoBusinesses(AutoBusinessRequest request)
        {
            var response = new AutoBusinessResponse();

            var autoBusinessEntity = request.AutoBusiness;

            if (request.Action != PersistType.Delete)
            {
                if (!autoBusinessEntity.Validate())
                {
                    foreach (var error in autoBusinessEntity.ValidationErrors)
                    {
                        response.Message += error + Environment.NewLine;
                    }
                    response.Acknowledge = AcknowledgeType.Failure;
                    return(response);
                }
            }
            try
            {
                if (request.Action == PersistType.Insert)
                {
                    // đóng vào theo ý BA
                    //var autoBusinesss = AutoBusinessDao.GetAutoBusinesssByAutoBusinessAccount(autoBusinessEntity.AutoBusinessCode);
                    //if (autoBusinesss.Count > 0)
                    //{
                    //    response.Acknowledge = AcknowledgeType.Failure;
                    //    response.Message = @"Mã số định khoản tự động " + autoBusinessEntity.AutoBusinessCode + @" đã tồn tại !";
                    //    return response;
                    //}
                    autoBusinessEntity.AutoBusinessId = AutoBusinessDao.InsertAutoBusiness(autoBusinessEntity);
                    response.Message = null;
                }
                else if (request.Action == PersistType.Update)
                {
                    response.Message = AutoBusinessDao.UpdateAutoBusiness(autoBusinessEntity);
                }
                else
                {
                    var autoBusinessForUpdate = AutoBusinessDao.GetAutoBusiness(request.AutoBusinessId);
                    response.Message = AutoBusinessDao.DeleteAutoBusiness(autoBusinessForUpdate);
                }
            }
            catch (Exception ex)
            {
                response.Acknowledge = AcknowledgeType.Failure;
                response.Message     = ex.Message;
                return(response);
            }
            response.AutoBusinessId = autoBusinessEntity != null ? autoBusinessEntity.AutoBusinessId : 0;
            if (response.Message == null)
            {
                response.Acknowledge  = AcknowledgeType.Success;
                response.RowsAffected = 1;
            }
            else
            {
                response.Acknowledge  = AcknowledgeType.Failure;
                response.RowsAffected = 0;
            }

            return(response);
        }