Exemplo n.º 1
0
        public static Guid Decrease(Guid userGuid, decimal amount, TypeCreditChanges typeCreditChanges, string description, Guid referenceGuid, DataAccessBase dataAccessProvider)
        {
            try
            {
                Business.Transaction transactionController = new Business.Transaction(dataAccessProvider);
                Business.User        userController        = new Business.User(dataAccessProvider);

                decimal currentCredit = userController.GetUserCredit(userGuid);
                if (currentCredit < amount)
                {
                    throw new Exception(Language.GetString("ErrorCredit"));
                }

                Common.Transaction transaction = new Common.Transaction();

                transaction.TypeTransaction  = (int)Business.TypeTransactions.Decrease;
                transaction.ReferenceGuid    = referenceGuid;
                transaction.TypeCreditChange = (int)typeCreditChanges;
                transaction.Description      = description;
                transaction.CreateDate       = DateTime.Now;
                transaction.CurrentCredit    = currentCredit;
                transaction.Amount           = amount;
                transaction.UserGuid         = userGuid;
                Guid transactionGuid = transactionController.Insert(transaction);

                if (transactionGuid == Guid.Empty)
                {
                    throw new Exception(Language.GetString("ErrorRecord"));
                }

                if (!userController.UpdateCredit(userGuid, transaction.CurrentCredit - amount))
                {
                    throw new Exception(Language.GetString("ErrorRecord"));
                }

                return(transactionGuid);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 2
0
        public static Guid Increase(Guid userGuid, decimal amount, TypeCreditChanges typeCreditChanges, string description, Guid referenceGuid, bool updateGrupPrice, DataAccessBase dataAccessProvider)
        {
            Business.Transaction transactionController = new Business.Transaction(dataAccessProvider);
            Business.User        userController        = new Business.User(dataAccessProvider);

            Common.Transaction transaction   = new Common.Transaction();
            decimal            currentCredit = userController.GetUserCredit(userGuid);

            transaction.ReferenceGuid    = referenceGuid;
            transaction.TypeTransaction  = (int)Business.TypeTransactions.Increase;
            transaction.TypeCreditChange = (int)typeCreditChanges;
            transaction.Description      = description;
            transaction.CreateDate       = DateTime.Now;
            transaction.CurrentCredit    = currentCredit;
            transaction.Amount           = amount;
            transaction.UserGuid         = userGuid;
            Guid transactionGuid = transactionController.Insert(transaction);

            if (transactionGuid == Guid.Empty)
            {
                throw new Exception(Language.GetString("ErrorRecord"));
            }

            if (updateGrupPrice)
            {
                if (!userController.UpdateCreditAndGroupPrice(userGuid, transaction.CurrentCredit + amount, amount))
                {
                    throw new Exception(Language.GetString("ErrorRecord"));
                }
            }
            else
            {
                if (!userController.UpdateCredit(userGuid, transaction.CurrentCredit + amount))
                {
                    throw new Exception(Language.GetString("ErrorRecord"));
                }
            }

            return(transactionGuid);
        }