Exemplo n.º 1
0
        public void Should_replace_destination_list()
        {
            Mapper.CreateMap <MasterDto, MasterWithList>();
            Mapper.CreateMap <DetailDto, Detail>();

            var dto = new MasterDto
            {
                Id      = 1,
                Details = new[]
                {
                    new DetailDto {
                        Id = 2
                    },
                    new DetailDto {
                        Id = 3
                    },
                }
            };

            var            master             = new MasterWithList();
            IList <Detail> originalCollection = master.Details;

            Mapper.Map(dto, master);

            Assert.That(master.Details, Is.Not.SameAs(originalCollection));
        }
        public async Task <IActionResult> UpdateMasterSub3Async([FromBody] MasterDto request)
        {
            if (request == null || request.ID == null)
            {
                throw new Exception("master is required!");
            }

            var entity = await _context.Masters
                         .Include(x => x.Subs)
                         .SingleOrDefaultAsync(x => x.ID == request.ID.Value);

            if (entity == null)
            {
                throw new Exception("master entity not found!");
            }

            entity.MasterName = request.MasterName;


            List <Sub> subs = new List <Sub>();

            if (request.Subs != null)
            {
                for (int i = 0; i < request.Subs.Count; i++)
                {
                    var subRequest = request.Subs[i];
                    if (subRequest.ID == null)
                    {
                        Sub sub = new Sub();
                        sub.ID       = Guid.NewGuid();
                        sub.SubName  = subRequest.SubName;
                        sub.MasterID = entity.ID;
                        subs.Add(sub);
                    }
                    else
                    {
                        Sub sub = entity.Subs.FirstOrDefault(x => x.ID == subRequest.ID.Value);
                        sub.MasterID = entity.ID;
                        sub.SubName  = subRequest.SubName;
                        subs.Add(sub);
                    }
                }
            }
            entity.Subs = subs;
            _context.Masters.Update(entity);
            int num = await _context.SaveChangesAsync();


            var updatedEntity = await _context.Masters
                                .Include(x => x.Subs)
                                .SingleOrDefaultAsync(x => x.ID == request.ID.Value);

            var responseDto = new Master {
                ID = updatedEntity.ID, MasterName = updatedEntity.MasterName, Subs = updatedEntity.Subs.Select(x => new Sub {
                    ID = x.ID, SubName = x.SubName, MasterID = updatedEntity.ID
                }).ToList()
            };

            return(Ok(responseDto));
        }
Exemplo n.º 3
0
        public void Should_keep_and_fill_destination_collection_when_collection_is_implemented_as_set_with_aftermap()
        {
            Mapper.CreateMap <MasterDto, MasterWithCollection>()
            .ForMember(d => d.Details, o => o.Ignore())
            .AfterMap((s, d) => FillCollection(s, d, ss => ss.Details, dd => dd.Details));
            Mapper.CreateMap <DetailDto, Detail>();

            var dto = new MasterDto
            {
                Id      = 1,
                Details = new[]
                {
                    new DetailDto {
                        Id = 2
                    },
                    new DetailDto {
                        Id = 3
                    },
                }
            };

            var master = new MasterWithCollection(new HashSet <Detail>());
            ICollection <Detail> originalCollection = master.Details;

            Mapper.Map(dto, master);

            Assert.That(master.Details, Is.SameAs(originalCollection));
            Assert.That(master.Details.Count, Is.EqualTo(originalCollection.Count));
        }
Exemplo n.º 4
0
        public void Should_keep_and_fill_destination_list()
        {
            Mapper.CreateMap <MasterDto, MasterWithList>()
            .ForMember(d => d.Details, o => o.UseDestinationValue());
            Mapper.CreateMap <DetailDto, Detail>();

            var dto = new MasterDto
            {
                Id      = 1,
                Details = new[]
                {
                    new DetailDto {
                        Id = 2
                    },
                    new DetailDto {
                        Id = 3
                    },
                }
            };

            var            master             = new MasterWithList();
            IList <Detail> originalCollection = master.Details;

            Mapper.Map(dto, master);

            Assert.That(master.Details, Is.SameAs(originalCollection));
            Assert.That(master.Details.Count, Is.EqualTo(originalCollection.Count));
        }
Exemplo n.º 5
0
        public void Should_be_able_to_map_to_a_collection_type_that_implements_ICollection_of_T()
        {
            var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <MasterDto, MasterWithNoExistingCollection>();
                cfg.CreateMap <DetailDto, Detail>();
            });

            var dto = new MasterDto
            {
                Id      = 1,
                Details = new[]
                {
                    new DetailDto {
                        Id = 2
                    },
                    new DetailDto {
                        Id = 3
                    },
                }
            };

            var master = config.CreateMapper().Map <MasterDto, MasterWithNoExistingCollection>(dto);

            master.Details.Count.ShouldEqual(2);
        }
Exemplo n.º 6
0
        public void Should_not_replace_destination_list()
        {
            var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <MasterDto, MasterWithList>()
                .ForMember(d => d.Details, opt => opt.UseDestinationValue());
                cfg.CreateMap <DetailDto, Detail>();
            });

            var dto = new MasterDto
            {
                Id      = 1,
                Details = new[]
                {
                    new DetailDto {
                        Id = 2
                    },
                    new DetailDto {
                        Id = 3
                    },
                }
            };

            var            master             = new MasterWithList();
            IList <Detail> originalCollection = master.Details;

            config.CreateMapper().Map(dto, master);

            originalCollection.ShouldBeSameAs(master.Details);
        }
Exemplo n.º 7
0
        public void Should_keep_and_fill_destination_collection_when_collection_is_implemented_as_list()
        {
            var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <MasterDto, MasterWithCollection>()
                .ForMember(d => d.Details, o => o.UseDestinationValue());
                cfg.CreateMap <DetailDto, Detail>();
            });

            var dto = new MasterDto
            {
                Id      = 1,
                Details = new[]
                {
                    new DetailDto {
                        Id = 2
                    },
                    new DetailDto {
                        Id = 3
                    },
                }
            };

            var master = new MasterWithCollection(new List <Detail>());
            ICollection <Detail> originalCollection = master.Details;

            config.CreateMapper().Map(dto, master);

            originalCollection.ShouldBeSameAs(master.Details);
            originalCollection.Count.ShouldEqual(master.Details.Count);
        }
Exemplo n.º 8
0
        public void Should_keep_and_fill_destination_collection_when_collection_is_implemented_as_set_with_aftermap()
        {
            var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <MasterDto, MasterWithCollection>()
                .ForMember(d => d.Details, o => o.Ignore())
                .AfterMap((s, d) => FillCollection(s, d, ss => ss.Details, dd => dd.Details));
                cfg.CreateMap <DetailDto, Detail>();
            });

            var dto = new MasterDto
            {
                Id      = 1,
                Details = new[]
                {
                    new DetailDto {
                        Id = 2
                    },
                    new DetailDto {
                        Id = 3
                    },
                }
            };

            var master = new MasterWithCollection(new HashSet <Detail>());
            ICollection <Detail> originalCollection = master.Details;

            mapper = config.CreateMapper();

            mapper.Map(dto, master);

            originalCollection.ShouldBeSameAs(master.Details);
            originalCollection.Count.ShouldEqual(master.Details.Count);
        }
        public async Task <IActionResult> UpdateMasterSubAsync([FromBody] MasterDto request)
        {
            if (request == null || request.ID == null)
            {
                throw new Exception("master is required!");
            }

            var entity = await _context.Masters
                         .Include(x => x.Subs)
                         .SingleOrDefaultAsync(x => x.ID == request.ID.Value);

            if (entity == null)
            {
                throw new Exception("master entity not found!");
            }

            entity.MasterName = request.MasterName;

            entity.Subs = null;
            _context.Masters.Update(entity);

            int num = await _context.SaveChangesAsync();

            var updatedEntity = await _context.Masters
                                .Include(x => x.Subs)
                                .SingleOrDefaultAsync(x => x.ID == request.ID.Value);

            var responseDto = new Master {
                ID = updatedEntity.ID, MasterName = updatedEntity.MasterName, Subs = updatedEntity.Subs.Select(x => new Sub {
                    ID = x.ID, SubName = x.SubName, MasterID = updatedEntity.ID
                }).ToList()
            };

            return(Ok(responseDto));
        }
Exemplo n.º 10
0
        public void Should_not_replace_destination_list()
        {
            Mapper.CreateMap <MasterDto, MasterWithList>();
            Mapper.CreateMap <DetailDto, Detail>();

            var dto = new MasterDto
            {
                Id      = 1,
                Details = new[]
                {
                    new DetailDto {
                        Id = 2
                    },
                    new DetailDto {
                        Id = 3
                    },
                }
            };

            var master             = new MasterWithList();
            var originalCollection = master.Details;

            Mapper.Map(dto, master);

            originalCollection.ShouldBeSameAs(master.Details);
        }
Exemplo n.º 11
0
        public void Should_not_replace_destination_collection()
        {
            var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <MasterDto, MasterWithCollection>();
                cfg.CreateMap <DetailDto, Detail>();
            });

            var dto = new MasterDto
            {
                Id      = 1,
                Details = new[]
                {
                    new DetailDto {
                        Id = 2
                    },
                    new DetailDto {
                        Id = 3
                    },
                }
            };

            var master = new MasterWithCollection(new List <Detail>());
            ICollection <Detail> originalCollection = master.Details;

            config.CreateMapper().Map(dto, master);

            originalCollection.ShouldBeSameAs(master.Details);
        }
Exemplo n.º 12
0
        public void Should_keep_and_fill_destination_list()
        {
            Mapper.CreateMap <MasterDto, MasterWithList>()
            .ForMember(d => d.Details, o => o.UseDestinationValue());
            Mapper.CreateMap <DetailDto, Detail>();

            var dto = new MasterDto
            {
                Id      = 1,
                Details = new[]
                {
                    new DetailDto {
                        Id = 2
                    },
                    new DetailDto {
                        Id = 3
                    },
                }
            };

            var master             = new MasterWithList();
            var originalCollection = master.Details;

            Mapper.Map(dto, master);

            originalCollection.ShouldBeSameAs(master.Details);
            originalCollection.Count.ShouldBe(master.Details.Count);
        }
Exemplo n.º 13
0
        public void Update()
        {
            Console.Clear();
            var master = new MasterDto();

            Output.WriteLine(ConsoleColor.Cyan, "Update master");

            try
            {
                Console.Write("Master id: ");
                master.Id = int.Parse(Console.ReadLine());
                Console.Write("First name: ");
                master.FirstName = Console.ReadLine();
                Console.Write("Surname: ");
                master.Surname = Console.ReadLine();
                Console.Write("Middle name: ");
                master.Phone = Console.ReadLine();
                Console.Write("Passport id: ");
                master.PassportId = Console.ReadLine();

                _masterService.Update(master);
                Output.WriteLine(ConsoleColor.Green, "Update was successful");
                Console.ReadKey();
                Program.NavigateTo <MasterPage>();
            }
            catch (ArgumentException e)
            {
                Output.WriteLine(ConsoleColor.Red, e.Message);
            }
        }
Exemplo n.º 14
0
        public void Create()
        {
            Console.Clear();
            var master = new MasterDto();

            Output.WriteLine(ConsoleColor.Cyan, "Create master");

            try
            {
                Console.Write("First name: ");
                master.FirstName = Console.ReadLine();
                Console.Write("Surname: ");
                master.Surname = Console.ReadLine();
                Console.Write($"Phone: ");
                master.Phone = Console.ReadLine();
                Console.Write($"Passport id: ");
                master.PassportId = Console.ReadLine();

                _masterService.Add(master);
                Output.WriteLine(ConsoleColor.Green, "Creation was successful");
                Console.ReadKey();
                Program.NavigateTo <MasterPage>();
            }
            catch (ArgumentNullException e)
            {
                Output.WriteLine(ConsoleColor.Red, e.Message);
            }
        }
Exemplo n.º 15
0
        public void Update(MasterDto item)
        {
            item.CreateValidation();
            var master = _masterRepository.GetById(item.Id);

            master.FindValidation();
            _masterRepository.Update(_mapper.Map <MasterDto, Master>(item));
        }
Exemplo n.º 16
0
        public ActionResult Edit([FromBody] MasterDto master)
        {
            try
            {
                _masterService.Update(master);
            }
            catch (Exception)
            {
                return(BadRequest());
            }

            return(Ok());
        }
Exemplo n.º 17
0
        public void Should_be_able_to_map_to_a_collection_type_that_implements_ICollection_of_T()
        {
            Mapper.CreateMap <MasterDto, MasterWithNoExistingCollection>();
            Mapper.CreateMap <DetailDto, Detail>();

            var dto = new MasterDto
            {
                Id      = 1,
                Details = new[]
                {
                    new DetailDto {
                        Id = 2
                    },
                    new DetailDto {
                        Id = 3
                    },
                }
            };

            var master = Mapper.Map <MasterDto, MasterWithNoExistingCollection>(dto);

            master.Details.Count.ShouldBe(2);
        }
Exemplo n.º 18
0
 public int Add(MasterDto item)
 {
     item.CreateValidation();
     return(_masterRepository.Create(_mapper.Map <MasterDto, Master>(item)));
 }