Ejemplo n.º 1
0
        public async void GetAllComplexAsyncTest()
        {
            var complex = new Logic.Complex
            {
                ComplexId     = Guid.NewGuid(),
                AddressId     = Guid.NewGuid(),
                ProviderId    = Guid.NewGuid(),
                ComplexName   = "test",
                ContactNumber = "1234567892"
            };
            //setup
            var complexRepo = new Mock <IRepository>();
            var logger      = new Mock <ILogger <ComplexController> >();
            var rss         = new Mock <IRoomServiceSender>();
            var ar          = new Mock <IAddressRequest>();
            var rr          = new Mock <IRoomRequest>();
            var res         = new List <Logic.Complex>
            {
                complex
            };

            complexRepo.Setup(r => r.ReadComplexListAsync())
            .Returns(Task.FromResult(res));

            //act
            var controller = new ComplexController(complexRepo.Object, logger.Object, rss.Object, ar.Object, rr.Object);
            var model      = Assert.IsAssignableFrom <ActionResult <IEnumerable <ApiComplex> > >(await controller.GetAllComplexAsync());

            //assert
            Assert.IsAssignableFrom <ActionResult <IEnumerable <ApiComplex> > >(model);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Update existed single complex by passing logic complex object
        /// </summary>
        /// <param name="update"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">complex not found</exception>
        public async Task <bool> UpdateComplexAsync(Logic.Complex update)
        {
            try
            {
                var origin = await _context.Complex.FindAsync(update.ComplexId);

                if (update.ComplexName != null)
                {
                    origin.ComplexName = update.ComplexName;
                }
                if (update.ContactNumber != null)
                {
                    origin.ContactNumber = update.ContactNumber;
                }

                await _context.SaveChangesAsync();

                _log.LogInformation("{complexId} was updated", update.ComplexId);

                return(true);
            }
            catch (ArgumentException ex)
            {
                _log.LogError("{ex}comlex id: {ComplexId} update failed", ex, update.ComplexId);
                throw;
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Logic.Complex => Entity.Complex
 /// </summary>
 /// <param name="c"></param>
 /// <returns></returns>
 public Entity.Complex MapComplextoE(Logic.Complex c)
 {
     return(new Entity.Complex
     {
         ComplexId = c.ComplexId,
         AddressId = c.AddressId,
         ProviderId = c.ProviderId,
         ComplexName = c.ComplexName,
         ContactNumber = c.ContactNumber
     });
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Create new single complex in the database by logic complex object
        /// </summary>
        /// <param name="lComplex"></param>
        /// <returns></returns>
        public async Task <bool> CreateComplexAsync(Logic.Complex lComplex)
        {
            var complex = _map.MapComplextoE(lComplex);

            await _context.AddAsync(complex);

            await _context.SaveChangesAsync();

            _log.LogInformation("new complex: {complexId} was inserted ", lComplex.ComplexId);

            return(true);
        }
Ejemplo n.º 5
0
        public async void GetComplexByIdAsyncTest()
        {
            //setup
            var complexId   = Guid.NewGuid();
            var complexRepo = new Mock <IRepository>();
            var logger      = new Mock <ILogger <ComplexController> >();
            var rss         = new Mock <IRoomServiceSender>();
            var ar          = new Mock <IAddressRequest>();
            var rr          = new Mock <IRoomRequest>();
            var res         = new Logic.Complex();

            complexRepo.Setup(r => r.ReadComplexByIdAsync(complexId))
            .Returns(Task.FromResult(res));

            //act
            var controller = new ComplexController(complexRepo.Object, logger.Object, rss.Object, ar.Object, rr.Object);
            var model      = Assert.IsAssignableFrom <ActionResult <ApiComplex> >(await controller.GetComplexByIdAsync(complexId));

            //assert
            Assert.IsAssignableFrom <ActionResult <ApiComplex> >(model);
        }
Ejemplo n.º 6
0
        public void ComplexTest()
        {
            var cId = Guid.NewGuid();
            var aId = Guid.NewGuid();
            var pId = Guid.NewGuid();

            var complex = new Logic.Complex
            {
                ComplexId     = cId,
                AddressId     = aId,
                ProviderId    = pId,
                ComplexName   = "Liv+",
                ContactNumber = "(123)456-7890"
            };

            Assert.Equal(cId, complex.ComplexId);
            Assert.Equal(aId, complex.AddressId);
            Assert.Equal(pId, complex.ProviderId);
            Assert.Equal("Liv+", complex.ComplexName);
            Assert.Equal("(123)456-7890", complex.ContactNumber);
        }
Ejemplo n.º 7
0
        public void ComplextoETest()
        {
            var cId    = Guid.NewGuid();
            var aId    = Guid.NewGuid();
            var pId    = Guid.NewGuid();
            var mapper = new Mapper();

            var c = new Logic.Complex
            {
                ComplexId     = cId,
                AddressId     = aId,
                ProviderId    = pId,
                ComplexName   = "Liv+",
                ContactNumber = "(123)456-7890"
            };

            var ce = mapper.MapComplextoE(c);

            Assert.Equal(cId, ce.ComplexId);
            Assert.Equal(aId, ce.AddressId);
            Assert.Equal(pId, ce.ProviderId);
            Assert.Equal("Liv+", ce.ComplexName);
            Assert.Equal("(123)456-7890", ce.ContactNumber);
        }
Ejemplo n.º 8
0
        //PUT: api/complex/editcomplex
        public async Task <ActionResult> PutComplexAsync([FromBody] ApiComplex apiComplex)
        {
            var compAddr = new ApiComplexAddress()
            {
                AddressId     = apiComplex.Address.AddressId,
                StreetAddress = apiComplex.Address.StreetAddress,
                City          = apiComplex.Address.City,
                State         = apiComplex.Address.State,
                ZipCode       = apiComplex.Address.ZipCode,
                Country       = apiComplex.Address.Country,
            };

            var complex = new Logic.Complex()
            {
                ComplexId     = apiComplex.ComplexId,
                AddressId     = apiComplex.Address.AddressId,
                ProviderId    = apiComplex.ProviderId,
                ContactNumber = apiComplex.ContactNumber,
                ComplexName   = apiComplex.ComplexName
            };

            await _complexRepository.DeleteAmenityComplexAsync(complex.ComplexId);

            _log.LogInformation($"(API)old amenities for complex id: {apiComplex.ComplexId} is deleted");

            var amenityComplex = new Logic.AmenityComplex();

            try
            {
                await _complexRepository.UpdateComplexAsync(complex);

                _log.LogInformation("(API) complex is updated");

                var amenities = await _complexRepository.ReadAmenityListAsync();

                _log.LogInformation("(API) list of amenity is read");

                Guid amenityComplexId;
                amenityComplex.ComplexId = complex.ComplexId;

                foreach (var amenity in apiComplex.ComplexAmenity)
                {
                    foreach (var am in amenities)
                    {
                        if (am.AmenityType == amenity.AmenityType)
                        {
                            amenityComplex.AmenityId = am.AmenityId;

                            amenityComplexId = Guid.NewGuid();
                            amenityComplex.AmenityComplexId = amenityComplexId;
                        }
                    }

                    await _complexRepository.CreateAmenityComplexAsync(amenityComplex);

                    _log.LogInformation("(API)new list of amenity of complex is created");
                }

                //send ApiComplexAddress to Address service to update the address

                return(StatusCode(200));
            }
            catch (Exception ex)
            {
                _log.LogError($"(API){ex}: unable to update complex");
                return(StatusCode(500, ex.Message));
            }
        }
Ejemplo n.º 9
0
        //Post: api/complex/PostComplex
        public async Task <ActionResult <ApiComplex> > PostComplexAsync([FromBody] ApiComplex apiComplex)
        {
            var compAddr = new ApiComplexAddress()
            {
                StreetAddress = apiComplex.Address.StreetAddress,
                City          = apiComplex.Address.City,
                State         = apiComplex.Address.State,
                ZipCode       = apiComplex.Address.ZipCode,
                Country       = apiComplex.Address.Country,
            };

            var addressId = (await _addressRequest.PostAddressAsync(compAddr)).AddressId;
            var complexId = Guid.NewGuid();

            var complex = new Logic.Complex()
            {
                ComplexId     = complexId,
                AddressId     = addressId,
                ProviderId    = apiComplex.ProviderId,
                ContactNumber = apiComplex.ContactNumber,
                ComplexName   = apiComplex.ComplexName
            };

            var amenityComplex = new Logic.AmenityComplex();

            try
            {
                await _complexRepository.CreateComplexAsync(complex);

                _log.LogInformation("(API)new complex in the database is inserted");

                var amenities = await _complexRepository.ReadAmenityListAsync();

                _log.LogInformation("(API)list of Amenity is found");

                amenityComplex.ComplexId = complex.ComplexId;

                foreach (var amenity in apiComplex.ComplexAmenity)
                {
                    foreach (var am in amenities)
                    {
                        if (am.AmenityType == amenity.AmenityType)
                        {
                            amenityComplex.AmenityId        = am.AmenityId;
                            amenityComplex.AmenityComplexId = Guid.NewGuid();
                        }
                    }

                    await _complexRepository.CreateAmenityComplexAsync(amenityComplex);

                    _log.LogInformation($"(API)a list of amenities for complex id: {complex.ComplexId} was created");
                }

                return(Created($"api/Complex/{complex.ComplexId}", apiComplex));
            }
            catch (Exception ex)
            {
                _log.LogError($"(API){ex}: unable to create complex");
                return(StatusCode(500, ex.Message));
            }
        }
Ejemplo n.º 10
0
        public async void PutComplexAsyncTest()
        {
            var cId     = Guid.NewGuid();
            var aId     = Guid.NewGuid();
            var pId     = Guid.NewGuid();
            var amId    = Guid.NewGuid();
            var address = new ApiComplexAddress
            {
                AddressId     = aId,
                StreetAddress = "test ave",
                City          = "dallas",
                State         = "TX",
                Country       = "USA",
                ZipCode       = "76010"
            };
            var amenity = new Logic.Amenity
            {
                AmenityId   = amId,
                AmenityType = "name",
                Description = "description"
            };
            var amenities = new List <Logic.Amenity>
            {
                amenity
            };
            var apiComplex = new ApiComplex
            {
                ComplexId      = cId,
                Address        = address,
                ProviderId     = pId,
                ComplexName    = "Liv+",
                ContactNumber  = "1234567890",
                ComplexAmenity = amenities
            };
            var complex = new Logic.Complex
            {
                ComplexId     = cId,
                AddressId     = aId,
                ProviderId    = pId,
                ComplexName   = "Liv+",
                ContactNumber = "1234567890"
            };
            var ac = new Logic.AmenityComplex
            {
                AmenityComplexId = Guid.NewGuid(),
                AmenityId        = amId,
                ComplexId        = cId
            };
            var complexRepo = new Mock <IRepository>();
            var logger      = new Mock <ILogger <ComplexController> >();
            var rss         = new Mock <IRoomServiceSender>();
            var ar          = new Mock <IAddressRequest>();
            var rr          = new Mock <IRoomRequest>();
            var res         = true;

            complexRepo.Setup(r => r.DeleteAmenityComplexAsync(cId))
            .Returns(Task.FromResult(res));
            complexRepo.Setup(r => r.UpdateComplexAsync(complex))
            .Returns(Task.FromResult(res));
            complexRepo.Setup(c => c.ReadAmenityListAsync())
            .Returns(Task.FromResult(amenities));
            complexRepo.Setup(p => p.CreateAmenityComplexAsync(ac))
            .Returns(Task.FromResult(res));

            //act
            var controller = new ComplexController(complexRepo.Object, logger.Object, rss.Object, ar.Object, rr.Object);
            var model      = Assert.IsAssignableFrom <StatusCodeResult>(await controller.PutComplexAsync(apiComplex));

            //assert
            Assert.IsAssignableFrom <StatusCodeResult>(model);
        }