public IActionResult EditRestaurant(RestoBTO restoBTO)
        {
            if (!ModelState.IsValid)
            {
                return(View(restoBTO));
            }
            restoBTO.Cuisines = restoBTO.Cuisines.Where(x => x.Selected).ToList();
            restoBTO.Pictures = pictureUC.GetAllPicturesByRestaurantId(restoBTO.Id).ToList();


            var restaurantUC = new RestaurantUC(restoRepository);
            var result       = restaurantUC.UpdateRestaurant(restoBTO);

            if (result == null)
            {
                return(RedirectToAction("Error", new { errorMessage = "We can't update this restaurant, please contact support" }));
            }
            if (User.IsInRole("Administrators"))
            {
                return(RedirectToAction("GetAllRestaurantsAdmin"));
            }
            else
            {
                return(RedirectToAction("GetRestaurantsByRestaurantManager"));
            }
        }
        public IActionResult GetOpenRestaurantByDate(DateTime searchDate)
        {
            var restaurantUC = new RestaurantUC(restoRepository);
            var result       = restaurantUC.FindOpenRestaurantsByDate(searchDate);

            return(View("GetAllRestaurants", result));
        }
Пример #3
0
        public void FindOpenRestaurantsByDate_Should_Return_New_List_When_Any_Resto_Is_Open()
        {
            //Arrange
            var mock      = new Mock <IRestoRepository>();
            var schedules = new List <ScheduleDTO>();
            var schedule  = new ScheduleDTO
            {
                TimeOpen   = DateTime.Now,
                TimeClosed = DateTime.Now.AddHours(3),
                DayOfWeek  = (int)DateTime.Now.DayOfWeek
            };

            schedules.Add(schedule);
            mock.Setup(x => x.GetAll()).Returns(new List <RestoDTO>()
            {
                new RestoDTO {
                    City = "Bruxelles", Id = 1, Name = "R1", Schedules = new List <ScheduleDTO>()
                },
                new RestoDTO {
                    City = "Bruxelles", Id = 2, Name = "R2", Schedules = new List <ScheduleDTO>()
                },
                new RestoDTO {
                    City = "Liege", Id = 3, Name = "R3", Schedules = new List <ScheduleDTO>()
                },
            });
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.FindOpenRestaurantsByDate(schedule.TimeOpen).ToList();

            //Assert
            Assert.AreEqual(result.Count, 0);
        }
        public IActionResult DeleteRestaurant(int id)
        {
            var restaurantUC = new RestaurantUC(restoRepository);
            var resto        = restaurantUC.GetRestaurantById(id);

            if (resto == null)
            {
                return(RedirectToAction("Error", new { errorMessage = "Sorry! We don't find the restaurant with this Id" }));
            }
            else
            {
                try
                {
                    restaurantUC.DeleteRestaurant(id);
                }
                catch
                {
                    throw new Exception("A problem occured...");
                }
                if (User.IsInRole("Administrators"))
                {
                    return(RedirectToAction("GetAllRestaurantsAdmin"));
                }
                else
                {
                    return(RedirectToAction("GetRestaurantsByRestaurantManager"));
                }
            }
        }
        public IActionResult CreateRestaurant(RestoBTO restoBTO)
        {
            var count = restoBTO.Cuisines.Count(x => x.Selected);

            if (!ModelState.IsValid)
            {
                return(View(restoBTO));
            }
            restoBTO.Cuisines = restoBTO.Cuisines.Where(x => x.Selected).ToList();

            var restaurantUC = new RestaurantUC(restoRepository);

            if (restoBTO.UserManagerId == null)
            {
                restoBTO.UserManagerId = User.FindFirst(ClaimTypes.NameIdentifier).Value;
            }
            var result = restaurantUC.AddRestaurant(restoBTO);

            if (result == null)
            {
                return(RedirectToAction("Error", new { errorMessage = "We can't add this restaurant, please contact support" }));
            }

            if (User.IsInRole("Administrators"))
            {
                return(RedirectToAction("GetAllRestaurantsAdmin"));
            }
            else
            {
                return(RedirectToAction("GetRestaurantsByRestaurantManager"));
            }
        }
Пример #6
0
        public void GetAllRestaurants_Should_Return_Proper_Collection()
        {
            //Arrange
            var mock = new Mock <IRestoRepository>();

            mock.Setup(x => x.GetAll()).Returns(new List <RestoDTO>()
            {
                new RestoDTO {
                    City = "Bruxelles", Id = 1, Name = "R1"
                },
                new RestoDTO {
                    City = "Bruxelles", Id = 2, Name = "R2"
                },
                new RestoDTO {
                    City = "Liege", Id = 3, Name = "R3"
                },
            });
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.GetAllRestaurants().ToList();

            //Assert
            Assert.AreEqual(result.Count, 3);
            Assert.AreEqual(result[0].Id, 1);
            Assert.AreEqual(result[2].Name, "R3");
        }
Пример #7
0
        public void GetRestaurantsByRestaurantManager_Should_Return_Valid_Data()
        {
            //Arrange
            var mock = new Mock <IRestoRepository>();

            mock.Setup(x => x.GetRestaurantsByRestaurantManager("1")).Returns(new List <RestoDTO>()
            {
                new RestoDTO {
                    City = "Bruxelles", Id = 1, Name = "R1", UserManagerId = "1"
                },
                new RestoDTO {
                    City = "Liege", Id = 2, Name = "R2", UserManagerId = "1"
                },
            }
                                                                              );
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.GetRestaurantsByRestaurantManager("1").ToList();

            //Assert
            Assert.AreEqual(result[0].Id, 1);
            Assert.AreEqual(result[0].City, "Bruxelles");
            Assert.AreEqual(result[1].Name, "R2");
            Assert.AreEqual(result.Count, 2);
        }
Пример #8
0
        public IActionResult CreateBasket(DateTime arrivalDate)
        {
            basketUC = GetBasketUC();


            if (basketUC.shoppingMeals.Count() == 0)
            {
                return(RedirectToAction("Error", new { errorMessage = "Sorry, your basket is empty..." }));
            }
            if (!ModelState.IsValid)
            {
                return(View(basketUC));
            }
            var basketBTO = new BasketBTO();

            basketBTO.ArrivalDate = arrivalDate;

            RestaurantUC restoUC = new RestaurantUC(restoRepository);

            basketBTO.ShoppingMeals = basketUC.shoppingMeals
                                      .Select(x => x.ShoppingMealDomainToBTO())
                                      .ToList();

            basketBTO.UserId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value ?? null;

            if (basketBTO.UserId == null)
            {
                return(RedirectToAction("Error", new { errorMessage = "You have to be logged to complete your order" }));
            }

            if (!restoUC.IsOpen(basketUC.restoId, basketBTO.ArrivalDate))
            {
                return(RedirectToAction("Error", new { errorMessage = "The restaurant will be closed at this hour" }));
            }
            var result = basketUC.AddBasket(basketBTO);

            basketUC.ClearShoppingMeals();
            if (basketUC.shoppingMeals.Count == 0)
            {
                HttpContext.Session.Clear();
            }
            if (result == null)
            {
                return(RedirectToAction("Error", new { errorMessage = "We can't add this basket, please contact support" }));
            }
            string email = restoUC.FindRestoMailByRestoId(basketUC.restoId);

            if (!String.IsNullOrEmpty(email))
            {
                _emailSender.SendEmailAsync(email,
                                            "You have a new order",
                                            "See your orders by clicking here");
            }

            return(View(result));
        }
Пример #9
0
        public void FindRestoMailByRestoId_Should_Return_Null_When_Wrong_Id()
        {
            //Arrange
            var mock = new Mock <IRestoRepository>();

            mock.Setup(x => x.FindRestoMailByRestoId(1)).Returns("*****@*****.**");
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.FindRestoMailByRestoId(-1);

            //Assert
            Assert.IsNull(result);
        }
Пример #10
0
        public void FindRestoMailByRestoId_Should_Return_Valid_Data()
        {
            //Arrange
            var mock = new Mock <IRestoRepository>();

            mock.Setup(x => x.FindRestoMailByRestoId(1)).Returns("*****@*****.**");
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.FindRestoMailByRestoId(1);

            //Assert
            Assert.AreEqual("*****@*****.**", result);
        }
        public IActionResult GetAllRestaurantsAdmin()
        {
            var restaurantUC = new RestaurantUC(restoRepository);
            var result       = restaurantUC.GetAllRestaurants();

            if (result != null || result.ToList().Count == 0)
            {
                return(View(result));
            }
            else
            {
                return(RedirectToAction("", "Sorry! There is any restaurant in our database"));
            }
        }
        public IActionResult RestaurantDetails(int id)
        {
            var restaurantUC = new RestaurantUC(restoRepository);
            var result       = restaurantUC.GetRestaurantById(id);

            if (result != null)
            {
                return(View(result));
            }
            else
            {
                return(RedirectToAction("Error", new { errorMessage = "Sorry! We don't find this restaurant" }));
            }
        }
        //Get restaurant by city
        public IActionResult GetRestaurantByCity(string city)
        {
            var restaurantUC = new RestaurantUC(restoRepository);
            var result       = restaurantUC.FindRestaurantByCity(city);

            if (result.ToList().Count != 0)
            {
                return(View(result));
            }
            else
            {
                return(RedirectToAction("Error", new { errorMessage = "Sorry! We don't find any restaurant with this city" }));
            }
        }
Пример #14
0
        public void GetAllRestaurantsByCuisineId_Should_Return_New_List_When_Not_Found()
        {
            //Arrange
            var mock = new Mock <IRestoRepository>();

            mock.Setup(x => x.GetAllByCuisineId(1)).Returns(new List <RestoDTO>());
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.GetAllRestaurantsByCuisineId(1).ToList();

            //Assert
            Assert.AreEqual(result.Count, 0);
        }
        public IActionResult GetRestaurantByCuisine(int id)
        {
            var restaurantUC = new RestaurantUC(restoRepository);
            var result       = restaurantUC.GetAllRestaurantsByCuisineId(id);

            if (result.ToList().Count != 0)
            {
                return(View("GetAllRestaurants", result));
            }
            else
            {
                return(RedirectToAction("Error", new { errorMessage = "Sorry! We don't find any restaurant with this cuisine" }));
            }
        }
        public IActionResult GetRestaurantsByRestaurantManager()
        {
            var restaurantUC = new RestaurantUC(restoRepository);
            var result       = restaurantUC.GetRestaurantsByRestaurantManager(User.FindFirst(ClaimTypes.NameIdentifier).Value).ToList();

            if (result.ToList().Count != 0)
            {
                return(View(result));
            }
            else
            {
                return(RedirectToAction("Error", new { errorMessage = "Sorry! You don't have any restaurant" }));
            }
        }
Пример #17
0
        public void GetRestaurantById_Should_Return_Null_When_Not_Found()
        {
            //Arrange
            var mock = new Mock <IRestoRepository>();

            mock.Setup(x => x.GetById(25));
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.GetRestaurantById(25);

            //Assert
            Assert.AreEqual(null, result);
            Assert.IsNull(result);
        }
Пример #18
0
        public IActionResult GetBasketsByRestoId(int restoId)
        {
            var          result  = basketUC.GetBasketsByRestoId(restoId).ToList();
            RestaurantUC restoUC = new RestaurantUC(restoRepository);

            foreach (var item in result)
            {
                foreach (var shoppingMeal in item.ShoppingMeals)
                {
                    shoppingMeal.Meal.MealType            = mealTypeUC.GetMealTypeById(shoppingMeal.Meal.MealTypeID);
                    shoppingMeal.Meal.MealType.Restaurant = restoUC.GetRestaurantById(shoppingMeal.Meal.MealType.RestaurantId);
                }
            }
            return(View(result.OrderBy(x => x.ArrivalDate).ToList()));
        }
Пример #19
0
        public IActionResult GetBasketsByUserId()
        {
            var          result  = basketUC.GetBasketsByUserId(User.FindFirst(ClaimTypes.NameIdentifier).Value).ToList();
            RestaurantUC restoUC = new RestaurantUC(restoRepository);

            foreach (var item in result)
            {
                foreach (var shoppingMeal in item.ShoppingMeals)
                {
                    shoppingMeal.Meal.MealType            = mealTypeUC.GetMealTypeById(shoppingMeal.Meal.MealTypeID);
                    shoppingMeal.Meal.MealType.Restaurant = restoUC.GetRestaurantById(shoppingMeal.Meal.MealType.RestaurantId);
                }
            }
            result = result.OrderBy(x => x.ArrivalDate).ToList();
            return(View(result));
        }
Пример #20
0
        public void FindRestaurantByCity_Should_Return_Empty_List_If__There_Is_No_City()
        {
            //Arrange
            var mock = new Mock <IRestoRepository>();

            mock.Setup(x => x.FindByCity("Bruxelles")).Returns(new List <RestoDTO>()
            {
            });
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.FindRestaurantByCity("Bruxelles").ToList();

            //Assert
            Assert.AreEqual(result.Count, 0);
        }
Пример #21
0
        public void IsOpen_Should_Return_True_When_Valid_Data()
        {
            //Arrange
            var mock = new Mock <IRestoRepository>();
            var date = DateTime.Now;

            date = date.AddMonths(1);
            mock.Setup(x => x.RestaurantIsOpen(1, date)).Returns(true);
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.IsOpen(1, date);

            //Assert
            Assert.IsTrue(result);
        }
Пример #22
0
        public void IsOpen_Should_Return_False_When_ArrivalDate_Is_Before_Now()
        {
            //Arrange
            var mock = new Mock <IRestoRepository>();
            var date = DateTime.Now;

            date = date.AddMonths(-1);
            mock.Setup(x => x.RestaurantIsOpen(1, date)).Returns(true);
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.IsOpen(1, date);

            //Assert
            Assert.IsFalse(result);
        }
Пример #23
0
        public void DeleteRestaurant_Should_Work()
        {
            //Arrange
            var mock    = new Mock <IRestoRepository>();
            var myResto = new RestoDTO {
                City = "Bruxelles", Id = 1, Name = "R1"
            };

            mock.Setup(x => x.Delete(1));
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            target.DeleteRestaurant(1);

            //Assert
            mock.Verify(u => u.Delete(It.IsAny <int>()), Times.Once());
        }
        public void UpdateRestaurant_Should_Return_Null_If_No_Result_Found_In_Db()
        {
            //Arrange
            var mock    = new Mock <IRestoRepository>();
            var myResto = new RestoDTO {
                City = "Bruxelles", Id = 1, Name = "R1"
            };

            mock.Setup(x => x.Update(myResto));
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.UpdateRestaurant(new RestoBTO {
                City = "Bruxelles", Id = 1, Name = "R1"
            });

            //Assert
            Assert.IsNull(result);
        }
Пример #25
0
        public void GetRestaurantById_Should_Return_Valid_Data()
        {
            //Arrange
            var mock = new Mock <IRestoRepository>();

            mock.Setup(x => x.GetById(1)).Returns(
                new RestoDTO {
                City = "Bruxelles", Id = 1, Name = "R1"
            }
                );
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.GetRestaurantById(1);

            //Assert
            Assert.AreEqual(result.Id, 1);
            Assert.AreEqual(result.City, "Bruxelles");
            Assert.AreEqual(result.Name, "R1");
        }
        public void CreateRestaurant_Should_Return_Null_If_Dto_Is_Null()
        {
            //Arrange
            var mock    = new Mock <IRestoRepository>();
            var myResto = new RestoDTO {
                City = "Bruxelles", Id = 1, Name = "R1"
            };

            mock.Setup(x => x.Create(myResto)).Returns(
                new RestoDTO {
                City = "Bruxelles", Id = 1, Name = "R1"
            }
                );
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.AddRestaurant(null);

            //Assert
            Assert.IsNull(result);
        }
        public IActionResult EditRestaurant(int id)
        {
            var restaurantUC = new RestaurantUC(restoRepository);
            var result       = restaurantUC.GetRestaurantById(id);

            if (result.Pictures.Count == 0)
            {
                result.Pictures = new List <PictureBTO>().DefaultIfEmpty().ToList();
            }
            result.Cuisines = cuisineUC.GetAllCuisinesByRestaurantId(result.Id).ToList();

            //var cuisinesChecked =
            if (result != null)
            {
                return(View(result));
            }
            else
            {
                return(RedirectToAction("Error", new { errorMessage = "Sorry! We don't find the restaurant with this Id" }));
            }
        }
        public void CreateRestaurant_Should_Return_Valid_Data()
        {
            //Arrange
            var mock    = new Mock <IRestoRepository>();
            var myResto = new RestoDTO {
                City = "Bruxelles", Id = 1, Name = "R1"
            };

            mock.Setup(x => x.Create(myResto)).Returns(
                new RestoDTO {
                City = "Bruxelles", Id = 1, Name = "R1"
            }
                );
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.AddRestaurant(new RestoBTO {
                City = "Bruxelles", Id = 1, Name = "R1"
            });

            //Assert
            mock.Verify(u => u.Create(It.IsAny <RestoDTO>()), Times.Once());
        }
Пример #29
0
        public void GetRestaurantsByRestaurantManager_Should_Return_Empty_List_If_Param_Null()
        {
            //Arrange
            var mock = new Mock <IRestoRepository>();

            mock.Setup(x => x.GetRestaurantsByRestaurantManager("1")).Returns(new List <RestoDTO>()
            {
                new RestoDTO {
                    City = "Bruxelles", Id = 1, Name = "R1", UserManagerId = "1"
                },
                new RestoDTO {
                    City = "Liege", Id = 2, Name = "R2", UserManagerId = "1"
                },
            }
                                                                              );
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.GetRestaurantsByRestaurantManager("").ToList();

            //Assert
            Assert.AreEqual(result.Count, 0);
        }
Пример #30
0
        public void FindRestaurantByCity_Should_Return_Proper_Collection()
        {
            //Arrange
            var mock = new Mock <IRestoRepository>();

            mock.Setup(x => x.FindByCity("Bruxelles")).Returns(new List <RestoDTO>()
            {
                new RestoDTO {
                    City = "Bruxelles", Id = 1, Name = "R1"
                },
                new RestoDTO {
                    City = "Bruxelles", Id = 2, Name = "R2"
                },
            });
            RestaurantUC target = new RestaurantUC(mock.Object);

            //Act
            var result = target.FindRestaurantByCity("Bruxelles").ToList();

            //Assert
            Assert.AreEqual(result.Count, 2);
            Assert.AreEqual(result[0].Id, 1);
            Assert.AreEqual(result[0].Name, "R1");
        }