Exemple #1
0
        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);
        }
Exemple #2
0
        /// <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);
        }