public AddressModel GetOrganisationAddressModel(Organisation org, DateTime?maxDate = null,
                                                        AddressStatuses status             = AddressStatuses.Active)
        {
            var address = GetOrganisationAddress(org, maxDate, status);

            return(address == null ? null : AddressModel.Create(address));
        }
        /// <summary>
        ///     Returns the latest organisation name before specified date/time
        /// </summary>
        /// <param name="accountingDate">Ignore name changes after this date/time - if empty returns the latest name</param>
        /// <returns>The name of the organisation</returns>
        public string GetAddressString(DateTime accountingDate, AddressStatuses status = AddressStatuses.Active,
                                       string delimiter = ", ")
        {
            var address = GetAddress(accountingDate, status);

            return(address?.GetAddressString(delimiter));
        }
        public void SetStatus(AddressStatuses status, long byUserId, string details = null, DateTime?statusDate = null)
        {
            if (status == Status && details == StatusDetails && statusDate == null)
            {
                return;
            }

            if (statusDate == null || statusDate == DateTime.MinValue)
            {
                statusDate = VirtualDateTime.Now;
            }

            AddressStatuses.Add(
                new AddressStatus
            {
                AddressId     = AddressId,
                Status        = status,
                StatusDate    = statusDate.Value,
                StatusDetails = details,
                ByUserId      = byUserId
            });
            Status        = status;
            StatusDate    = statusDate.Value;
            StatusDetails = details;
        }
 public void SetStatus(AddressStatuses status, long byUserId, string details = null)
 {
     if (status == Status && details == StatusDetails)
     {
         return;
     }
     AddressStatuses.Add(new AddressStatus()
     {
         AddressId     = this.AddressId,
         Status        = status,
         StatusDate    = DateTime.Now,
         StatusDetails = details,
         ByUserId      = byUserId
     });
     Status        = status;
     StatusDate    = DateTime.Now;
     StatusDetails = details;
 }
        public OrganisationAddress GetLatestAddress(AddressStatuses status = AddressStatuses.Active)
        {
            var addressStatus = OrganisationAddresses.SelectMany(a =>
                                                                 a.AddressStatuses.Where(s => s.Status == status))
                                .OrderByDescending(s => s.StatusDate)
                                .FirstOrDefault();

            if (addressStatus != null && addressStatus.Address.Status == status)
            {
                return(addressStatus.Address);
            }

            if (LatestAddress != null && LatestAddress.Status == status)
            {
                return(LatestAddress);
            }

            return(null);
        }
示例#6
0
 public OrganisationAddress FindAddress(Organisation org, AddressStatuses status = AddressStatuses.Active)
 {
     return(org.OrganisationAddresses.FirstOrDefault(a => a.Status == status && Equals(a)));
 }
        /// <summary>
        ///     Returns the latest organisation name before specified date/time
        /// </summary>
        /// <param name="maxDate">Ignore name changes after this date/time - if empty returns the latest name</param>
        /// <returns>The name of the organisation</returns>
        public string GetOrganisationAddressString(Organisation organisation, DateTime?maxDate = null, AddressStatuses status = AddressStatuses.Active,
                                                   string delimiter = ", ")
        {
            var address = GetOrganisationAddress(organisation, maxDate, status);

            return(address?.GetAddressString(delimiter));
        }
        /// <summary>
        ///     Returns the latest address before specified date/time
        /// </summary>
        /// <param name="maxDate">Ignore address changes after this date/time - if empty returns the latest address</param>
        /// <returns>The address of the organisation</returns>
        public OrganisationAddress GetOrganisationAddress(Organisation organisation, DateTime?maxDate = null, AddressStatuses status = AddressStatuses.Active)
        {
            if (maxDate == null || maxDate.Value == DateTime.MinValue)
            {
                maxDate = _sharedBusinessLogic.GetAccountingStartDate(organisation.SectorType).AddYears(1);
            }

            if (status == AddressStatuses.Active && organisation.LatestAddress != null &&
                maxDate == _sharedBusinessLogic.GetAccountingStartDate(organisation.SectorType).AddYears(1))
            {
                return(organisation.LatestAddress);
            }

            return(organisation.GetAddress(maxDate.Value));
        }
 public void ReadAddressStatusEnity(XmlReader reader)
 {
     XmlSerializer   serializer      = new XmlSerializer(typeof(AddressStatuses));
     AddressStatuses addressStatuses = (AddressStatuses)serializer.Deserialize(reader);
     var             table           = addressStatuses.CreateDataTable(addressStatuses.AddressStatusList);
 }