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); }
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); }