//Create search public static WebResult <SearchDTO> Create(SearchDTO searchDTO, string passwordUser) { using (ProjectEntities db = new ProjectEntities()) { searchDTO.dateEnd = searchDTO.dateEnd.Value.AddDays(1); searchDTO.dateStart = searchDTO.dateStart.Value.AddDays(1); searchDTO.status = CheckStatus(searchDTO); try { searchDTO.codeUser = db.Users.FirstOrDefault(f => f.passwordUser == passwordUser).codeUser; db.Searches.Add(SearchCast.GetSearch(searchDTO)); db.SaveChanges(); return(new WebResult <SearchDTO> { Message = "יצירת חיפוש בוצעה בהצלחה", Status = true, Value = searchDTO }); } catch (Exception e) { return(new WebResult <SearchDTO>() { Message = e.Message, Status = false, Value = null }); } } }
//Delete search- status changes to 2 public static WebResult <SearchDTO> Delete(int code) { using (ProjectEntities db = new ProjectEntities()) { Search search = db.Searches.Find(code); if (search == null) { return new WebResult <SearchDTO> { Message = "לא נמצא חיפוש זה", Status = false, Value = null } } ; search.status = (int)EStatus.Deleted; db.SaveChanges(); return(new WebResult <SearchDTO> { Message = "המחיקה בוצעה בהצלחה", Status = true, Value = SearchCast.GetSearchDTO(search) }); }; }
public static WebResult <List <SearchDetailsForUser> > SearchByStatus(string passwordUser, EStatus status) { using (ProjectEntities db = new ProjectEntities()) { User CurrentUser = db.Users.FirstOrDefault(f => f.passwordUser == passwordUser); List <SearchDetailsForUser> searchesForUser = new List <SearchDetailsForUser>(); var searches = SearchCast.GetSearchesDTO(db.Searches.ToList()); foreach (var search in searches) { if (search.codeUser == CurrentUser.codeUser && search.status == status) { searchesForUser.Add(new SearchDetailsForUser() { CodeSearch = search.codeSearch, NameProduct = search.nameProduct, nameCategory = db.Categories.First(f => f.codeCategory == search.codeCategory).nameCategory, Status = search.status, nameShop = search.codeShop == null ? "" : db.Shops.First(f => f.codeShop == search.codeShop).nameShop }); } } searchesForUser.Reverse(); return(new WebResult <List <SearchDetailsForUser> > { Message = "חיפושי המשתמש נשלחו בהצלחה", Value = searchesForUser, Status = true }); } }
//Search is found- user bought the product public static WebResult <SearchDTO> Found(int codeSearch, string mailShop) { using (ProjectEntities db = new ProjectEntities()) { Search search = db.Searches.Find(codeSearch); if (search == null) { return new WebResult <SearchDTO> { Message = "לא נמצא חיפוש זה במאגר", Status = false, Value = null } } ; search.status = (int)EStatus.Found; search.codeShop = db.Shops.FirstOrDefault(f => f.mailShop == mailShop).codeShop; db.SaveChanges(); return(new WebResult <SearchDTO> { Message = "החיפוש נמצא בהצלחה", Status = true, Value = SearchCast.GetSearchDTO(search) }); } }
// הפונקציה מביאה לחנות את כל החיפושים שנמצאו אצלה public static WebResult <List <SearchDTO> > getSearchesForShop(int codeShop) { //בדיקת אבטחה... if (codeShop != (HttpContext.Current.Session["Shop"] as Shop).codeShop) { return new WebResult <List <SearchDTO> > { Message = "שגיאת אבטחה, חנות לא תואמת", Value = null, Status = false } } ; List <SearchDTO> searchDTOs = new List <SearchDTO>(); foreach (var item in db.Searches) { if (item.status == 1 && item.codeShop == (HttpContext.Current.Session["Shop"] as Shop).codeShop) { searchDTOs.Add(SearchCast.GetSearchDTO(item)); } } return(new WebResult <List <SearchDTO> > { Message = "רשימת החיפושים לחנות נשלחה בהצלחה", Status = true, Value = searchDTOs }); }
//Create search public static WebResult <SearchDTO> Create(SearchDTO searchDTO, string passwordUser) { using (ProjectEntities db = new ProjectEntities()) { try { searchDTO.codeUser = db.Users.FirstOrDefault(f => f.passwordUser == passwordUser).codeUser; db.Searches.Add(SearchCast.GetSearch(searchDTO)); db.SaveChanges(); return(new WebResult <SearchDTO> { Message = "החיפוש הופעל בהצלחה", Status = true, Value = searchDTO }); } catch (Exception e) { return(new WebResult <SearchDTO>() { Message = e.Message, Status = false, Value = null }); } } }
//מחיקת חיפוש- המשתמש התחרט //החיפוש לא באמת מתבטל אלא הסטטוס משתנה ל2 public static WebResult <SearchDTO> Delete(int code) { Search search = db.Searches.Find(code); if (search == null) { return new WebResult <SearchDTO> { Message = "לא נמצא חיפוש זה", Status = false, Value = null } } ; if (search.status == 1) { return new WebResult <SearchDTO> { Message = "אין אפשרות למחו חיפושים שכבר נמצאו", Status = false, Value = null } } ; search.status = 2; db.SaveChanges(); return(new WebResult <SearchDTO> { Message = "המחיקה בוצעה בהצלחה", Status = true, Value = SearchCast.GetSearchDTO(search) }); }
//Returns history of the searches, even thouse the user found public static WebResult <List <SearchDetailsForUser> > GetHistory(string passwordUser) { using (ProjectEntities db = new ProjectEntities()) { string pass = passwordUser; User CurrentUser = db.Users.FirstOrDefault(f => f.passwordUser == pass); if (CurrentUser == null) { return(new WebResult <List <SearchDetailsForUser> > { Message = "the user cant find!", Value = null, Status = false }); } List <SearchDetailsForUser> searchesForUser = new List <SearchDetailsForUser>(); var searches = SearchCast.GetSearchesDTO(db.Searches.ToList()); foreach (var search in searches) { if (search.codeUser == CurrentUser.codeUser && search.status != EStatus.Deleted) { searchesForUser.Add(new SearchDetailsForUser() { CodeSearch = search.codeSearch, NameProduct = search.nameProduct, nameCategory = db.Categories.First(f => f.codeCategory == search.codeCategory).nameCategory, Status = search.status, dateStart = search.dateStart, dateEnd = search.dateEnd, codeShop = search.codeShop, nameShop = search.codeShop == null ? "" : db.Shops.First(f => f.codeShop == search.codeShop).nameShop, IsFavoriteShop = search.codeShop == null ? null : db.Shops.First(f => f.codeShop == search.codeShop).isFavorite }); } } string queryString = @" UPDATE Shops SET Shops.isFavorite = 1 FROM Shops INNER JOIN Searches ON Shops.codeShop = Searches.codeShop "; int effected = db.Database.ExecuteSqlCommand(queryString); searchesForUser.Reverse(); return(new WebResult <List <SearchDetailsForUser> > { Message = "חיפושי המשתמש נשלחו בהצלחה", Value = searchesForUser, Status = true }); } }
public static WebResult <List <SearchDTO> > UpdateavoritesShops() { using (ProjectEntities db = new ProjectEntities()) { foreach (var s in db.Searches) { } db.SaveChanges(); return(new WebResult <List <SearchDTO> > { Message = "רשימת חנויות מועדפות עודכנה בהצלחה", Status = true, Value = SearchCast.GetSearchesDTO(db.Searches.ToList()) }); } }
public static WebResult <List <SearchDTO> > UpdateAllSearchStatus() { using (ProjectEntities db = new ProjectEntities()) { foreach (var s in db.Searches) { UpdateSearchStatus(s.codeSearch, CheckStatus(SearchCast.GetSearchDTO(s)), null); } db.SaveChanges(); return(new WebResult <List <SearchDTO> > { Message = "רשימת מטלות עודכנה בהצלחה", Status = true, Value = SearchCast.GetSearchesDTO(db.Searches.ToList()) }); } }
//פונקציה שמחזירה למשתמש את כל החיפושים שנמצאו public static WebResult <List <SearchDTO> > getfoundSearchesByUserId(int userId) { if ((HttpContext.Current.Session["User"] as User).codeUser != userId) { return new WebResult <List <SearchDTO> > { Message = "שגיאת אבטחה, משתמש לא תואם", Value = null, Status = false } } ; return(new WebResult <List <SearchDTO> > { Message = "חיפושי המשתמש שנמצאו נשלחו בהצלחה", Value = SearchCast.GetSearchesDTO(db.Searches.Where(w => w.codeUser == userId && w.status == 1).ToList()), Status = true }); }
//פונקציה שמחזירה למשתמש את כל החיפושים שלו כולל אלו שמצא //מה עדיף? לקבל אובייקט של משתמש או רק המזהה, כי אם נקבל אובייקט נוכל מיד לגשת לרשימה של החיפושים??????????? public static WebResult <List <SearchDTO> > GetSearchesByUserId() { if ((HttpContext.Current.Session["User"] as User) == null) { return new WebResult <List <SearchDTO> > { Message = "שגיאת אבטחה, משתמש לא תואם", Value = null, Status = false } } ; User CurrentUser = HttpContext.Current.Session["User"] as User; List <Search> searches = db.Searches.Where(w => w.codeUser == CurrentUser.codeUser && w.status != 2).ToList(); return(new WebResult <List <SearchDTO> > { Message = "חיפושי המשתמש נשלחו בהצלחה", Value = SearchCast.GetSearchesDTO(searches), Status = true }); }
//חיפוש נמצא- אם המשתמש קנה את המוצר public static WebResult <SearchDTO> Found(int codeSearch, int codeShop) { Search search = db.Searches.Find(codeSearch); if (search == null) { return new WebResult <SearchDTO> { Message = "לא נמצא חיפוש זה במאגר", Status = false, Value = null } } ; search.status = 1; search.codeShop = codeShop; db.SaveChanges(); return(new WebResult <SearchDTO> { Message = "החיפוש נמצא בהצלחה", Status = true, Value = SearchCast.GetSearchDTO(search) }); }
//יצירה public static WebResult <SearchDTO> Create(SearchDTO searchDTO) { //אילו בדיקות בודקים?????????????????????? //Has found תמיד צריך להגיע false if (HttpContext.Current.Session["User"] == null) { return new WebResult <SearchDTO> { Message = "לא נמצא משתמש פעיל", Status = false, Value = null } } ; searchDTO.codeUser = (HttpContext.Current.Session["User"] as User).codeUser; db.Searches.Add(SearchCast.GetSearch(searchDTO)); db.SaveChanges(); return(new WebResult <SearchDTO> { Message = "יצירת חיפוש בוצעה בהצלחה", Status = true, Value = searchDTO }); }