public void DeleteByAssociateId_Valid_Success() { #region Arrange var associateAssociateType = CreateNewAssociateAssociateType(); #endregion #region Act _repository.DeleteByAssociateTypeId(associateAssociateType.AssociateType.Id, new List <int> { associateAssociateType.Associate.Id }); #endregion #region Assert Assert.AreEqual(_dbContext.AssociateAssociateTypes.Count(), 0); #endregion }
/// <summary> /// Save Associate /// </summary> /// <param name="model"></param> /// <returns></returns> public ResponseModel SaveAssociate(AssociateManageModel model) { ResponseModel response; var associate = GetById(model.Id); if (associate != null) { associate.Title = model.Title; associate.JobTitle = model.JobTitle; associate.FirstName = model.FirstName; associate.LastName = model.LastName; associate.Email = model.Email; associate.AddressLine1 = model.AddressLine1; associate.AddressLine2 = model.AddressLine2; associate.Suburb = model.Suburb; associate.State = model.State; associate.Postcode = model.Postcode; associate.Country = model.Country; associate.PhoneWork = model.PhoneWork; associate.PhoneHome = model.PhoneHome; associate.MobilePhone = model.MobilePhone; associate.Fax = model.Fax; associate.Gender = model.Gender; associate.Photo = model.Photo; associate.University = model.University; associate.Qualification = model.Qualification; associate.OtherQualification = model.OtherQualification; associate.Achievements = model.Achievements; associate.Memberships = model.Memberships; associate.Appointments = model.Appointments; associate.PersonalInterests = model.PersonalInterests; associate.ProfessionalInterests = model.ProfessionalInterests; associate.Positions = model.Positions; associate.IsNew = model.IsNew; associate.DateStart = model.DateStart; associate.DateEnd = model.DateEnd; associate.Company = _companyService.SaveCompany(model.Company); #region Associate Types var currentAssociateTypes = associate.AssociateAssociateTypes.Select(nc => nc.AssociateTypeId).ToList(); if (model.AssociateTypeIds == null) { model.AssociateTypeIds = new List <int>(); } // Remove reference to deleted types var removedAssociateTypeIds = currentAssociateTypes.Where(id => !model.AssociateTypeIds.Contains(id)); _associateAssociateTypeRepository.DeleteByAssociateTypeId(associate.Id, removedAssociateTypeIds); // Add new reference to types var addedAssociateTypeIds = model.AssociateTypeIds.Where(id => !currentAssociateTypes.Contains(id)); _associateAssociateTypeRepository.InsertByAssociateId(associate.Id, addedAssociateTypeIds); #endregion #region Company Types var currentCompanyTypes = associate.AssociateCompanyTypes.Select(nc => nc.CompanyTypeId).ToList(); if (model.CompanyTypeIds == null) { model.CompanyTypeIds = new List <int>(); } // Remove reference to deleted types var removedCompanyTypeIds = currentCompanyTypes.Where(id => !model.CompanyTypeIds.Contains(id)); _associateCompanyTypeRepository.DeleteByAssociateId(associate.Id, removedCompanyTypeIds); // Add new reference to types var addedCompanyTypeIds = model.CompanyTypeIds.Where(id => !currentCompanyTypes.Contains(id)); _associateCompanyTypeRepository.InsertByAssociateId(associate.Id, addedCompanyTypeIds); #endregion #region Locations var currentLocations = associate.AssociateLocations.Select(nc => nc.LocationId).ToList(); if (model.LocationIds == null) { model.LocationIds = new List <int>(); } // Remove reference to deleted locations var removedLocationIds = currentLocations.Where(id => !model.LocationIds.Contains(id)); _associateLocationRepository.DeleteByAssociateId(associate.Id, removedLocationIds); // Add new reference to locations var addedLocationIds = model.LocationIds.Where(id => !currentLocations.Contains(id)); _associateLocationRepository.InsertByAssociateId(associate.Id, addedLocationIds); #endregion response = Update(associate); return(response.SetMessage(response.Success ? T("Associate_Message_UpdateSuccessfully") : T("Associate_Message_UpdateFailure"))); } Mapper.CreateMap <AssociateManageModel, Associate>(); associate = Mapper.Map <AssociateManageModel, Associate>(model); associate.Company = _companyService.SaveCompany(model.Company); response = Insert(associate); #region Associate Types if (model.AssociateTypeIds == null) { model.AssociateTypeIds = new List <int>(); } _associateAssociateTypeRepository.InsertByAssociateId(associate.Id, model.AssociateTypeIds); #endregion #region Company Types if (model.CompanyTypeIds == null) { model.CompanyTypeIds = new List <int>(); } _associateCompanyTypeRepository.InsertByAssociateId(associate.Id, model.CompanyTypeIds); #endregion #region Locations if (model.LocationIds == null) { model.LocationIds = new List <int>(); } _associateLocationRepository.InsertByAssociateId(associate.Id, model.LocationIds); #endregion return(response.SetMessage(response.Success ? T("Associate_Message_CreateSuccessfully") : T("Associate_Message_CreateFailure"))); }