public GetUserDetailsResponse GetUserDetails(ISession session, GetUserDetailsRequest request) { var response = request.CreateResponse <GetUserDetailsResponse>(); using (var uow = UnitOfWorkFactory.Create()) { Specification <User> spec = null; if (request.UserId != 0) { spec = UserSpecification.Id(request.UserId); } else if (!string.IsNullOrEmpty(request.Name)) { spec = UserSpecification.Name(request.Name); } else { return(response); //invalid request } var user = uow.UsersRepository.FirstMatching(spec); if (user != null) { response.User = user.ProjectedAs <UserDto>(); response.IsFriend = session.User.Friends.Any(p => p.Id == user.Id); uow.Attach(session.User); } } return(response); }
/// <summary> /// </summary> public RegistrationResponse RegisterNewUser(ISession session, RegistrationRequest request) { var response = request.CreateResponse(new RegistrationResponse { Result = RegistrationResponseType.Success }); User user = null; try { user = new User(request.Name, request.Password, request.Huid, request.Sex, request.Age, request.PushUri, request.Country, request.Platform); } catch (InvalidUserRegistrationDataException) { response.Result = RegistrationResponseType.InvalidData; return(response); } using (var uow = UnitOfWorkFactory.Create()) { if (uow.UsersRepository.AnyMatching(UserSpecification.Name(user.Name))) { response.Result = RegistrationResponseType.NameIsInUse; return(response); } uow.UsersRepository.Add(user); uow.Commit(); } response.User = user.ProjectedAs <UserDto>(); session.SetUser(user); return(response); }