示例#1
0
        public UserProfileViewModel BuildUserProfileViewModel(ApplicationUser user)
        {
            UserProfileViewModel        userProfileViewModel     = new UserProfileViewModel();
            List <ReviewViewModel>      reviewViewModelList      = new List <ReviewViewModel>();
            List <ServiceRateViewModel> serviceRateViewModelList = new List <ServiceRateViewModel>();

            userProfileViewModel.UserId   = user.Id;
            userProfileViewModel.Forename = user.Forename;
            userProfileViewModel.Surname  = user.Surname;
            userProfileViewModel.IdentificationVerified  = user.IdentificationVerified;
            userProfileViewModel.AddressVerified         = user.AddressVerified;
            userProfileViewModel.DBSChecked              = user.DBSChecked;
            userProfileViewModel.BoardingLicenseVerified = user.BoardingLicenseVerified;
            userProfileViewModel.Description             = user.Description;
            userProfileViewModel.PhotoFolderSource       = user.PhotoFolderSource;
            userProfileViewModel.City = user.City;

            int recommendationsCount = 0;

            foreach (UserReview review in user.ReceivedReviews)
            {
                ReviewViewModel reviewViewModel = new ReviewViewModel();
                reviewViewModel.Title                 = review.Title;
                reviewViewModel.Description           = review.Description;
                reviewViewModel.DateOfReview          = review.Date;
                reviewViewModel.ReviewingUserForename = review.ReviewingUser.Forename;
                reviewViewModel.Recommended           = review.Recommended;

                if (review.Recommended)
                {
                    recommendationsCount = recommendationsCount + 1;
                }

                reviewViewModelList.Add(reviewViewModel);
            }

            foreach (ServiceRate serviceRate in user.ServiceRates)
            {
                ServiceRateViewModel serviceRateViewModel = new ServiceRateViewModel();

                serviceRateViewModel.ServiceName = serviceRate.ServiceType.Name;
                serviceRateViewModel.Rate        = serviceRate.Rate;

                serviceRateViewModelList.Add(serviceRateViewModel);
            }

            userProfileViewModel.NumberOfRecommendations = recommendationsCount;
            userProfileViewModel.Carer        = user.Carer;
            userProfileViewModel.Reviews      = reviewViewModelList.OrderByDescending(review => review.DateOfReview).ToList();
            userProfileViewModel.ServiceRates = serviceRateViewModelList;

            return(userProfileViewModel);
        }
示例#2
0
        public async Task <UserProfileEditViewModel> BuildProfileEditViewModel(ApplicationUser user)
        {
            UserProfileEditViewModel userProfileEditViewModel = new UserProfileEditViewModel();

            userProfileEditViewModel.UserId      = user.Id;
            userProfileEditViewModel.Description = user.Description;
            userProfileEditViewModel.Carer       = user.Carer;

            if (user.Carer)
            {
                List <ServiceRateViewModel> serviceRateViewModelList = new List <ServiceRateViewModel>();

                List <ServiceType> serviceTypes = (List <ServiceType>) await CommandFactory.CreateCommand(CommandFactory.GET_SERVICE_TYPES, _dbContext).Execute();

                foreach (ServiceType service in serviceTypes)
                {
                    ServiceTypeViewModel serviceTypeViewModel = new ServiceTypeViewModel();
                    ServiceRateViewModel serviceRateViewModel = new ServiceRateViewModel();

                    ServiceRate serviceRate = user.ServiceRates.FirstOrDefault(rate => rate.ServiceType.Id == service.Id);

                    //if (!user.ServiceRates.Any(rate => rate.ServiceType == service))
                    if (serviceRate == null)
                    {
                        serviceTypeViewModel.Id   = service.Id;
                        serviceTypeViewModel.Name = service.Name;

                        serviceRateViewModel.ServiceType = serviceTypeViewModel;
                        serviceRateViewModel.Rate        = 0;
                    }
                    else
                    {
                        serviceTypeViewModel.Id   = service.Id;
                        serviceTypeViewModel.Name = service.Name;

                        serviceRateViewModel.ServiceType = serviceTypeViewModel;
                        serviceRateViewModel.Rate        = serviceRate.Rate;
                    }
                    serviceRateViewModelList.Add(serviceRateViewModel);
                }

                userProfileEditViewModel.ServiceRates = serviceRateViewModelList;
            }
            return(userProfileEditViewModel);
        }