示例#1
0
 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")
         });
     }
 }
示例#2
0
        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")
                });
            }
        }
示例#3
0
        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")
                });
            }
        }
示例#4
0
 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")
         });
     }
 }