Пример #1
0
        //Get all businesses of business owner
        //Input: business_owner_id
        //Output: List of bussinessDTO
        public static List <bussinessDTO> GetAllBusinesses(string business_owner_id)
        {
            SwapDbConnection db = new SwapDbConnection();

            return(db.businesses.Where(business => business.business_owner_id == business_owner_id).Select(business => new bussinessDTO
            {
                place_id = business.place_id,
                business_owner_id = business.business_owner_id,
                is_active = business.is_active,
                rating = business.rating,
                opening_hours = business.opening_hours,
                closing_hours = business.closing_hours,
                approve_by_admin = business.approve_by_admin,
                place_info = new placeDTO
                {
                    name = business.place.name ?? "",
                    description = business.place.description ?? "",
                    country = business.place.country ?? "",
                    post_code = business.place.post_code ?? "",
                    settlement = business.place.settlement ?? "",
                    state = business.place.state ?? "",
                    street = business.place.street ?? "",
                    street_number = business.place.street_number ?? ""
                }
            }
                                                                                                           ).ToList());
        }
Пример #2
0
        //Update product
        //Input: productDTO, clientId
        //Output: result in string
        public static string updateProduct(productDTO product_req, string clientId)
        {
            SwapDbConnection db       = new SwapDbConnection();
            product          sameName = db.products.FirstOrDefault(p => p.name == product_req.name && p.business_id == product_req.business_id &&
                                                                   p.business.business_owner_id == clientId && p.product_id != product_req.product_id);

            if (sameName != null)
            {
                return("same");
            }
            product product = db.products.FirstOrDefault(p => p.business_id == product_req.business_id && p.product_id == product_req.product_id && p.business.business_owner_id == clientId);

            if (product == null)
            {
                return("notExists");
            }
            product.price               = product_req.price;
            product.name                = product_req.name;
            product.description         = product_req.description;
            product.discount            = product_req.discount;
            product.discount_end_date   = product_req.discount_end_date;
            product.discount_start_date = product_req.discount_start_date;
            db.SaveChanges();
            return("ok");
        }
Пример #3
0
        //Local register
        //Input: registerDTO
        //Output: clientId
        public static string registerClientLocal(registerDTO body)
        {
            SwapDbConnection db     = new SwapDbConnection();
            client           client = db.clients.FirstOrDefault(c => c.email == body.email && (c.platform == "local"));
            string           id     = "";

            if (client == null)
            {
                id = IdService.generateID("client");
                HashSalt hs = HashSalt.GenerateSaltedHash(body.password);

                client new_client = new client()
                {
                    client_id     = id,
                    email         = body.email,
                    birthday_date = body.birthday,
                    creation_date = DateTime.Now,
                    first_name    = body.first_name,
                    last_login    = DateTime.Now,
                    last_name     = body.last_name,
                    phone         = body.phone,
                    sex           = body.sex,
                    password      = hs.Hash,
                    salt          = hs.Salt,
                    platform      = "local"
                };

                db.clients.Add(new_client);
                db.SaveChanges();
            }
            return(id);
        }
Пример #4
0
        //Get events nearby
        //Input: PointDTO, radius
        //Output: List of MapEventDTO
        public static List <MapEventDTO> GetEvents(PointDTO position, double radius)
        {
            SwapDbConnection   db             = new SwapDbConnection();
            PointDTO           point          = new PointDTO();
            List <Event>       Allevents      = db.Events.Where(e => e.end_date > DateTime.Now).ToList();
            List <MapEventDTO> FilteredEvents = new List <MapEventDTO>();

            foreach (Event e in Allevents)
            {
                point.lat = (double)e.place.latitude;
                point.lng = (double)e.place.longitude;
                if (PlaceService.GetDistance(point, position) <= radius)
                {
                    FilteredEvents.Add(new MapEventDTO
                    {
                        description   = e.place.description ?? "",
                        end_date      = e.end_date,
                        name          = e.place.name ?? "",
                        place_id      = e.place_id,
                        price         = e.price,
                        start_date    = e.start_date,
                        lat           = e.place.latitude,
                        lng           = e.place.longitude,
                        settlement    = e.place.settlement ?? "",
                        street        = e.place.street ?? "",
                        street_number = e.place.street_number ?? ""
                    });
                }
            }

            return(FilteredEvents);
        }
Пример #5
0
        //Change user role
        //Input: userId, currentRole, newRole
        //Output: List of clientInfoDTO
        public static bool ChangeRole(string id, string currentRole, string newRole)
        {
            SwapDbConnection db      = new SwapDbConnection();
            client           client  = db.clients.FirstOrDefault(c => c.client_id == id);
            bool             success = false;

            if (client == null)
            {
                return(success);
            }

            switch (newRole)
            {
            case "admin":
                success = ChangeRoleToAdmin(currentRole, client);
                break;

            case "business":
                success = ChangeRoleToBussinesOwner(currentRole, client, db);
                break;

            case "client":
                success = ChangeRoleToClient(currentRole, client.client_id, db);
                break;

            default:
                break;
            }
            if (success)
            {
                db.SaveChanges();
            }

            return(success);
        }
Пример #6
0
        //Google register
        //Input: loginDTO
        //Output: client
        public static client registerClientgoogle(loginDTO body)
        {
            SwapDbConnection db     = new SwapDbConnection();
            client           client = db.clients.FirstOrDefault(u => u.email == body.email);

            if (client == null)
            {
                client = new client
                {
                    client_id     = body.user_id,
                    email         = body.email,
                    creation_date = DateTime.Now,
                    first_name    = body.first_name,
                    last_login    = DateTime.Now,
                    last_name     = body.last_name,
                    password      = "",
                    phone         = "",
                    sex           = "",
                    platform      = "google"
                };
                db.clients.Add(client);
            }

            client.last_login = DateTime.Now;
            db.SaveChanges();

            return(client);
        }
Пример #7
0
        //Not in used
        public static string AddPlace(placeDTO place)
        {
            SwapDbConnection db = new SwapDbConnection();

            if (db.places.FirstOrDefault(p => p.latitude == place.latitude && p.longitude == place.longitude) != null)
            {
                return(null);
            }

            place place_obj = new place()
            {
                place_id      = place.place_id,
                creation_date = DateTime.Now,
                latitude      = place.latitude,
                description   = place.description,
                state         = place.state,
                settlement    = place.settlement,
                name          = place.name,
                longitude     = place.longitude,
                country       = place.country,
                street        = place.street,
                street_number = place.street_number,
                post_code     = place.post_code,
            };

            db.places.Add(place_obj);
            db.SaveChanges();
            return(place.place_id);
        }
Пример #8
0
        //Get all users
        //Input: void
        //Output: List of clientInfoDTO
        public static List <clientInfoDTO> GetAllUsers(bool test = false)
        {
            SwapDbConnection db = new SwapDbConnection();
            int count           = db.clients.Count();

            if (count == 0 || test)
            {
                return(null);
            }
            List <clientInfoDTO> users = db.clients.Select(client => new clientInfoDTO()
            {
                client_id     = client.client_id,
                first_name    = client.first_name,
                last_name     = client.last_name,
                birthday_date = client.birthday_date,
                email         = client.email,
                sex           = client.sex,
                last_login    = client.last_login,
                phone         = client.phone,
                actor         = client.BusinessOwner != null ? (client.BusinessOwner.admin != null ? "admin" : "business") : "client",
                request       = client.business_owner_request ?? false,
                platform      = client.platform
            }).ToList();

            return(users);
        }
Пример #9
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);
        }
Пример #10
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();
        }
Пример #11
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);
        }
Пример #12
0
        //Add new event
        //Input: NewEventDTO
        //Output: EventDTO
        static public EventDTO AddEvent(NewEventDTO eventToAdd)
        {
            SwapDbConnection db = new SwapDbConnection();
            Event            myEvent;
            place            place = db.places.FirstOrDefault(p => p.place_id == eventToAdd.place.place_id);

            if (place != null)
            {
                if (place.business != null || place.Event != null)
                {
                    return(null);
                }
                place.name        = eventToAdd.place.name;
                place.description = eventToAdd.place.description;
            }

            myEvent = new Event
            {
                end_date   = eventToAdd.end_date,
                start_date = eventToAdd.start_date,
                place_id   = eventToAdd.place.place_id,
                price      = eventToAdd.price,
                place      = place ?? new place
                {
                    place_id      = eventToAdd.place.place_id,
                    country       = eventToAdd.place.country ?? "",
                    creation_date = DateTime.Now,
                    description   = eventToAdd.place.description,
                    name          = eventToAdd.place.name,
                    post_code     = eventToAdd.place.post_code,
                    settlement    = eventToAdd.place.settlement,
                    state         = eventToAdd.place.state,
                    street_number = eventToAdd.place.street_number ?? "",
                    street        = eventToAdd.place.street,
                    latitude      = eventToAdd.place.latitude,
                    longitude     = eventToAdd.place.longitude,
                }
            };
            db.Events.Add(myEvent);
            db.SaveChanges();

            return(new EventDTO
            {
                country = myEvent.place.country ?? "",
                description = myEvent.place.description ?? "",
                end_date = myEvent.end_date,
                name = myEvent.place.name ?? "",
                place_id = myEvent.place_id,
                post_code = myEvent.place.post_code ?? "",
                price = myEvent.price,
                settlement = myEvent.place.settlement ?? "",
                start_date = myEvent.start_date,
                state = myEvent.place.state ?? "",
                street = myEvent.place.street ?? "",
                street_number = myEvent.place.street_number ?? ""
            });
        }
Пример #13
0
        //google_value
        /******************************************************************************************/
        //get all google value
        public virtual List <googleValueDto> GetAllGoogleValue()
        {
            SwapDbConnection      db        = new SwapDbConnection();
            List <googleValueDto> googleDto = db.google_value.Select(x => new googleValueDto()
            {
                google_id = x.google_value_id, value = x.value
            }).ToList();

            return(googleDto);
        }
Пример #14
0
        //get  google value by id
        public static googleValueDto GetGoogleValueByid(string id)
        {
            SwapDbConnection db        = new SwapDbConnection();
            googleValueDto   googleDto = db.google_value
                                         .Select(x => new googleValueDto()
            {
                google_id = x.google_value_id, value = x.value
            })
                                         .FirstOrDefault(x => x.google_id == id);

            return(googleDto);
        }
Пример #15
0
        //Not in used
        public static bool Editplace(placeDTO place)
        {
            SwapDbConnection db        = new SwapDbConnection();
            place            place_obj = db.places.FirstOrDefault(p => p.place_id == place.place_id);

            if (place_obj == null)
            {
                return(false);
            }
            if (place.longitude != 0)
            {
                place_obj.longitude = place.longitude;
            }
            if (place.latitude != 0)
            {
                place_obj.latitude = place.latitude;
            }
            if (place.description != null)
            {
                place_obj.description = place.description;
            }
            if (place.state != null)
            {
                place_obj.state = place.state;
            }
            if (place.name != null)
            {
                place_obj.name = place.name;
            }
            if (place.settlement != null)
            {
                place_obj.settlement = place.settlement;
            }
            if (place.post_code != null)
            {
                place_obj.post_code = place.post_code;
            }
            if (place.street != null)
            {
                place_obj.street = place.street;
            }
            if (place.street_number != null)
            {
                place_obj.street_number = place.street_number;
            }
            if (place.country != null)
            {
                place_obj.country = place.country;
            }
            db.SaveChanges();
            return(true);
        }
Пример #16
0
        //Update status subcategory of main category
        //Input: main_id, sub_id, is_active
        //Output: boolean if succeed or not
        public static bool UpdatStatusIsActive(string main_id, string sub_id, bool is_active)
        {
            SwapDbConnection        db = new SwapDbConnection();
            r_sub_and_main_category reletionship_sub_and_main_category = db.r_sub_and_main_category.FirstOrDefault(c => c.main_id == main_id && c.sub_id == sub_id);

            if (reletionship_sub_and_main_category == null)
            {
                return(false);
            }
            reletionship_sub_and_main_category.is_active = is_active;
            db.SaveChanges();
            return(true);
        }
Пример #17
0
        //Update description subcategory of main category
        //Input: main_id, sub_id, description
        //Output: boolean if succeed or not
        public static bool UpdateDescription(string main_id, string sub_id, string description)
        {
            SwapDbConnection        db = new SwapDbConnection();
            r_sub_and_main_category reletionship_sub_and_main_category = db.r_sub_and_main_category.FirstOrDefault(c => c.main_id == main_id && c.sub_id == sub_id);

            if (reletionship_sub_and_main_category == null)
            {
                return(false);
            }
            reletionship_sub_and_main_category.descrition = description;
            db.SaveChanges();
            return(true);
        }
Пример #18
0
        //Not in used
        public static bool DeleteAdmin(string client_id)
        {
            SwapDbConnection db    = new SwapDbConnection();
            admin            admin = db.admins.Where(c => c.admin_id == client_id).FirstOrDefault();

            if (admin != null)
            {
                db.admins.Remove(admin);
                db.SaveChanges();
                return(true);
            }
            return(false);
        }
Пример #19
0
        //Delete businesses
        //Input: business_owner_id, place_id
        //Output: boolean if succeed or not
        public static bool DeleteBusiness(string business_owner_id, string place_id)
        {
            SwapDbConnection db       = new SwapDbConnection();
            business         Business = db.businesses.FirstOrDefault(b => b.business_owner_id == business_owner_id && b.place_id == place_id);

            if (Business != null)
            {
                db.businesses.Remove(Business);
                db.SaveChanges();
                return(true);
            }
            return(false);
        }
Пример #20
0
        //Not in used
        public static bool DeletePlace(string place_id)
        {
            SwapDbConnection db        = new SwapDbConnection();
            place            place_obj = db.places.Where(x => x.place_id == place_id).FirstOrDefault();

            if (place_obj == null)
            {
                return(false);
            }
            db.places.Remove(place_obj);
            db.SaveChanges();
            return(true);
        }
Пример #21
0
        public static bool UpdateClickesForReletionship(string main_id, string sub_id, int clickes)
        {
            SwapDbConnection        db = new SwapDbConnection();
            r_sub_and_main_category reletionship_sub_and_main_category = db.r_sub_and_main_category.FirstOrDefault(c => c.main_id == main_id && c.sub_id == sub_id);

            if (reletionship_sub_and_main_category == null)
            {
                return(false);
            }
            reletionship_sub_and_main_category.clicked = clickes;
            db.SaveChanges();
            return(true);
        }
Пример #22
0
        //remove relationship between google value and category
        public static bool RemoveMainAndSubRelationship(string main_id, string sub_id)
        {
            SwapDbConnection        db = new SwapDbConnection();
            r_sub_and_main_category reletionship_sub_and_main_category = db.r_sub_and_main_category.FirstOrDefault(c => c.main_id == main_id && c.sub_id == sub_id);

            if (reletionship_sub_and_main_category == null)
            {
                return(false);
            }
            db.r_sub_and_main_category.Remove(reletionship_sub_and_main_category);
            db.SaveChanges();
            return(true);
        }
Пример #23
0
        //Delete event
        //Input: eventId
        //Output: list of EventDTO
        public static bool DeleteEvent(string id)
        {
            SwapDbConnection db      = new SwapDbConnection();
            Event            myEvent = db.Events.FirstOrDefault(e => e.place_id == id);

            if (myEvent == null)
            {
                return(false);
            }
            db.Events.Remove(myEvent);
            db.SaveChanges();
            return(true);
        }
Пример #24
0
        //Edit activity of businesses
        //Input: placeId, userId, isActive
        //Output: boolean if succeed or not
        public static bool ChangeActiveBusiness(string placeId, string userId, bool isActive)
        {
            SwapDbConnection db = new SwapDbConnection();
            business         business_to_edit = db.businesses.FirstOrDefault(b => b.place_id == placeId && b.business_owner_id == userId);

            if (business_to_edit == null)
            {
                return(false);
            }
            business_to_edit.is_active = isActive;
            db.SaveChanges();
            return(true);
        }
Пример #25
0
        public static bool deleteProduct(string business_id, string product_id, string clientId)
        {
            SwapDbConnection db          = new SwapDbConnection();
            product          product_obj = db.products.FirstOrDefault(x => x.business_id == business_id && x.product_id == product_id && x.business.business_owner_id == clientId);

            if (product_obj == null)
            {
                return(false);
            }
            db.products.Remove(product_obj);
            db.SaveChanges();
            return(true);
        }
Пример #26
0
        //add a google_value object to db
        public static bool deleteGoogleValue(string id)
        {
            SwapDbConnection db         = new SwapDbConnection();
            google_value     google_obj = db.google_value.Where(x => x.google_value_id == id).FirstOrDefault();

            if (google_obj == null)
            {
                return(false);
            }
            db.google_value.Remove(google_obj);
            db.SaveChanges();
            return(true);
        }
Пример #27
0
        //add a google_value object to db
        public static google_value AddGoogleValue(string value)
        {
            SwapDbConnection db         = new SwapDbConnection();
            google_value     google_obj = new google_value()
            {
                google_value_id = IdService.generateID("google_value_id"),
                value           = value
            };

            db.google_value.Add(google_obj);
            db.SaveChanges();
            return(google_obj);
        }
Пример #28
0
        //Edit event description
        //Input: DescriptionEventDTO
        //Output: boolean result if the operation is successful
        public static bool EditDescriptionEvent(DescriptionEventDTO eventToEdit)
        {
            SwapDbConnection db      = new SwapDbConnection();
            Event            myEvent = db.Events.FirstOrDefault(e => e.place_id == eventToEdit.place_id);

            if (myEvent == null)
            {
                return(false);
            }
            myEvent.place.description = eventToEdit.description;
            db.SaveChanges();

            return(true);
        }
Пример #29
0
        //Delete user
        //Input: userId
        //Output: boolean result if the operation is successful
        public static bool DeleteUser(string id)
        {
            SwapDbConnection db     = new SwapDbConnection();
            client           client = db.clients.FirstOrDefault(c => c.client_id == id);

            if (client == null)
            {
                return(false);
            }

            db.clients.Remove(client);
            db.SaveChanges();
            return(true);
        }
Пример #30
0
        //Edit event
        //Input: EditEventDTO
        //Output: boolean result if the operation is successful
        public static bool EditEvent(EditEventDTO eventToEdit)
        {
            SwapDbConnection db      = new SwapDbConnection();
            Event            myEvent = db.Events.FirstOrDefault(e => e.place_id == eventToEdit.place_id);

            if (myEvent == null)
            {
                return(false);
            }
            myEvent.price      = eventToEdit.price;
            myEvent.place.name = eventToEdit.name;
            db.SaveChanges();
            return(true);
        }