/// <summary> /// Insert the family invitation /// </summary> /// <param name="familyInvitation">Family invitation</param> /// <returns>The family invitation</returns> public FamilyInvitation AddInvitation(FamilyInvitation familyInvitation) { if (familyInvitation == null) { throw new InvalidParameterException("Invalid parameters!"); } familyInvitation.PhoneNumber = familyInvitation.PhoneNumber.RemoveCountyCode(); var member = Repository.Table <FamilyMember>().Where(p => p.PhoneNumber == familyInvitation.PhoneNumber); if (member.Any()) { throw new InvalidParameterException("Entered phone number is already used by another user"); } var invitation = new FamilyInvitation { PhoneNumber = familyInvitation.PhoneNumber, Token = Guid.NewGuid(), MemberType = familyInvitation.MemberType, CreationDate = DateTime.UtcNow, Status = InvitationStatus.WaitingForSignup, FamilyID = _currentUserService.FamilyID }; Repository.Insert(invitation); // Sms invitation var family = Repository.Table <Family>().Where(p => p.Id.Equals(invitation.FamilyID)).SingleOrDefault(); var url = HttpContext.Current != null ? HttpContext.Current.Request.UrlReferrer.AbsoluteUri + "#/invite/" + invitation.Token : string.Empty; var message = string.Format(_appSettingsService.FamilyInvitationMessage, family != null ? family.Name : string.Empty, url); _textMessageService.Send(invitation.PhoneNumber, message); return(invitation); }
public FamilyInvitation CreateInvitation([FromBody] FamilyInvitation invitation) { return(_invitationService.AddInvitation(invitation)); }