//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()); }
//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"); }
//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); }
//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); }
//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); }
//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); }
//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); }
//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); }
//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); }
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(); }
//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); }
//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 ?? "" }); }
//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); }
//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); }
//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); }
//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); }
//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); }
//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); }
//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); }
//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); }
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); }
//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); }
//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); }
//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); }
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); }
//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); }
//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); }
//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); }
//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); }
//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); }