/// <summary> /// Create an invite and send it to the user. /// </summary> /// <param name="invite"> The invite. </param> /// <param name="userId"> The user id of the person doing the inviting. </param> /// <param name="inviteIndexUri"> The invite Index Uri. </param> /// <returns> The <see cref="InviteViewModel"/>. </returns> public InviteViewModel CreateInvite(InviteViewModel invite, int userId, Uri inviteIndexUri) { // Check if the invite already exists var foundInvite = this.repo.GetInvite(invite.InviteeEmailAddress); if (foundInvite != null) { return(this.ResendInvite(foundInvite, inviteIndexUri) ? this.conversions.ConvertDatabaseModelToViewModel(foundInvite) : null); } var inviteToCreate = this.conversions.ConvertViewModelToDatabaseModel(invite); inviteToCreate.CreatorID = userId; inviteToCreate.CreatedAt = DateTime.Now; inviteToCreate.Token = Guid.NewGuid().ToString(); var createdInvite = this.repo.CreateInvite(inviteToCreate); if (createdInvite == null) { return(null); } var email = new InviteEmail(createdInvite); email.Send(inviteIndexUri); return(this.conversions.ConvertDatabaseModelToViewModel(createdInvite)); }
public SendInviteFormParams(string serial) { try { this.Serial = new Guid(serial); } catch { this.Serial = Guid.Empty; } InviteSerial theSerial = InviteBO.Instance.GetInviteSerial(Serial); if (theSerial != null) { if (theSerial.UserID == UserBO.Instance.GetCurrentUserID()) { if (theSerial.Status == InviteSerialStatus.Unused || theSerial.Status == InviteSerialStatus.Unused) { InviteEmail email = new InviteEmail(null, Serial, User.Current.Username, User.CurrentID); this.EmailContent = email.Content; this.EmailTitle = email.Subject; this.IsValidSerial = true; } } } }
//public void UpdateInviteSerialEmailAndStatus(int userID, InviteSerialCollection serials) //{ // InviteDao.Instance.UpdateInviteSerialEmailAndStatus(userID, serials); //} public bool SendInviteByEmail(AuthUser operatorUser, Guid serial, string email) { if (AllSettings.Current.EmailSettings.EnableSendEmail == false) { ThrowError(new EmailDisabledError()); return(false); } if (string.IsNullOrEmpty(email)) { ThrowError(new EmptyEmailError("email")); } else if (!ValidateUtil.IsEmail(email) == false) { ThrowError(new EmailFormatError("email", email)); } InviteSerial inviteSerial = this.GetInviteSerial(serial); if (inviteSerial == null || inviteSerial.Status == InviteSerialStatus.Expires || inviteSerial.Status == InviteSerialStatus.Used || inviteSerial.UserID != operatorUser.UserID ) { ThrowError(new InviteSerialError("serial", serial.ToString())); } if (HasUnCatchedError) { return(false); } InviteEmail emailSender = new InviteEmail( email , inviteSerial.Serial , operatorUser.Username , operatorUser.UserID); emailSender.Send(); if (!HasUnCatchedError) { inviteSerial.ToEmail = email; inviteSerial.Status = InviteSerialStatus.Unused; InviteSerialCollection serials = new InviteSerialCollection(); serials.Add(inviteSerial); InviteDao.Instance.UpdateInviteSerialEmailAndStatus(operatorUser.UserID, serials); return(true); } return(false); }
/// <summary> /// The resend invite. /// </summary> /// <param name="invite"> The invite. </param> /// <param name="inviteIndexUri"> The invite index uri. </param> /// <returns> The <see cref="bool"/>. </returns> public bool ResendInvite(Invite invite, Uri inviteIndexUri) { invite.CreatedAt = DateTime.Now; this.repo.UpdateInvite(invite); var email = new InviteEmail(invite); return(email.Send(inviteIndexUri) != null); }
public void SendProviderTest() { using (ShimsContext.Create()) { this.inviteToSend.RoleTypeID = (int)UserRoleType.Provider; var url = "http://localhost/DataEntry/Account/Create"; var email = new InviteEmail(this.inviteToSend); var result = email.Send(new Uri(url)); Assert.IsTrue(result.Contains("Provider")); } }
public void SendAdminTest() { using (ShimsContext.Create()) { var url = "http://localhost/DataEntry/Account/Create"; var builtUrl = "http://localhost/DataEntry/Account/Create?inviteId=4&token=" + this.inviteToSend.Token; var email = new InviteEmail(this.inviteToSend); var result = email.Send(new Uri(url)); Assert.IsTrue(result.Contains(builtUrl)); Assert.IsTrue(result.Contains("Family Services Admin")); } }
private async Task SendInvite() { View.HideKeyboard(); InviteEmailValidator validator = new InviteEmailValidator(); InviteEmail inviteEmail = new InviteEmail(EmailInvite, mProjectItem.Invites); var result = validator.Validate(inviteEmail); if (result.IsValid) { mPlatformService.ShowNetworkIndicator(); mProgressDialogService.ShowProgressDialog(); var response = await mApiService.AddInvitee(mProjectItem.Id.Value, EmailInvite, null); Mvx.Resolve <ITrackingService>().SendEvent("Invite a user in edit project"); mPlatformService.HideNetworkIndicator(); mProgressDialogService.HideProgressDialog(); if (response.StatusCode == System.Net.HttpStatusCode.OK && response.Data != null) { Invite invite = response.Data; InviteTrades.Add(new PendingTradesItemViewModel(this, invite) { PendingTrades = invite, EditProjectViewModel = this }); mCacheService.ProjectItem.Invites.Add(invite); mCacheService.EdittingProjectInvitee.Add(invite); EmailInvite = string.Empty; } else if (response.StatusCode == System.Net.HttpStatusCode.BadRequest) { mMessageboxService.ShowToast("Email is not exist"); EmailInvite = string.Empty; } } else if (result.Errors != null) { var firstError = result.Errors.First(); mMessageboxService.ShowToast(firstError.ErrorMessage); } }