private ParentModel MapParentModel(Parent parent, ParentProfile profile, ParentAlert parentAlert)
        {
            var parentModel = new ParentModel();

            parentModel.ParentUniqueId = parent.ParentUniqueId;
            if (profile != null)
            {
                SetParentContactInfo(parentModel, profile);
            }
            if (profile == null || parentModel.Email == null)
            {
                SetParentContactInfo(parentModel, parent);
            }

            if (parentAlert == null)
            {
                return(parentModel);
            }

            parentModel.ParentAlert.PreferredMethodOfContactTypeId = profile?.PreferredMethodOfContactTypeId;
            parentModel.ParentAlert.AlertTypeIds = parentAlert.AlertTypes.Select(x => x.AlertTypeId).ToList();
            parentModel.LanguageCode             = profile.LanguageCode;

            return(parentModel);
        }
Example #2
0
 internal override void SetXML(XmlElement xml, BaseClassIfc host, Dictionary <string, XmlElement> processed)
 {
     base.SetXML(xml, host, processed);
     xml.AppendChild(ParentProfile.GetXML(xml.OwnerDocument, "ContainerProfile", this, processed));
     xml.AppendChild(Operator.GetXML(xml.OwnerDocument, "Operator", this, processed));
     setAttribute(xml, "Label", Label);
 }
        private async Task <ParentProfile> SaveProfileAsync(int parentUsi, UserProfileModel model)
        {
            var currentProfile = await(GetParentProfile(parentUsi)).SingleOrDefaultAsync();

            var parent = await _edFiDb.Parents.SingleOrDefaultAsync(x => x.ParentUsi == model.Usi);

            var parentUniqueId = parent.ParentUniqueId;

            // If the parent portal extended profile is not null remove it and add it again with the submitted changes.
            if (currentProfile != null)
            {
                _edFiDb.ParentProfiles.Remove(currentProfile.ParentProfile);
            }

            var profile = new ParentProfile
            {
                ParentUniqueId = parentUniqueId,
                FirstName      = model.FirstName,
                MiddleName     = model.MiddleName,
                LastSurname    = model.LastSurname,
                NickName       = model.Nickname,
                PreferredMethodOfContactTypeId = model.PreferredMethodOfContactTypeId,
                LanguageCode                 = model.LanguageCode,
                ReplyExpectations            = model.ReplyExpectations,
                ParentProfileElectronicMails = model.ElectronicMails.Select(x => new ParentProfileElectronicMail
                {
                    ParentUniqueId               = parentUniqueId,
                    ElectronicMailTypeId         = x.ElectronicMailTypeId,
                    ElectronicMailAddress        = x.ElectronicMailAddress,
                    PrimaryEmailAddressIndicator = x.PrimaryEmailAddressIndicator
                }).ToList(),
                ParentProfileTelephones = model.TelephoneNumbers.Select(x => new ParentProfileTelephone
                {
                    ParentUniqueId                 = parentUniqueId,
                    TelephoneNumberTypeId          = x.TelephoneNumberTypeId,
                    TelephoneNumber                = x.TelephoneNumber,
                    TextMessageCapabilityIndicator = x.TextMessageCapabilityIndicator,
                    PrimaryMethodOfContact         = x.PrimaryMethodOfContact,
                    TelephoneCarrierTypeId         = x.TelephoneCarrierTypeId,
                }).ToList(),
                ParentProfileAddresses = model.Addresses.Select(x => new ParentProfileAddress
                {
                    ParentUniqueId           = parentUniqueId,
                    AddressTypeId            = x.AddressTypeId,
                    StreetNumberName         = x.StreetNumberName,
                    ApartmentRoomSuiteNumber = x.ApartmentRoomSuiteNumber,
                    City = x.City,
                    StateAbbreviationTypeId = x.StateAbbreviationTypeId,
                    PostalCode   = x.PostalCode,
                    NameOfCounty = x.NameOfCounty,
                }).ToList(),
            };

            _edFiDb.ParentProfiles.Add(profile);

            await _edFiDb.SaveChangesAsync();

            return(profile);
        }
Example #4
0
        public DeviceGroup GetDeviceGroup(DeviceIoType deviceIoType)
        {
            var deviceGroupGuid = GetDeviceGroupGuid(deviceIoType);

            if (deviceGroupGuid.Equals(Guid.Empty))
            {
                return(ParentProfile?.GetDeviceGroup(deviceIoType));
            }
            return(Context.DeviceGroupsManager.GetDeviceGroup(deviceIoType, deviceGroupGuid));
        }
        public override string GetStepParameters()
        {
            var parameters = new List <string>();

            parameters.Add(ProfileType.ToStepValue());
            parameters.Add(ProfileName != null ? ProfileName.ToStepValue() : "$");
            parameters.Add(ParentProfile != null ? ParentProfile.ToStepValue() : "$");
            parameters.Add("*");
            parameters.Add(Label != null ? Label.ToStepValue() : "$");

            return(string.Join(", ", parameters.ToArray()));
        }
        private string getParentSMSDomain(ParentProfile parentProfile)
        {
            if (parentProfile == null)
            {
                return(null);
            }

            var preferredTelephone = parentProfile.ParentProfileTelephones.FirstOrDefault(x => x.PrimaryMethodOfContact.HasValue && x.PrimaryMethodOfContact.Value);

            var telephone = preferredTelephone ?? parentProfile.ParentProfileTelephones.FirstOrDefault();

            return(telephone?.TextMessageCarrierType.SmsSuffixDomain);
        }
        private string getParentTelephone(ParentProfile parentProfile)
        {
            if (parentProfile == null)
            {
                return(null);
            }

            var preferredTelephone = parentProfile.ParentProfileTelephones.FirstOrDefault(x => x.PrimaryMethodOfContact.HasValue && x.PrimaryMethodOfContact.Value);

            var telephone = preferredTelephone ?? parentProfile.ParentProfileTelephones.FirstOrDefault();

            return(telephone?.TelephoneNumber);
        }
        private string getParentMail(ParentProfile parentProfile)
        {
            if (parentProfile == null)
            {
                return(null);
            }

            var preferredMail = parentProfile.ParentProfileElectronicMails.FirstOrDefault(x => x.PrimaryEmailAddressIndicator.HasValue && x.PrimaryEmailAddressIndicator.Value);

            var mail = preferredMail ?? parentProfile.ParentProfileElectronicMails.FirstOrDefault();

            return(mail?.ElectronicMailAddress);
        }
        private void SetParentContactInfo(ParentModel parentModel, ParentProfile parentProfile)
        {
            var preferredMail = parentProfile.ParentProfileElectronicMails.FirstOrDefault(x => x.PrimaryEmailAddressIndicator.HasValue && x.PrimaryEmailAddressIndicator.Value);

            var mail = preferredMail ?? parentProfile.ParentProfileElectronicMails.FirstOrDefault();

            var preferredTelephone = parentProfile.ParentProfileTelephones.FirstOrDefault(x => x.PrimaryMethodOfContact.HasValue && x.PrimaryMethodOfContact.Value);

            var telephone = preferredTelephone ?? parentProfile.ParentProfileTelephones.FirstOrDefault();

            parentModel.Email     = mail?.ElectronicMailAddress;
            parentModel.Telephone = telephone?.TelephoneNumber;
            parentModel.SMSDomain = telephone?.TextMessageCarrierType?.SmsSuffixDomain;
        }
Example #10
0
        public string GetInheritedDeviceGroupName(DeviceIoType deviceIoType)
        {
            var parentDeviceGroupName = "None";
            var parentDeviceGroup     = ParentProfile?.GetDeviceGroup(deviceIoType);

            if (parentDeviceGroup != null)
            {
                parentDeviceGroupName = parentDeviceGroup.Title;
            }
            if (ParentProfile != null)
            {
                parentDeviceGroupName += " (Inherited)";
            }
            return(parentDeviceGroupName);
        }
Example #11
0
        public List <Device> GetDeviceList(DeviceIoType deviceIoType)
        {
            var result = new List <Device>();

            if (ParentProfile != null)
            {
                result.AddRange(ParentProfile.GetDeviceList(deviceIoType));
            }

            var devices = deviceIoType == DeviceIoType.Input ? InputDevices : OutputDevices;

            devices.ForEach(d => d.Profile = this);
            result.AddRange(devices);

            return(result);
        }
Example #12
0
 public string ProfileBreadCrumbs()
 {
     return(ParentProfile != null?ParentProfile.ProfileBreadCrumbs() + " > " + Title : Title);
 }