public ResponseDto Update(PersonProductUpdateDto updateDto)
        {
            ResponseDto responseDto = new ResponseDto();

            PersonProductUpdateBo updateBo = new PersonProductUpdateBo()
            {
                PersonProductId       = updateDto.PersonProductId,
                ProductUpdateTypeList = updateDto.ProductUpdateTypeList,

                Name = updateDto.Name,

                CategoryId = updateDto.CategoryId,

                PurchaseVatRate = updateDto.PurchaseVatRate,
                SaleVatRate     = updateDto.SaleVatRate,

                PurhasePrice    = updateDto.PurhasePrice,
                SalePrice       = updateDto.SalePrice,
                OnlineSalePrice = updateDto.OnlineSalePrice,

                IsTemporarilyUnavaible = updateDto.IsTemporarilyUnavaible,
                IsSaleForOnline        = updateDto.IsSaleForOnline,
                Notes = updateDto.Notes,

                Session = Session
            };

            ResponseBo responseBo = personProductBusiness.Update(updateBo);

            responseDto = responseBo.ToResponseDto();

            return(responseDto);
        }
        public ResponseBo Update(PersonProductUpdateBo updateBo)
        {
            ResponseBo responseBo = new ResponseBo();

            try
            {
                using (SqlConnection conn = DbAccess.Connection.GetConn())
                {
                    var p = new DynamicParameters();
                    p.Add("@Message", dbType: DbType.String, direction: ParameterDirection.Output, size: 255);
                    p.Add("@IsSuccess", dbType: DbType.Boolean, direction: ParameterDirection.Output);

                    p.Add("@PersonProductId", updateBo.PersonProductId, DbType.Int64, ParameterDirection.Input);
                    p.Add("@ProductUpdateTypeListCommaSpr", updateBo.ProductUpdateTypeList.ToStrSeparated(), DbType.String, ParameterDirection.Input, 1000);

                    p.Add("@Name", updateBo.Name, DbType.String, ParameterDirection.Input, 255);

                    p.Add("@CategoryId", updateBo.CategoryId, DbType.Int32, ParameterDirection.Input);

                    p.Add("@PurchaseVatRate", updateBo.PurchaseVatRate, DbType.Decimal, ParameterDirection.Input);
                    p.Add("@SaleVatRate", updateBo.SaleVatRate, DbType.Decimal, ParameterDirection.Input);

                    p.Add("@PurhasePrice", updateBo.PurhasePrice, DbType.Decimal, ParameterDirection.Input);
                    p.Add("@SalePrice", updateBo.SalePrice, DbType.Decimal, ParameterDirection.Input);
                    p.Add("@OnlineSalePrice", updateBo.OnlineSalePrice, DbType.Decimal, ParameterDirection.Input);

                    p.Add("@IsTemporarilyUnavaible", updateBo.IsTemporarilyUnavaible, DbType.Boolean, ParameterDirection.Input);
                    p.Add("@IsSaleForOnline", updateBo.IsSaleForOnline, DbType.Boolean, ParameterDirection.Input);
                    p.Add("@Notes", updateBo.Notes, DbType.String, ParameterDirection.Input, 255);

                    p.Add("@MyPersonId", updateBo.Session.MyPerson.Id, DbType.Int64, ParameterDirection.Input);
                    p.Add("@OperatorRealId", updateBo.Session.RealPerson.Id, DbType.Int64, ParameterDirection.Input);
                    p.Add("@LanguageId", updateBo.Session.RealPerson.LanguageId, DbType.Int32, ParameterDirection.Input);

                    conn.Execute("spPersonProductUpdate", p, commandType: CommandType.StoredProcedure);
                    responseBo.Message   = p.Get <string>("@Message");
                    responseBo.IsSuccess = p.Get <bool>("@IsSuccess");
                }
            }
            catch (Exception ex)
            {
                responseBo = base.SaveExLog(ex, this.GetType(), MethodBase.GetCurrentMethod().Name, updateBo);
            }

            return(responseBo);
        }