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