예제 #1
0
        public void Update(ExchangeLeaveMessage message)
        {
            if (_account.State != Enums.AccountStates.EXCHANGE)
            {
                return;
            }

            Objects.Clear();
            RemoteObjects.Clear();
            Kamas          = RemoteKamas = 0;
            CurrentWeight  = MaxWeight = RemoteCurrentWeight = RemoteMaxWeight = 0;
            _step          = 0;
            _account.State = Enums.AccountStates.NONE;

            ExchangeLeft?.Invoke();
        }
예제 #2
0
        public void Update(ExchangeObjectAddedMessage message)
        {
            var newObj = new ObjectEntry(message.Object);

            if (message.Remote)
            {
                RemoteObjects.Add(newObj);
                RemoteCurrentWeight += (uint)newObj.RealWeight * newObj.Quantity;
            }
            else
            {
                Objects.Add(newObj);
                CurrentWeight += (uint)newObj.RealWeight * newObj.Quantity;
            }

            _step++;
            ExchangeContentChanged?.Invoke();
        }
예제 #3
0
        public void Update(ExchangeObjectRemovedMessage message)
        {
            var removedObj = message.Remote ?
                             RemoteObjects.FirstOrDefault(o => o.UID == message.ObjectUID) :
                             Objects.FirstOrDefault(o => o.UID == message.ObjectUID);

            if (message.Remote)
            {
                RemoteCurrentWeight += (uint)(removedObj.Quantity * removedObj.RealWeight);
                RemoteObjects.Remove(removedObj);
            }
            else
            {
                CurrentWeight += (uint)(removedObj.Quantity * removedObj.RealWeight);
                Objects.Remove(removedObj);
            }

            _step++;
            ExchangeContentChanged?.Invoke();
        }
예제 #4
0
        public void Update(ExchangeObjectModifiedMessage message)
        {
            var modifiedObj = message.Remote ?
                              RemoteObjects.FirstOrDefault(o => o.UID == message.Object.ObjectUID) :
                              Objects.FirstOrDefault(o => o.UID == message.Object.ObjectUID);

            int qtyDiff = (int)message.Object.Quantity - (int)modifiedObj.Quantity;

            modifiedObj.Update(message.Object);

            if (message.Remote)
            {
                RemoteCurrentWeight += (uint)(qtyDiff * modifiedObj.RealWeight);
            }
            else
            {
                CurrentWeight += (uint)(qtyDiff * modifiedObj.RealWeight);
            }

            _step++;
            ExchangeContentChanged?.Invoke();
        }
예제 #5
0
        // TODO: Break out some of this static method into sub methods.
        public static PersonModel Convert(RemoteObjects.People.person person)
        {
            // RULE: For string type NO nulls empty string instead.

            if (person == null)
                throw new ArgumentNullException("Cannot convert a Null person to a PersonModel.");

            PersonModel personModel = new PersonModel();

            personModel.ID = person.id ?? "";
            personModel.HouseholdID = person.householdID ?? "";
            personModel.Name = new Name(person.firstName ?? "",
                "", person.lastName ?? "", person.prefix ?? "");

            Gender gender;
            if (!Enum.TryParse(person.gender.ToString(), true, out gender))
                gender = Gender.Unknown;
            personModel.Gender = gender;

            personModel.MaritalStatus = "";
            if (person.maritalStatus != null)
                personModel.MaritalStatus = person.maritalStatus.ToString();

            personModel.DateOfBirth = DateTime.MinValue;
            if (person.dateOfBirth != null)
            {
                Match match = Regex.Match(person.dateOfBirth, @"(?<Date>\d{4}-\d{2}-\d{2})T\d{2}:\d{2}:\d{2}");
                if (match.Success)
                {
                    personModel.DateOfBirth = DateTime.Parse(match.Groups["Date"].Value);
                }
            }

            personModel.HouseholdMemberTypeName = "";
            if (person.householdMemberType != null && person.householdMemberType.name != null)
                personModel.HouseholdMemberTypeName = person.householdMemberType.name.ToString();

            personModel.StatusName = "";
            if (person.status != null && person.status.name != null)
                personModel.StatusName = person.status.name;

            return personModel;
        }
예제 #6
0
        public static CommunicationModel Convert(RemoteObjects.Communications.communication communication)
        {
            // RULE: For string type NO nulls empty string instead.

            if (communication == null)
                throw new ArgumentNullException("Cannot convert a Null communication to a CommunicationModel.");

            CommunicationModel communicationModel = new CommunicationModel();

            communicationModel.CommunicationID = communication.id ?? "";
            communicationModel.PersonID = communication.person.id ?? "";
            communicationModel.HouseholdID = communication.household.id ?? "";

            communicationModel.CommunicationURI = communication.uri ?? "";
            communicationModel.PersonURI = communication.person.uri ?? "";
            communicationModel.HouseholdURI = communication.household.uri ?? "";

            communicationModel.CommunicationTypeID = "";
            if (communication.communicationType != null && communication.communicationType.id != null)
                communicationModel.CommunicationTypeID = communication.communicationType.id;

            // Nasty work around to a weird XSD object creation issue.
            communicationModel.CommunicationType = "";
            XmlNode[] communicationTypeNodes = null;

            if (communication.communicationType != null && communication.communicationType.name != null)
            {
                communicationTypeNodes = communication.communicationType.name as XmlNode[];
                if (communicationTypeNodes != null && communicationTypeNodes.Length > 0)
                    communicationModel.CommunicationType = communicationTypeNodes[0].Value ?? "";
            }

            communicationModel.CommunicationTypeURI = "";
            if (communication.communicationType != null && communication.communicationType.uri != null)
                communicationModel.CommunicationTypeURI = communication.communicationType.uri;

            communicationModel.CommunicationGeneralType = communication.communicationGeneralType.ToString() ?? "";

            communicationModel.CommunicationValue = communication.communicationValue ?? "";
            communicationModel.SearchCommunicationValue = communication.searchCommunicationValue ?? "";

            communicationModel.Listed = communication.listed.ToString();
            communicationModel.CommunicationComment = communication.communicationComment ?? "";

            communicationModel.CreatedDate = communication.createdDate ?? "";
            communicationModel.LastUpdatedDate = communication.lastUpdatedDate ?? "";

            return communicationModel;
        }
예제 #7
0
        public static AddressModel Convert(RemoteObjects.Addresses.address address)
        {
            // RULE: For string type NO nulls empty string instead.

            if (address == null)
                throw new ArgumentNullException("Cannot convert a Null address to a AddressModel.");

            AddressModel addressModel = new AddressModel();

            addressModel.AddressID = address.id ?? "";
            addressModel.AddressURI = address.uri ?? "";
            addressModel.PersonID = address.person.id ?? "";
            addressModel.PersonURI = address.person.uri ?? "";
            addressModel.HouseholdID = address.household.id ?? "";
            addressModel.HouseholdURI = address.household.uri ?? "";

            addressModel.AddressTypeID = address.addressType.id ?? "";
            addressModel.AddressTypeURI = address.addressType.uri ?? "";
            // Nasty work around to a weird XSD object creation issue.
            addressModel.AddressType = "";
            XmlNode[] addressTypeNodes = null;

            if (address.addressType != null && address.addressType.name != null)
            {
                addressTypeNodes = address.addressType.name as XmlNode[];
                if (addressTypeNodes != null && addressTypeNodes.Length > 0)
                    addressModel.AddressType = addressTypeNodes[0].Value ?? "";
            }

            addressModel.Address1 = address.address1 ?? "";
            addressModel.Address2 = address.address2 ?? "";
            addressModel.Address3 = address.address3 ?? "";
            addressModel.City = address.city ?? "";
            addressModel.PostalCode = address.postalCode ?? "";
            addressModel.County = address.county ?? "";
            addressModel.Country = address.country ?? "";
            addressModel.StateProvince = address.stProvince ?? "";
            addressModel.CarrierRoute = address.carrierRoute ?? "";
            addressModel.DeliveryPoint = address.deliveryPoint ?? "";
            addressModel.AddressDate = address.addressDate ?? "";
            addressModel.AddressComment = address.addressComment ?? "";
            addressModel.UspsVerified = address.uspsVerified ?? "";

            addressModel.AddressVerifiedDate = address.addressVerifiedDate ?? "";
            addressModel.LastVerificationAttemptDate = address.lastVerificationAttemptDate ?? "";
            addressModel.CreatedDate = address.createdDate ?? "";
            addressModel.LastUpdatedDate = address.lastUpdatedDate ?? "";

            return addressModel;
        }