Beispiel #1
0
        public bool Delete(int id)
        {
            var isSucceed = false;

            try
            {
                ProjectAccountRepository.UnitOfWork.TransactionEnabled = true;
                var projectAccount = ProjectAccountRepository.Entities.FirstOrDefault(o => o.Id == id);
                if (projectAccount != null)
                {
                    var accountId = projectAccount.AccountID;
                    ProjectAccountRepository.Delete(projectAccount);
                    AccountRepository.Delete(accountId);
                }
                ProjectAccountRepository.UnitOfWork.SaveChanges();
                ProjectAccountRepository.UnitOfWork.TransactionEnabled = false;
            }
            catch (Exception e)
            {
                throw e;
            }
            isSucceed = true;

            return(isSucceed);
        }
        private async Task <int> MigrateAccounts()
        {
            List <ProjectAccount>    records    = sqlDataContext.ProjectAccounts.ToList();
            ProjectAccountRepository repository = new ProjectAccountRepository();
            int recCount = 0;

            try
            {
                // delete all existing records from Postgres Database
                postgressDataContext.ProjectAccounts.RemoveRange(postgressDataContext.ProjectAccounts);
                await postgressDataContext.SaveChangesAsync();

                // Migrage SQL Server data into Postgress database
                foreach (ProjectAccount rec in records)
                {
                    postgressDataContext.ProjectAccounts.Add(rec);
                }
                await postgressDataContext.SaveChangesAsync();

                //await UpdateAcounts();
                recCount = records.Count;
            }
            catch (Exception exp)
            {
                MessageBox.Show($"Error while migrating Accounts. The error is {Environment.NewLine}Main Exception: {exp.Message}{Environment.NewLine}Inner Exception: {exp.InnerException?.Message}");
            }

            return(recCount);
        }
Beispiel #3
0
        public bool Save(ProjectAccountViewModel viewModel)
        {
            var isSucceed = false;

            if (viewModel.Account == null)
            {
                throw new Exception("Account对象为空,无法保存");
            }
            var accountModel = viewModel.Account;

            if (viewModel.Id > 0) // update
            {
                var productAccount = ProjectAccountRepository.Entities.FirstOrDefault(o => o.Id == viewModel.Id);
                if (productAccount == null)
                {
                    throw new Exception($"不存在Id为:{viewModel.Id}的ProjectAccount");
                }
                var oldEntity = AccountRepository.Entities.FirstOrDefault(o => o.Id == productAccount.AccountID);
                var entity    = AutoMapper.Mapper.Map <AccountViewModel, Account>(accountModel);
                entity.CreatedTime = oldEntity.CreatedTime;
                entity.CouponID    = oldEntity.CouponID;
                entity.Id          = oldEntity.Id;
                isSucceed          = AccountRepository.Update(entity) > 0;
            }
            else // add
            {
                var entity = AutoMapper.Mapper.Map <AccountViewModel, Account>(accountModel);
                entity.CreatedTime = DateTime.Now;
                if (entity.CouponID <= 0)
                {
                    entity.CouponID = null;
                }
                try
                {
                    AccountRepository.UnitOfWork.TransactionEnabled = true;

                    AccountRepository.Insert(entity);
                    var projectAccount = new ProjectAccount
                    {
                        ProjectID = viewModel.ProjectID,
                        AccountID = entity.Id,
                    };
                    ProjectAccountRepository.Insert(projectAccount);

                    AccountRepository.UnitOfWork.SaveChanges();
                    AccountRepository.UnitOfWork.TransactionEnabled = false;

                    isSucceed = true;
                }
                catch (Exception e)
                {
                    throw e;
                }
            }

            ClearCache();

            return(isSucceed);
        }