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); }
/// <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; } }
/// <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 }); }
/// <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); }
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); }
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); }
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); }
//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)); } }
//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)); } }
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); }