public CoursesResponse GetCoursesByCenterCategories(string centerId, string categoryId, int count, int skip) { try { var id = int.Parse(centerId); var catid = int.Parse(categoryId); var courses = db.Courses.Where(c => c.CenterId == id && c.CategoryId == catid && c.isStarted == true).OrderByDescending(c => c.isFinished).ToList(); if (courses.Count != 0) { List <SmallCourse> list = new List <SmallCourse>(); foreach (var item in courses) { var cname = db.Centers.SingleOrDefault(c => c.Id == item.CenterId).Name; var loves = db.CoursLoves.Where(co => co.CourseId == item.Id).ToList().Count; SmallCourse smallCourse = new SmallCourse { id = item.Id, Name = item.Name, Hours = item.Hours, BeginDate = item.BeginDate.ToShortDateString(), EndDate = item.EndDate.ToShortDateString(), CourseLogo = Convert.ToBase64String(item.Logo), Rate = new Utilities().GetCenterRate(item.CenterId), CenterName = cname, Price = item.Price, Instructor = item.Instructor, Loves = loves, CenterId = item.CenterId }; list.Add(smallCourse); } return(new CoursesResponse { CourseList = list.Skip(skip).Take(count).ToList(), Message = Utilities.GetErrorMessages("200") }); } else { return(new CoursesResponse { Message = Utilities.GetErrorMessages("504") }); } } catch (Exception ex) { return(new CoursesResponse { Message = Utilities.GetErrorMessages("500") }); } }
public CoursesResponse GetCurrentCourses(int userId, int count, int skip) { try { if (userId != 0) { int user = userId; var userCategories = db.UserCategories.Where(uc => uc.UserId == user).ToList(); List <SmallCourse> returnedCourses = new List <SmallCourse>(); List <Course> CatsCourses = new List <Course>(); List <Course> courses = new List <Course>(); foreach (var userCategory in userCategories) { var course = db.Courses.Where(c => c.CategoryId == userCategory.CategoryId && c.isStarted == true && c.isFinished == false).ToList(); if (course.Count != 0) { courses.AddRange(course); } } if (courses.Count() > 0) { CatsCourses.AddRange(courses); } foreach (var item in CatsCourses) { var cname = db.Centers.SingleOrDefault(c => c.Id == item.CenterId).Name; SmallCourse smallCourse = new SmallCourse { id = item.Id, Name = item.Name, Hours = item.Hours, BeginDate = item.BeginDate.ToShortDateString(), EndDate = item.EndDate.ToShortDateString(), CourseLogo = Convert.ToBase64String(item.Logo), Rate = new Utilities().GetCenterRate(item.CenterId), CenterName = cname, Price = item.Price, Instructor = item.Instructor, CenterId = item.CenterId }; returnedCourses.Add(smallCourse); } if (returnedCourses.Count == 0) { return new CoursesResponse { Message = Utilities.GetErrorMessages("402") } } ; else { return new CoursesResponse { CourseList = returnedCourses.Count < count ? returnedCourses : returnedCourses.Skip(skip).Take(count).ToList(), Message = Utilities.GetErrorMessages("200") } }; } else { var categories = db.Categories.ToList(); List <SmallCourse> courses = new List <SmallCourse>(); foreach (var category in categories) { var course = category.Courses.Where(c => c.isStarted == true && c.isFinished == false).FirstOrDefault(); var cname = ""; if (course != null) { cname = db.Centers.SingleOrDefault(c => c.Id == course.CenterId).Name; } if (course != null) { SmallCourse smallCourse = new SmallCourse { id = course.Id, Name = course.Name, Instructor = course.Instructor, Hours = course.Hours, Price = course.Price, BeginDate = course.BeginDate.ToShortDateString(), EndDate = course.EndDate.ToShortDateString(), CourseLogo = Convert.ToBase64String(course.Logo), CenterName = cname, Rate = new Utilities().GetCenterRate(course.CenterId) }; courses.Add(smallCourse); } } if (courses.Count == 0) { return new CoursesResponse { Message = Utilities.GetErrorMessages("402") } } ; else { return new CoursesResponse { CourseList = courses.Count < count ? courses : courses.Skip(skip).Take(count).ToList(), Message = Utilities.GetErrorMessages("200") } }; } } catch (Exception ex) { return(new CoursesResponse { Message = Utilities.GetErrorMessages("500") }); } }
public UserCourses GetUserCourses(int userId, int count, int skip) { try { var user = db.EndUsers.Include("Applications").SingleOrDefault(use => use.Id == userId); if (user != null) { if (user.Applications.Count() > 0) { List <Course> pendingCourses = new List <Course>(); List <Course> paidCourses = new List <Course>(); foreach (var Application in user.Applications) { Course course = db.Courses.SingleOrDefault(Cours => Cours.Id == Application.CourseId); if (course != null) { if (Application.isPaid) { paidCourses.Add(course); } else { pendingCourses.Add(course); } } } if (paidCourses.Count() > 0 || pendingCourses.Count() > 0) { List <SmallCourse> pendingSmallCourses = new List <SmallCourse>(); List <SmallCourse> paidSmallCourses = new List <SmallCourse>(); if (paidCourses.Count() > 0) { foreach (var paid in paidCourses) { var cname = db.Centers.SingleOrDefault(cid => cid.Id == paid.CenterId).Name; SmallCourse smallCourse = new SmallCourse { id = paid.Id, Name = paid.Name, Instructor = paid.Instructor, Hours = paid.Hours, Price = paid.Price, BeginDate = paid.BeginDate.ToShortDateString(), EndDate = paid.EndDate.ToShortDateString(), CourseLogo = Convert.ToBase64String(paid.Logo), CenterName = cname, Rate = new Utilities().GetCenterRate(paid.CenterId), CenterId = paid.CenterId }; paidSmallCourses.Add(smallCourse); } } if (pendingCourses.Count() > 0) { foreach (var pending in pendingCourses) { var cname = db.Centers.SingleOrDefault(cid => cid.Id == pending.CenterId).Name; SmallCourse smallCourse = new SmallCourse { id = pending.Id, Name = pending.Name, Instructor = pending.Instructor, Hours = pending.Hours, Price = pending.Price, BeginDate = pending.BeginDate.ToShortDateString(), EndDate = pending.EndDate.ToShortDateString(), CourseLogo = Convert.ToBase64String(pending.Logo), CenterName = cname, Rate = new Utilities().GetCenterRate(pending.CenterId), CenterId = pending.CenterId }; pendingSmallCourses.Add(smallCourse); } } return(new UserCourses { PaidCourses = paidSmallCourses.Skip(skip).Take(count).ToList(), PendingCourses = pendingSmallCourses.Skip(skip).Take(count).ToList(), Message = Utilities.GetErrorMessages("200") }); } else { return(new UserCourses { Message = Utilities.GetErrorMessages("402") }); } } else { return(new UserCourses { Message = Utilities.GetErrorMessages("402") }); } } else { return(new UserCourses { Message = Utilities.GetErrorMessages("402") }); } } catch (Exception ex) { return(new UserCourses { Message = Utilities.GetErrorMessages("500") }); } }
public SearchResponse DoSearch(int userId, string key) { try { UserSearchHistory userSearchHistory = new UserSearchHistory(); userSearchHistory.UserId = userId; userSearchHistory.Keyword = key; var BaseCourses = db.Courses.Include("Category").Include("Center").Where(c => (c.isStarted == true) && (c.Name.Contains(key) || c.Center.Name.Contains(key) || c.Category.Name.Contains(key))).ToList(); var BaseCenters = db.Centers.Include("Category").Include("Courses").Where(c => c.IsConfirmed).ToList(); var BaseCategories = db.Categories.Include("Courses").Include("Centers").ToList(); List <Course> BigCourses = new List <Course>(); List <Center> BigCenters = new List <Center>(); List <SmallCenter> SmallCenter = new List <SmallCenter>(); List <SmallCourse> SmallCourse = new List <SmallCourse>(); //Remove Duplicate BigCourses = BaseCourses; foreach (var basecenter in BaseCenters) { if (basecenter.Name.Contains(key)) { BigCenters.Add(basecenter); } var cats = db.TrainningCenterCategories.Include("Category").Where(c => c.CentersId == basecenter.Id).ToList(); foreach (var item in cats) { if (item.Category.Name.Contains(key)) { BigCenters.Add(basecenter); } } } foreach (var bigCenter in BigCenters) { SmallCenter SM = new SmallCenter { CenterName = bigCenter.Name, CenterRate = (int)new Utilities().GetCenterRate(bigCenter.Id), Id = bigCenter.Id, Email = bigCenter.Email, Location = bigCenter.LocationLat + ";" + bigCenter.LocationLong, Logo = Convert.ToBase64String(bigCenter.Logo), Phones = new List <string> { bigCenter.Phone1, bigCenter.Phone2, bigCenter.Phone3 } }; SmallCenter.Add(SM); } foreach (var bigCourse in BigCourses) { var cname = db.Centers.SingleOrDefault(c => c.Id == bigCourse.CenterId).Name; var loves = db.CoursLoves.Where(co => co.CourseId == bigCourse.Id).ToList().Count; SmallCourse SC = new SmallCourse { id = bigCourse.Id, Name = bigCourse.Name, Hours = bigCourse.Hours, BeginDate = bigCourse.BeginDate.ToShortDateString(), EndDate = bigCourse.EndDate.ToShortDateString(), CourseLogo = Convert.ToBase64String(bigCourse.Logo), Rate = new Utilities().GetCenterRate(bigCourse.CenterId), CenterName = cname, Price = bigCourse.Price, Instructor = bigCourse.Instructor, Loves = loves, CenterId = bigCourse.CenterId }; SmallCourse.Add(SC); var BC = db.Centers.SingleOrDefault(cen => cen.Id == SC.CenterId); SmallCenter SM = new SmallCenter { CenterName = BC.Name, CenterRate = (int)new Utilities().GetCenterRate(BC.Id), Id = BC.Id, Email = BC.Email, Location = BC.LocationLat + ";" + BC.LocationLong, Logo = Convert.ToBase64String(BC.Logo), Phones = new List <string> { BC.Phone1, BC.Phone2, BC.Phone3 } }; foreach (var Small in SmallCenter) { if (SM.Id != Small.Id) { SmallCenter.Add(SM); } } } SmallCenter = SmallCenter.Distinct().ToList(); var result = new SearchResponse { smallCenters = SmallCenter, smallCourses = SmallCourse, Message = Utilities.GetErrorMessages("200") }; userSearchHistory.Result = System.Web.Helpers.Json.Encode(result); db.UserSearchHistories.Add(userSearchHistory); return(result); } catch (Exception ex) { return(new SearchResponse { Message = Utilities.GetErrorMessages("500") }); } }