public OrganisationDomain AssociateUserWithOrganisation(int userId, int organisationId) { OrganisationDomain response = null; try { // check organisation actually exists before creating association in database var orgEntity = Context.Organisations.FirstOrDefault(o => o.Id == organisationId); if (orgEntity == null) { throw new UseCaseException() { UserErrorMessage = $"The supplied organisation ID '{organisationId}' was not found", DevErrorMessage = $"The [organisations] table does not contain an organisation with ID = {organisationId}" }; } var userOrg = Context.UserOrganisations.FirstOrDefault(u => u.UserId == userId); // check if an association already exists and modify this one if it does if (userOrg != null) { userOrg.OrganisationId = organisationId; Context.UserOrganisations.Update(userOrg); } else { // create new organisation <-> user association userOrg = new UserOrganisation() { CreatedAt = DateTime.UtcNow, UserId = userId, OrganisationId = organisationId }; Context.UserOrganisations.Add(userOrg); } Context.SaveChanges(); response = _mapper.ToDomain(orgEntity); } catch (DbUpdateException e) { HandleDbUpdateException(e); } catch (Exception e) { LoggingHandler.LogError(e.Message); LoggingHandler.LogError(e.StackTrace); throw; } return(response); }
public static OrganisationResponse ToResponse(this OrganisationDomain domain) { return(new OrganisationResponse() { Id = domain.Id, Name = domain.Name, CreatedAt = domain.CreatedAt, UpdatedAt = domain.UpdatedAt, SubmittedAt = domain.SubmittedAt, ReviewedAt = domain.ReviewedAt, ReviewerMessage = domain.ReviewerMessage, Status = domain.Status, IsRegisteredCharity = domain.IsRegisteredCharity, IsHackneyBased = domain.IsHackneyBased, CharityNumber = domain.CharityNumber, IsRegisteredCommunityInterestCompany = domain.IsRegisteredCommunityInterestCompany, CommunityInterestCompanyNumber = domain.CommunityInterestCompanyNumber, HasHcOrColGrant = domain.HasHcOrColGrant, HasHcvsOrHgOrAelGrant = domain.HasHcvsOrHgOrAelGrant, IsTraRegistered = domain.IsTraRegistered, RslOrHaAssociation = domain.RslOrHaAssociation, IsLotteryFunded = domain.IsLotteryFunded, LotteryFundedProject = domain.LotteryFundedProject, FundingOther = domain.FundingOther, HasChildSupport = domain.HasChildSupport, HasChildSafeguardingLead = domain.HasChildSafeguardingLead, ChildSafeguardingLeadFirstName = domain.ChildSafeguardingLeadFirstName, ChildSafeguardingLeadLastName = domain.ChildSafeguardingLeadLastName, ChildSafeguardingLeadTrainingMonth = domain.ChildSafeguardingLeadTrainingMonth, ChildSafeguardingLeadTrainingYear = domain.ChildSafeguardingLeadTrainingYear, HasAdultSupport = domain.HasAdultSupport, HasAdultSafeguardingLead = domain.HasAdultSafeguardingLead, AdultSafeguardingLeadFirstName = domain.AdultSafeguardingLeadFirstName, AdultSafeguardingLeadLastName = domain.AdultSafeguardingLeadLastName, AdultSafeguardingLeadTrainingMonth = domain.AdultSafeguardingLeadTrainingMonth, AdultSafeguardingLeadTrainingYear = domain.AdultSafeguardingLeadTrainingYear, HasEnhancedSupport = domain.HasEnhancedSupport, IsLocalOfferListed = domain.IsLocalOfferListed, Reviewer = domain.ReviewerU == null ? new OrganisationReviewer() : new OrganisationReviewer { Id = domain.ReviewerU.Id, Name = domain.ReviewerU.Name }, Users = FormatUsers(domain.UserOrganisations) }); }
public Organisation FromDomain(OrganisationDomain organisationDomain) { return(_mapper.Map <Organisation>(organisationDomain)); }