C # automapper проверить все значения перечисления в карте - PullRequest
0 голосов
/ 11 июня 2019

Я сопоставляю модель моего домена с базой данных. Оба содержат перечисление, представляющее диапазон состояний.

Есть ли способ проверить, что все значения в одном перечислении могут быть сопоставлены с помощью автоматического преобразователя после того, как преобразователь был построен из его конфигурации (или, возможно, в модульном тесте)

1 Ответ

0 голосов
/ 11 июня 2019

Вы можете использовать пример кода ниже;

    public class Program
    {
        public static void Main(string[] args)
        {
            CreateMaps();

            Lender src = new Lender()
            {
                Id = 1,
                Name = "Bob",
                ClaimTypes = ClaimType.A | ClaimType.C
            };

            LenderServiceModel dest = Mapper.Map<LenderServiceModel>(src);

            Console.WriteLine("{0}: {1}", dest.Id, dest.Name);

            foreach(var claimType in dest.ClaimTypes)
            {
                Console.WriteLine(claimType);
            }
        }

        private static void CreateMaps()
        {
            Mapper.CreateMap<Lender, LenderServiceModel>()
                .ForMember(dest => dest.ClaimTypes, opts => opts.MapFrom(src =>
                    src.ClaimTypes.ToString().Split(new string[]{", "}, StringSplitOptions.None).ToList()));
        }
    }

    [Flags]
    public enum ClaimType : int
    {
        A = 1,
        B = 2,
        C = 4
    }

    public class Lender
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public ClaimType ClaimTypes { get; set; }
    }

    public class LenderServiceModel 
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public List<string> ClaimTypes { get; set; }
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...