/// <summary> /// Initializes a new instance of the <see cref="Agency"/> class. /// </summary> /// <param name="agencyProfile"> /// The agency profile. /// </param> /// <param name="parentAgency"> /// The parent agency. /// </param> protected internal Agency(AgencyProfile agencyProfile, Agency parentAgency) : this() { Check.IsNotNull(agencyProfile, () => AgencyProfile); _agencyProfile = agencyProfile; _parentAgency = parentAgency; }
/// <summary> /// Creates the agency. /// </summary> /// <param name="agencyProfile"> /// The agency profile. /// </param> /// <returns> /// An Agency. /// </returns> public Agency CreateAgency(AgencyProfile agencyProfile) { Check.IsNotNull(agencyProfile, "agencyProfile is required."); Agency agency = new AgencyBuilder().WithAgencyProfile(agencyProfile); _agencyRepository.MakePersistent(agency); return(agency); }
/// <summary> /// Creates the child agency. /// </summary> /// <param name="agencyProfile"> /// The agency profile. /// </param> /// <param name="parentAgency"> /// The parent agency. /// </param> /// <returns> /// An Agency. /// </returns> public Agency CreateChildAgency(AgencyProfile agencyProfile, Agency parentAgency) { Check.IsNotNull(agencyProfile, "agencyProfile is required."); Check.IsNotNull(parentAgency, "parentAgency is required."); Agency agency = new AgencyBuilder().WithAgencyProfile(agencyProfile).WithPatentAgency(parentAgency); _agencyRepository.MakePersistent(agency); return(agency); }
/// <summary> /// Revises the agency profile. /// </summary> /// <param name="agencyProfile"> /// The agency profile. /// </param> public virtual void ReviseAgencyProfile(AgencyProfile agencyProfile) { Check.IsNotNull(agencyProfile, () => AgencyProfile); if (AgencyProfile == agencyProfile) { return; } AgencyProfile oldAgencyProfile = AgencyProfile; AgencyProfile = agencyProfile; DomainEvent.Raise(new AgencyProfileChangedEvent { Agency = this, OldAgencyProfile = oldAgencyProfile }); }