コード例 #1
0
        private static EmailListVm MapToEmailListVm(this List <Email> emails, List <KeyValuePair <int, string> > emailTypes)
        {
            Func <Email, bool>         func         = null;
            EmailListVm                emailListVm  = new EmailListVm();
            KeyValuePair <int, string> keyValuePair = emailTypes.FirstOrDefault <KeyValuePair <int, string> >();

            emailListVm.AdditionalEmails     = new List <EmailVm>();
            emailListVm.DefaultEmailTypeName = keyValuePair.Value;
            emailListVm.DefaultEmailTypeId   = new long?((long)keyValuePair.Key);
            if (emails != null && emails.Any <Email>())
            {
                Email leadTypeEmail = emails.FirstOrDefault <Email>((Email m) => {
                    long?emailTypeId = m.EmailTypeId;
                    long key         = (long)keyValuePair.Key;
                    return(emailTypeId.GetValueOrDefault() == key & emailTypeId.HasValue);
                });
                if (leadTypeEmail != null)
                {
                    emailListVm.DefaultEmailId = leadTypeEmail.Id;
                    emailListVm.DefaultEmail   = leadTypeEmail.Value;
                }
                List <Email>       emails1 = emails;
                Func <Email, bool> func1   = func;
                if (func1 == null)
                {
                    Func <Email, bool> func2 = (Email m) => {
                        long?id             = m.Id;
                        long?defaultEmailId = emailListVm.DefaultEmailId;
                        return(!(id.GetValueOrDefault() == defaultEmailId.GetValueOrDefault() & id.HasValue == defaultEmailId.HasValue));
                    };
                    Func <Email, bool> func3 = func2;
                    func  = func2;
                    func1 = func3;
                }
                foreach (Email email in emails1.Where <Email>(func1))
                {
                    EmailVm emailVm = new EmailVm()
                    {
                        Id          = email.Id,
                        EmailTypeId = email.EmailTypeId,
                        Email       = email.Value,
                        EmailTypes  = emailTypes.ToSelectListItemList(email.EmailTypeId)
                    };
                    emailListVm.AdditionalEmails.Add(emailVm);
                }
            }
            if (!emailListVm.AdditionalEmails.Any <EmailVm>())
            {
                EmailVm emailVm1 = new EmailVm()
                {
                    EmailTypes = emailTypes.ToSelectListItemList()
                };
                emailListVm.AdditionalEmails.Add(emailVm1);
            }
            return(emailListVm);
        }
コード例 #2
0
        public static EmailListVm Repopulate(this EmailListVm model, ServiceType serviceType)
        {
            if (model == null)
            {
                return(AdminViewModelsProvider.GetEmailListVm(serviceType));
            }
            if (model.AdditionalEmails == null || !model.AdditionalEmails.Any <EmailVm>())
            {
                model.AdditionalEmails = new List <EmailVm>()
                {
                    new EmailVm()
                };
            }
            List <SelectListItem> emailTypes = MSLivingChoices.Bcs.Admin.Components.ItemTypeBc.Instance.GetEmailTypes(serviceType).ToSelectListItemList();

            foreach (EmailVm additionalEmail in model.AdditionalEmails)
            {
                additionalEmail.EmailTypes = emailTypes;
            }
            return(model);
        }