private string CreatePlea(string famUserName, string email, string currUserName) { IQueryable <Family> fam = _repo.Query <Family>().Where(m => m.FamilyUserName == famUserName); ApplicationUser approver = fam.Select(g => g.CreatedBy).FirstOrDefault(); ApplicationUser currUser = GetMemberByUserName(currUserName); IList <FamilyUser> memberList = fam.Select(m => m.MemberList).FirstOrDefault(); if (memberList.Any(m => m.UserId == currUser.Id)) { return("You are already a member of this family."); } else if (_repo.Query <InviteOrPlea>().ToList().Any(m => m.EmailAddress == email && m.Family.FamilyUserName == famUserName)) { return("There already exists a request from you."); } else { var newFam = fam.FirstOrDefault(); var newPlea = new InviteOrPlea { EmailAddress = email, Approved = Domain.Response.None, UserResponse = Domain.Response.Yes, Family = newFam, Approver = approver, Pleader = currUser, }; _repo.Add <InviteOrPlea>(newPlea); return("A request has been submitted for you"); } }
private string CreateInvite(string famUserName, string email, string currUserName) { IQueryable <Family> fam = _repo.Query <Family>().Where(m => m.FamilyUserName == famUserName); ApplicationUser approver = fam.Select(g => g.CreatedBy).FirstOrDefault(); ApplicationUser inviter = _repo.Query <ApplicationUser>().Where(m => m.UserName == currUserName).FirstOrDefault(); ApplicationUser invitee = _repo.Query <ApplicationUser>().Where(m => m.Email == email).FirstOrDefault(); IList <FamilyUser> memberList = fam.Select(m => m.MemberList).FirstOrDefault(); if (memberList.Any(m => m.UserId == invitee.Id)) { return("This user is already a member of this family."); } else if (_repo.Query <InviteOrPlea>().ToList().Any(m => m.EmailAddress == email && m.Family.FamilyUserName == famUserName)) { return("There is already a pending invite or plea for this user."); } else { var newFam = fam.FirstOrDefault(); var newPlea = new InviteOrPlea { //EmailAddress = email, Approved = inviter == approver ? Domain.Response.Yes : Domain.Response.None, UserResponse = Domain.Response.None, Family = newFam, Approver = approver, Inviter = inviter, Pleader = invitee }; _repo.Add <InviteOrPlea>(newPlea); return("An invitation has been sent to this user"); } }