Exemplo n.º 1
0
        public void UpdateSubCategoryOfMainCategoryDescriptionSuccess()
        {
            var config     = new HttpConfiguration();
            var request    = new HttpRequestMessage(HttpMethod.Put, "http://localhost/api/user/44300");
            var route      = config.Routes.MapHttpRoute("Default", "api/{controller}/UpdateDescription/");
            var controller = new CategoryController
            {
                Request = request,
            };

            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;
            MainCategoryService.AddMainCategory("unit test", "unit test");
            SubCategoryService.AddSubCategory("unit test", "unit_test");
            SwapDbConnection db        = new SwapDbConnection();
            main_category    test_main = db.main_category.Where(x => x.name == "unit test").FirstOrDefault();
            sub_category     test_sub  = db.sub_category.Where(x => x.name == "unit test").FirstOrDefault();

            CategoryService.AddMainAndSubRelationship(test_main.main_id, test_sub.sub_id, "unit test", "unit test");
            Assert.AreEqual(controller.UpdateSubCategoryOfMainCategoryDescription(new MainAndSubRelationshipDTO()
            {
                main_id = test_main.main_id, sub_id = test_sub.sub_id, descrition = "test"
            }).StatusCode, HttpStatusCode.OK);
            delete_main_category.DeleteMainCategorySuccess();
            delete_sub_category.DeleteSubCategorySuccess();
        }
Exemplo n.º 2
0
        //Get businesses nearby and filtered by categories
        //Input: PointDTO, CategoriesIdsDTO, radius
        //Output: List of MapBusinessDTO
        public static List <MapBusinessDTO> GetFilteredBusinessesAround(PointDTO position, CategoriesIdsDTO ids, double radius)
        {
            SwapDbConnection      db = new SwapDbConnection();
            PointDTO              point;
            List <business>       businesses;
            List <MapBusinessDTO> filteredBusinesses = new List <MapBusinessDTO>();
            main_category         mainCategory       = db.main_category.FirstOrDefault(category => category.main_id == ids.mainId);
            string iconCategory;

            if (mainCategory == null)
            {
                return(filteredBusinesses);
            }
            point      = new PointDTO();
            businesses = db.businesses.Include(b => b.products).Where(b => b.is_active &&
                                                                      b.approve_by_admin &&
                                                                      b.place.r_place_sub_and_main_category.Any(r => r.main_id == ids.mainId &&
                                                                                                                ids.subIds.Any(id => r.sub_id == id))).ToList();
            iconCategory = mainCategory.google_value;

            foreach (business b in businesses)
            {
                point.lat = (double)b.place.latitude;
                point.lng = (double)b.place.longitude;
                if (PlaceService.GetDistance(point, position) <= radius)
                {
                    filteredBusinesses.Add(new MapBusinessDTO
                    {
                        closing_hours = b.closing_hours,
                        description   = b.place.description,
                        lat           = b.place.latitude,
                        lng           = b.place.longitude,
                        name          = b.place.name ?? "",
                        opening_hours = b.opening_hours,
                        place_id      = b.place_id,
                        rating        = b.rating,
                        settlement    = b.place.settlement ?? "",
                        street        = b.place.street ?? "",
                        street_number = b.place.street_number ?? "",
                        icon          = iconCategory ?? "",
                        products      = b.products.Where(p => p.is_active && p.discount_end_date >= DateTime.Now).Select(product => new productDTO
                        {
                            business_id         = product.business_id,
                            creation_date       = product.creation_date,
                            description         = product.description,
                            discount            = product.discount,
                            discount_end_date   = product.discount_end_date,
                            discount_start_date = product.discount_start_date,
                            is_active           = product.is_active,
                            name       = product.name,
                            price      = product.price,
                            product_id = product.product_id
                        }).ToList()
                    });
                }
            }


            return(filteredBusinesses);
        }
Exemplo n.º 3
0
        //get  main category by id
        public static main_category GetMainCategoryByid(string id)
        {
            SwapDbConnection db       = new SwapDbConnection();
            main_category    main_obj = db.main_category.Select(x => x)
                                        .FirstOrDefault(x => x.main_id == id);

            return(main_obj);
        }
        public void ChangeActiveMainCategorySuccess()
        {
            var config     = new HttpConfiguration();
            var request    = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/user/44300");
            var route      = config.Routes.MapHttpRoute("Default", "api/{controller}/AddMainCategory/");
            var controller = new MainCategoryController
            {
                Request = request,
            };

            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;
            SwapDbConnection db   = new SwapDbConnection();
            main_category    test = db.main_category.Where(x => x.name == "unit test").FirstOrDefault();

            Assert.AreEqual(controller.ChangeActiveMainCategory(test.main_id, true).StatusCode, HttpStatusCode.OK);
        }
Exemplo n.º 5
0
        //add relationship between main and sub
        public static MainAndSubRelationshipDTO AddMainAndSubRelationship(string main_id, string sub_name, string google_value, string descrition = null)
        {
            SwapDbConnection db           = new SwapDbConnection();
            sub_category     subCategory  = db.sub_category.FirstOrDefault(c => c.name == sub_name && c.google_value == google_value);
            main_category    mainCategory = db.main_category.FirstOrDefault(c => c.main_id == main_id);

            if (mainCategory == null)
            {
                throw new InvalidOperationException("there is a no main id as requested");
            }

            r_sub_and_main_category categoryOfMainCategory = db.r_sub_and_main_category.FirstOrDefault(c => c.main_id == main_id && c.sub_category.name == sub_name);

            if (categoryOfMainCategory != null)
            {
                throw new InvalidOperationException("there is an reletinship as this");
            }

            if (subCategory == null)
            {
                subCategory = SubCategoryService.AddSubCategory(sub_name, google_value);
            }

            r_sub_and_main_category r_main_sub_object = new r_sub_and_main_category()
            {
                sub_id        = subCategory.sub_id,
                main_id       = main_id,
                creation_date = DateTime.Now,
                is_active     = false,
                clicked       = 0,
                descrition    = descrition
            };

            db.r_sub_and_main_category.Add(r_main_sub_object);
            db.SaveChanges();
            return(new MainAndSubRelationshipDTO()
            {
                main_id = main_id,
                sub_id = subCategory.sub_id,
                descrition = descrition,
                is_active = false,
                clicked = 0,
                main_name = r_main_sub_object.main_category.name,
                sub_name = sub_name,
                google_value = subCategory.google_value
            });
        }
Exemplo n.º 6
0
        public void GetMainAndSubRelationshipTest()
        {
            var config     = new HttpConfiguration();
            var request    = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/user/44300");
            var route      = config.Routes.MapHttpRoute("Default", "api/{controller}/GetMainAndSubRelationship/{main_id}/{sub_id}");
            var controller = new CategoryController
            {
                Request = request,
            };

            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;
            SwapDbConnection db        = new SwapDbConnection();
            main_category    test_main = db.main_category.Where(x => x.name == "unit test").FirstOrDefault();
            sub_category     test_sub  = db.sub_category.Where(x => x.name == "unit test").FirstOrDefault();

            Assert.AreEqual(controller.GetMainAndSubRelationship(test_main.main_id).StatusCode, HttpStatusCode.OK);
        }
Exemplo n.º 7
0
        public void AddMainAndSubRelationshipBadRequest()
        {
            var config     = new HttpConfiguration();
            var request    = new HttpRequestMessage(HttpMethod.Post, "http://localhost/api/user/44300");
            var route      = config.Routes.MapHttpRoute("Default", "api/{controller}/AddMainAndSubRelationship");
            var controller = new CategoryController
            {
                Request = request,
            };

            controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;
            add_main_category.AddMainCategorySuccess();
            add_sub_category.AddSubCategorySuccess();
            SwapDbConnection db        = new SwapDbConnection();
            main_category    test_main = db.main_category.Where(x => x.name == "unit test").FirstOrDefault();

            Assert.AreEqual(controller.AddMainAndSubRelationship(new MainAndSubRelationshipDTO()
            {
                main_id = "123", sub_name = "unit_test", google_value = "unit test", descrition = "unit test"
            }).StatusCode, HttpStatusCode.BadRequest);
        }