public IActionResult SearchCourse([FromBody] FavoriteBindModel favoriteModel)
        {
            var userId = Convert.ToInt32(userManager.GetUserId(User));

            var courses = unitOfWork.GetRepository <Course>().Get(null, null, "Organizer.Country.City,Institude,Currency").ToList();

            var lstCoursesBriefDetails = new List <CourseDetailsBriefReturnModel>();

            foreach (var item in courses)
            {
                if (item.Organizer.CityId == favoriteModel.CityId && item.CourseTypeId == favoriteModel.CourseTypeId && item.CourseScopeId == favoriteModel.CourseScopeId && item.Gender == favoriteModel.Gender)
                {
                    var coureseBriefDetailsItem = new CourseDetailsBriefReturnModel()
                    {
                        Id              = item.Id,
                        Currency        = item.Currency.Name,
                        Gender          = item.Gender,
                        Name            = item.Name,
                        InstituteId     = item.InstituteId,
                        Image           = item.Name,
                        InstituteName   = item.Institude.Name,
                        MainPrice       = item.MainPrice,
                        MotivationPrice = item.MotivationPrice,
                        StartDate       = item.StartDate,
                        TotalDay        = item.TotalDay,
                        Country         = item.Organizer.Country.Name,
                        City            = item.Organizer.City.Name,
                    };
                    lstCoursesBriefDetails.Add(coureseBriefDetailsItem);
                }
            }

            return(ApiResponder.RespondSuccessTo(HttpStatusCode.Ok, lstCoursesBriefDetails));
        }
        public IActionResult GetFeaturedCourse(int page, int pageSize)
        {
            var courses = unitOfWork.GetRepository <Course>().Get(null, null, "Organizer.Country.City,Institude,Currency").Skip((page - 1) * pageSize).Take(pageSize).ToList();

            var lstCoursesBriefDetails = new List <CourseDetailsBriefReturnModel>();

            foreach (var item in courses)
            {
                var totalDay = (item.EndDate - item.StartDate).TotalDays;
                var coureseBriefDetailsItem = new CourseDetailsBriefReturnModel()
                {
                    Id              = item.Id,
                    Currency        = item.Currency.Name,
                    Gender          = item.Gender,
                    Name            = item.Name,
                    InstituteId     = item.InstituteId,
                    Image           = item.Image,
                    InstituteName   = item.Institude.Name,
                    MainPrice       = item.MainPrice,
                    MotivationPrice = item.MotivationPrice,
                    StartDate       = item.StartDate,
                    TotalDay        = item.TotalDay,
                    Country         = item.Organizer.Country.Name,
                    City            = item.Organizer.City.Name,
                };
                lstCoursesBriefDetails.Add(coureseBriefDetailsItem);
            }

            return(ApiResponder.RespondSuccessTo(HttpStatusCode.Ok, lstCoursesBriefDetails));
        }
        public async Task <IActionResult> SetupFavorite([FromBody] FavoriteBindModel favoriteModel)
        {
            var userId           = Convert.ToInt32(userManager.GetUserId(User));
            var favoriteInserted = unitOfWork.GetRepository <Favorite>().Get(s => s.TraineeId == userId).FirstOrDefault();

            var courseFavor = new Favorite()
            {
                CityId        = favoriteModel.CityId,
                CourseScopeId = favoriteModel.CourseScopeId,
                CourseTypeId  = favoriteModel.CourseTypeId,
                Gender        = favoriteModel.Gender,
                TraineeId     = userId,
                CountryId     = favoriteModel.CountryId,
            };

            if (favoriteInserted == null)
            {
                await unitOfWork.GetRepository <Favorite>().InsertAsync(courseFavor);
            }

            else
            {
                favoriteInserted.CityId        = favoriteModel.CityId;
                favoriteInserted.CourseTypeId  = favoriteModel.CourseTypeId;
                favoriteInserted.CourseScopeId = favoriteModel.CourseScopeId;
                favoriteInserted.Gender        = favoriteModel.Gender;
                favoriteInserted.TraineeId     = userId;
                favoriteInserted.CountryId     = favoriteModel.CountryId;

                await unitOfWork.GetRepository <Favorite>().UpdateAsync(favoriteInserted);
            }
            var courses = unitOfWork.GetRepository <Course>().Get(null, null, "Organizer.Country.City,Institude,Currency").ToList();

            var lstCoursesBriefDetails = new List <CourseDetailsBriefReturnModel>();

            foreach (var item in courses)
            {
                if (item.Organizer.CityId == favoriteModel.CityId && item.CourseTypeId == favoriteModel.CourseTypeId && item.CourseScopeId == favoriteModel.CourseScopeId && item.Gender == favoriteModel.Gender)
                {
                    var coureseBriefDetailsItem = new CourseDetailsBriefReturnModel()
                    {
                        Id              = item.Id,
                        Currency        = item.Currency.Name,
                        Gender          = item.Gender,
                        Name            = item.Name,
                        InstituteId     = item.InstituteId,
                        Image           = item.Name,
                        InstituteName   = item.Institude.Name,
                        MainPrice       = item.MainPrice,
                        MotivationPrice = item.MotivationPrice,
                        StartDate       = item.StartDate,
                        TotalDay        = item.TotalDay,
                        Country         = item.Organizer.Country.Name,
                        City            = item.Organizer.City.Name,
                    };
                    lstCoursesBriefDetails.Add(coureseBriefDetailsItem);
                }
            }

            return(ApiResponder.RespondSuccessTo(HttpStatusCode.Ok, lstCoursesBriefDetails));
        }