Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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)
     });
 }
Esempio n. 3
0
 public Organisation FromDomain(OrganisationDomain organisationDomain)
 {
     return(_mapper.Map <Organisation>(organisationDomain));
 }