public static UserCredentialsIndexDoc ToUserCredentialsIndexDoc(this UserSignupInfo signupInfo)
        {
            var indexDoc = new UserCredentialsIndexDoc()
            {
                Id       = signupInfo.UserId.ToLower(),
                Email    = string.Empty,
                Language = signupInfo.Language.ToLower(),
                CanPost  = false,
                Streams  = new string[] { }
            };

            return(indexDoc);
        }
        public static UserCredentialsIndexDoc ToUserCredentialsIndexDoc(this UserCredentials credentials)
        {
            var indexDoc = new UserCredentialsIndexDoc()
            {
                Id       = Guid.NewGuid().ToString(),
                Email    = credentials.Email.ToLower(),
                Password = credentials.Password.ToLower(),
                Language = credentials.Language.ToLower(),
                CanPost  = false,
                Streams  = new string[] {}
            };

            return(indexDoc);
        }
Exemplo n.º 3
0
        public async Task <User> GetUser([FromBody] UserSignupInfo signupInfo)
        {
            try
            {
                UserCredentialsIndexDoc userDoc = null;
                try
                {
                    userDoc = await _credentialsIndex.LookupDocument <UserCredentialsIndexDoc>(signupInfo.UserId.ToLower());
                }
                catch (Exception e) {}

                if (userDoc == null)
                {
                    // TODO: Check if password has min requirements
                    var indexDoc = signupInfo.ToUserCredentialsIndexDoc();

                    // Get default streams... and get user streams from contacts
                    indexDoc.Streams = _config.AllStreams.Where(t => t.Lang.ToLower() == signupInfo.Language.ToLower())
                                       .Select(t => String.Format("{0}_{1}", t.Lang.ToLower(), t.Text.ToLower())).ToArray();
                    var uploadedDoc = await _credentialsIndex.UploadDocument(indexDoc);

                    if (!uploadedDoc.Results.First().Succeeded)
                    {
                        throw new Exception(string.Format("Sorry, could not sign you up. Please try again"));
                    }
                    // If Signup success
                    return(indexDoc.ToUser(_config.AllStreams.Where(t => t.Lang.ToLower() == indexDoc.Language.ToLower())));
                }
                else
                {
                    return(userDoc.ToUser(_config.AllStreams.Where(t => t.Lang.ToLower() == userDoc.Language.ToLower())));
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public static User ToUser(this UserCredentialsIndexDoc indexDoc, IEnumerable <Stream> AllStreams)
        {
            var userStreams = AllStreams.Select(t => new Stream
            {
                Id                 = t.Id,
                Text               = t.Text,
                Lang               = t.Lang,
                IsAdmin            = t.IsAdmin,
                UserSelected       = indexDoc.Streams.Contains(t.ToIndexStream()),
                backgroundImageUrl = t.backgroundImageUrl
            }).ToArray();

            return(new User
            {
                Id = indexDoc.Id,
                Email = indexDoc.Email,
                Language = indexDoc.Language,
                Name = indexDoc.Name,
                ProfileImage = indexDoc.ProfileImage,
                CanPost = indexDoc.CanPost,
                Streams = userStreams
            });
        }