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); }
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); }