Ejemplo n.º 1
0
        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
        }
Ejemplo n.º 2
0
        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());
        }
Ejemplo n.º 3
0
        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
        }
Ejemplo n.º 4
0
 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;
 }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
0
        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());
        }
Ejemplo n.º 9
0
        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());
        }
Ejemplo n.º 10
0
        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));
        }
Ejemplo n.º 12
0
    // 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;
                    }
                }
            }
        }
    }
Ejemplo n.º 13
0
        public async Task <ActionResult <PagedResponse <ItemResponseDto> > > GetItems([FromQuery] FilterParams filterParams, [FromQuery] PaginationParams paginationParams)
        {
            PagedResponse <ItemResponseDto> pagedResponse = await ItemApplication.GetAllItems(filterParams, paginationParams);

            return(Ok(pagedResponse));
        }
Ejemplo n.º 14
0
 public ItemsController(ItemApplication itemApplication,
                        GroupApplication groupApplication)
 {
     this.ItemApplication  = itemApplication;
     this.GroupApplication = groupApplication;
 }
Ejemplo n.º 15
0
        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
        }
Ejemplo n.º 16
0
        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);
 }