public void Details_MockedExternalServiceEmpty_ReturnsContentResult() { #region Arrange string itemId = "xxx"; var externalService = new Mock <IExternalService>(); var loggerService = new Mock <ILoggerService>(); ItemApplication.MapperReset(); var applicationItem = new ItemApplication(externalService.Object, loggerService.Object); var controller = new SearchController(applicationItem); #endregion #region Act var result = controller.Details(itemId); #endregion #region Assert Assert.IsInstanceOfType(result, typeof(ContentResult)); Assert.IsNotInstanceOfType(result, typeof(ViewResult)); #endregion }
public async Task <ActionResult> UpdateItem(Guid id, [FromBody] ItemUpdateDto itemDto) { var hasGroup = await GroupApplication.ExistGroup(g => g.Id.Equals(itemDto.GroupId)); if (!hasGroup) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"O grupo, {itemDto.GroupId}, não existe."); return(BadRequest(error)); } // Check if the item exists ItemResponseDto item = await ItemApplication.GetItem(i => i.Id.Equals(id)); if (item == null) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.NotFound, $"O item, {id}, não foi encontrado."); return(NotFound(error)); } if (item.Name != itemDto.Name) { // Check if the item already exists ItemResponseDto itemByName = await ItemApplication.GetItem((i) => i.Name.ToLower().Equals(itemDto.Name.ToLower())); if (itemByName != null) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"O item, {itemDto.Name}, já existe."); return(BadRequest(error)); } } await ItemApplication.UpdateItem(id, itemDto); return(Ok()); }
public void Index_MockedExternalServiceEmpty_ReturnsContentResult() { #region Arrange const string filter = "bicicleta"; var externalService = new Mock <IExternalService>(); var loggerService = new Mock <ILoggerService>(); ItemApplication.MapperReset(); var applicationItem = new ItemApplication(externalService.Object, loggerService.Object); var controller = new SearchController(applicationItem); #endregion #region Act var result = controller.Index(filter); #endregion #region Assert Assert.IsInstanceOfType(result, typeof(ContentResult)); Assert.IsNotInstanceOfType(result, typeof(ViewResult)); #endregion }
public CharitiesController(CharitableEntityApplication charitableEntityApplication, CharitableInformationApplication charitableInformationApplication, UserApplication userApplication, ItemApplication itemApplication) { this.CharitableEntityApplication = charitableEntityApplication; this.CharitableInformationApplication = charitableInformationApplication; this.UserApplication = userApplication; this.ItemApplication = itemApplication; }
public async Task <ActionResult> CreateDonationOnline([FromBody] DonationCreateDto donationCreateDto) { if (donationCreateDto == null) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"O parâmetro, DonationCreate, não pode ser nulo."); return(BadRequest(error)); } // Check if charity exists var charity = await CharitableEntityApplication.GetCharity((c) => c.Id.Equals(donationCreateDto.CharitableEntityId), true); if (charity == null) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"A entidade beneficente, {donationCreateDto.CharitableEntityId}, não foi encontrada."); return(NotFound(error)); } // Check if user exists var user = await UserApplication.GetUser((u) => u.Id.Equals(donationCreateDto.UserId)); if (user == null) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"O usuário, {donationCreateDto.UserId}, não foi encontrado."); return(NotFound(error)); } if (donationCreateDto?.DonationItem.Count() > 0) { var lstItems = await ItemApplication.GetCharityItemIn(charity.Information.Id, donationCreateDto.DonationItem.Select(e => e.ItemId).ToList()); if (lstItems.Count() != donationCreateDto.DonationItem.Count()) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"Existem itens inválidos."); return(BadRequest(error)); } } var donationId = await DonationApplication.CreateDonation(donationCreateDto, true); try { // Sent an email var donor = await UserApplication.GetUserOwnerDto(donationCreateDto.UserId); string message = string.Format(" <h1>Olá, {0}</h1><h2>Doação online realizada com sucesso no valor total de {1} reais para a entidade {2} ({3}).</h2>", donor.Name, donationCreateDto.Total.ToString("C"), charity.Name, charity.Cnpj); await this.EmailSender.SendEmailAsync(user.Login, $"Doa Sonhos - Doação Online", message); } catch (Exception) { } return(CreatedAtRoute("GetDonationById", new { id = donationId }, null)); }
public DonationsController(DonationApplication donationApplication, ItemApplication itemApplication, CharitableEntityApplication charitableEntityApplication, IEmailSender emailSender, UserApplication userApplication) { this.DonationApplication = donationApplication; this.ItemApplication = itemApplication; this.CharitableEntityApplication = charitableEntityApplication; this.UserApplication = userApplication; this.EmailSender = emailSender; }
public async Task <ActionResult <ItemResponseDto> > GetItemById(Guid id) { ItemResponseDto itemDto = await ItemApplication.GetItem(i => i.Id.Equals(id)); if (itemDto == null) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.NotFound, $"O item, {id}, não foi encontrado."); return(NotFound(error)); } return(Ok(itemDto)); }
public async Task <ActionResult> UpdateItemImage(Guid id, [FromForm] IFormFile photo) { // Check if the item exists ItemResponseDto item = await ItemApplication.GetItem(i => i.Id.Equals(id)); if (item == null) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.NotFound, $"O item, {id}, não foi encontrado."); return(NotFound(error)); } await ItemApplication.UpdateItemImage(id, photo, Request); return(Ok()); }
public async Task <ActionResult> DeleteItem(Guid id) { // Check if the item exists ItemResponseDto itemDto = await ItemApplication.GetItem(i => i.Id.Equals(id)); if (itemDto == null) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.NotFound, $"O item, {id}, não foi encontrado."); return(NotFound(error)); } await ItemApplication.DeleteItem(itemDto); return(NoContent()); }
public async Task <IActionResult> CreateItem([FromForm] ItemCreateDto itemDto) { var hasGroup = await GroupApplication.ExistGroup(g => g.Id.Equals(itemDto.GroupId)); if (!hasGroup) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"O grupo, {itemDto.GroupId}, não existe."); return(BadRequest(error)); } // Check if the item already exists bool hasItem = await ItemApplication.ExistItem((i) => i.Name.ToLower().Equals(itemDto.Name.ToLower())); if (hasItem) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"O item, {itemDto.Name}, já existe."); return(BadRequest(error)); } var itemId = await ItemApplication.CreateItem(itemDto, Request); return(CreatedAtRoute("GetItemById", new { id = itemId }, null)); }
public async Task <ActionResult> CreateDonationPresencial([FromBody] DonationCreateDto donationCreateDto) { if (donationCreateDto == null) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"O parâmetro, DonationCreate, não pode ser nulo."); return(BadRequest(error)); } // Check if the charity exists var charity = await CharitableEntityApplication.GetCharity((c) => c.Id.Equals(donationCreateDto.CharitableEntityId), true); if (charity == null) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"A entidade beneficente, {donationCreateDto.CharitableEntityId}, não foi encontrada."); return(NotFound(error)); } // Check if user exists var user = await UserApplication.GetUser((u) => u.Id.Equals(donationCreateDto.UserId)); if (user == null) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"O usuário, {donationCreateDto.UserId}, não foi encontrado."); return(NotFound(error)); } if (donationCreateDto.Total != 0) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"O valor total não pode ser diferente de zero para doações presenciais."); return(BadRequest(error)); } if (donationCreateDto?.DonationItem.Count() > 0) { var lstItems = await ItemApplication.GetCharityItemIn(charity.Information.Id, donationCreateDto.DonationItem.Select(e => e.ItemId).ToList()); if (lstItems.Count() != donationCreateDto.DonationItem.Count()) { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"Existem itens inválidos."); return(BadRequest(error)); } } else { ErrorMessage error = new ErrorMessage((int)HttpStatusCode.BadRequest, $"É necessário pelo menos um item válido para doações presenciais."); return(BadRequest(error)); } var donationId = await DonationApplication.CreateDonation(donationCreateDto, false); try { // Sent an email var donor = await UserApplication.GetUserOwnerDto(donationCreateDto.UserId); string message = string.Format(" <h2>Olá, {0}</h2><h3>Parabéns! Você realizou uma doação presencial para a entidade {1} ({2}).</h3>", donor.Name, charity.Name, charity.Cnpj); await this.EmailSender.SendEmailAsync(user.Login, $"Doa Sonhos - Doação Presencial", message); } catch (Exception ex) { Console.WriteLine(ex); } return(CreatedAtRoute("GetDonationById", new { id = donationId }, null)); }
// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { mouseDown = true; } if (Input.GetMouseButtonUp(0)) { mouseDown = false; } if (Input.GetKey(KeyCode.S)) { if (itemApplication != null) { itemApplication.cleanup(); } itemApplication = new SidewalkItemApplication(structureControl); } if (Input.GetKey(KeyCode.B)) { if (itemApplication != null) { itemApplication.cleanup(); } itemApplication = new BuildingItemApplication(structureControl); } if (Input.GetKey(KeyCode.E)) { if (itemApplication != null) { itemApplication.cleanup(); } itemApplication = new BombItemApplication(structureControl); } if (Input.GetKey(KeyCode.Escape)) { inventControl.tryToRestore(); } /* * if (Input.GetKey(KeyCode.K)) // test saving game * { * saveForTesting = cityControl.SaveCity(); * } * * if (Input.GetKey(KeyCode.L)) // test loading game * { * cityControl.LoadCity(saveForTesting); * } */ if (itemApplication != null) { Vector3 mouse = Input.mousePosition; Ray castPoint = Camera.main.ScreenPointToRay(mouse); RaycastHit hit; if (landscapeCollider.Raycast(castPoint, out hit, Mathf.Infinity)) { int i = (int)hit.point.x; int j = (int)hit.point.z; itemApplication.draw(i, j); if (mouseDown) { if (itemApplication.isValidPosition(i, j)) { itemApplication.useItem(i, j); itemApplication = null; } } } } }
public async Task <ActionResult <PagedResponse <ItemResponseDto> > > GetItems([FromQuery] FilterParams filterParams, [FromQuery] PaginationParams paginationParams) { PagedResponse <ItemResponseDto> pagedResponse = await ItemApplication.GetAllItems(filterParams, paginationParams); return(Ok(pagedResponse)); }
public ItemsController(ItemApplication itemApplication, GroupApplication groupApplication) { this.ItemApplication = itemApplication; this.GroupApplication = groupApplication; }
public void GetItem_MockedExternalServiceWith1ItemIDxxx_ReturnsItemIDxxx() { #region Arrange string itemId = "xxx"; const decimal price = 55; const string title = "Article Title"; const string largeDescription = "This is my large description"; const string url = "www.google.com"; const string attributeName = "CaracteristicaA"; const string attributeValue = "ValorDeCaracteristicaA"; const int soldQuantity = 5; const int availableQuantity = 10; var mockedItem = new ItemEntity { id = itemId, price = price, title = title, sold_quantity = soldQuantity, available_quantity = availableQuantity, pictures = new List <PictureEntity> { new PictureEntity { url = url } }, attributes = new List <ItemAttributeEntity> { new ItemAttributeEntity { name = attributeName, value_name = attributeValue } } }; var mockedLargeDescription = new ItemLargeDescriptionEntity { plain_text = largeDescription, date_created = DateTime.Now, last_updated = DateTime.Now, snapshot = new SnapshotEntity { url = "", height = 0, status = "", width = 0 }, text = "" }; var externalService = new Mock <IExternalService>(); string externalServiceResponseMessage = string.Empty; externalService .Setup(m => m.GetItemLargeDescription(itemId, ref externalServiceResponseMessage)) .Returns(mockedLargeDescription); externalService .Setup(m => m.GetItem(itemId, ref externalServiceResponseMessage)) .Returns(mockedItem); var loggerService = new Mock <ILoggerService>(); ItemApplication.MapperReset(); var applicationItem = new ItemApplication(externalService.Object, loggerService.Object); #endregion #region Act string responseMessage = string.Empty; var item = applicationItem.GetItem(itemId, ref responseMessage); #endregion #region Assert Assert.IsNotNull(item); Assert.AreEqual(price, item.Price); Assert.AreEqual(title, item.Title); Assert.AreEqual(url, item.PicturesUrl.First()); Assert.AreEqual(attributeName, item.Attributes.First().Item1); Assert.AreEqual(attributeValue, item.Attributes.First().Item2); Assert.AreEqual(availableQuantity, item.AvailableQuantity); Assert.AreEqual(soldQuantity, item.SoldQuantity); Assert.AreEqual(largeDescription, item.ItemLargeDescription); #endregion }
public void SearchItems_MockedExternalServiceWith2Bicicletas_ReturnsResultWith2Bicicletas() { #region Arrange const string filter = "bicicleta"; const int totalItemCount = 22; const string idItem1 = "bici1"; const string titleItem1 = "SuperBici1"; const decimal priceItem1 = 50; const string thumbnailItem1 = "www.google.com"; const bool freeShippingItem1 = true; const string idItem2 = "bici2"; const string titleItem2 = "SuperBici2"; const decimal priceItem2 = 14123; const string thumbnailItem2 = "www.facebook.com"; const bool freeShippingItem2 = false; var mockedExternalServiceResult = new SearchResultEntity { paging = new PagingEntity { total = totalItemCount }, results = new List <ItemResultEntity> { new ItemResultEntity { id = idItem1, title = titleItem1, price = priceItem1, thumbnail = thumbnailItem1, shipping = new ShippingEntity { free_shipping = freeShippingItem1 } }, new ItemResultEntity { id = idItem2, title = titleItem2, price = priceItem2, thumbnail = thumbnailItem2, shipping = new ShippingEntity { free_shipping = freeShippingItem2 } } } }; var externalService = new Mock <IExternalService>(); string externalServiceResponseMessage = string.Empty; externalService.Setup(m => m.SearchItems(filter, null, null, ref externalServiceResponseMessage)) .Returns(mockedExternalServiceResult); var loggerService = new Mock <ILoggerService>(); ItemApplication.MapperReset(); var applicationItem = new ItemApplication(externalService.Object, loggerService.Object); #endregion #region Act string responseMessage = string.Empty; var searchResult = applicationItem.SearchItems(filter, null, null, ref responseMessage); #endregion #region Assert Assert.AreEqual(2, searchResult.Results.Count); Assert.AreEqual(idItem1, searchResult.Results.Where(i => i.Id == idItem1).First().Id); Assert.AreEqual(titleItem1, searchResult.Results.Where(i => i.Id == idItem1).First().Title); Assert.AreEqual(priceItem1, searchResult.Results.Where(i => i.Id == idItem1).First().Price); Assert.AreEqual(thumbnailItem1, searchResult.Results.Where(i => i.Id == idItem1).First().Thumbnail); Assert.AreEqual(freeShippingItem1, searchResult.Results.Where(i => i.Id == idItem1).First().FreeShipping); Assert.AreEqual(idItem2, searchResult.Results.Where(i => i.Id == idItem2).First().Id); Assert.AreEqual(titleItem2, searchResult.Results.Where(i => i.Id == idItem2).First().Title); Assert.AreEqual(priceItem2, searchResult.Results.Where(i => i.Id == idItem2).First().Price); Assert.AreEqual(thumbnailItem2, searchResult.Results.Where(i => i.Id == idItem2).First().Thumbnail); Assert.AreEqual(freeShippingItem2, searchResult.Results.Where(i => i.Id == idItem2).First().FreeShipping); #endregion }
public GIVEN_application() { this.sut = new ItemApplication(this.commandBus, "https://www.google.com.py/#q=", this.contextFactory); }