public async Task Create_Search()
        {
            var document    = Guid.NewGuid().ToString();
            var tradingName = Guid.NewGuid().ToString();
            var owner       = Guid.NewGuid().ToString();

            var newPdv = new NewPDV
            {
                Code         = "1",
                TradingName  = tradingName,
                Owner        = owner,
                Document     = document,
                CoverageArea = GeoJSONFactory.NewMultiPolygon(new double[, ] {
                    { -46.944580078125, -23.51362636346272 },
                    { -46.8841552734375, -23.74009762440226 },
                    { -46.4996337890625, -23.810475327766568 },
                    { -46.219482421875, -23.55391651832161 },
                    { -46.59301757812499, -23.301901124188877 },
                    { -46.944580078125, -23.51362636346272 }
                }),
                Address = GeoJSONFactory.NewPoint(0, 0)
            };

            var id = await pdvService.Create(newPdv);

            var list = await pdvService.Search(-46.65893554687499, -23.54384513650583);

            Assert.IsTrue(list.Any(p => p.Company.TradingName == newPdv.TradingName));
        }
        public async Task Create_Get()
        {
            var document    = Guid.NewGuid().ToString();
            var tradingName = Guid.NewGuid().ToString();
            var owner       = Guid.NewGuid().ToString();

            var newPdv = new NewPDV
            {
                Code         = "1",
                TradingName  = tradingName,
                Owner        = owner,
                Document     = document,
                CoverageArea = GeoJSONFactory.NewMultiPolygon(new double[, ] {
                    { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }
                }),
                Address = GeoJSONFactory.NewPoint(0, 0)
            };

            var id = await pdvService.Create(newPdv);

            var created = await pdvService.Get(id);

            Assert.AreEqual(newPdv.Code, created.Code);
            Assert.AreEqual(newPdv.TradingName, created.Company.TradingName);
            Assert.AreEqual(newPdv.Document, created.Company.Document);
            Assert.AreEqual(newPdv.Owner, created.Company.Owner.Name);
            Assert.IsNotNull(created.CoverageArea);
            Assert.IsNotNull(created.Address);
        }
        public async Task <Guid> Create(NewPDV newPDV)
        {
            var owner = new NaturalPeople(newPDV.Owner);

            var company = new LegalPeople(newPDV.TradingName, newPDV.TradingName, newPDV.Document, owner);

            var pdv = new PDV(newPDV.Code, company, newPDV.CoverageArea, newPDV.Address);

            await pdvRepository.Add(pdv);

            return(pdv.Id);
        }
 public async Task <Guid> Create([FromBody] NewPDV request)
 {
     return(await pdvService.Create(request));
 }