Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
            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;
                        }
                    }
                }
            }
Exemplo n.º 3
0
        //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);
        }
Exemplo n.º 4
0
        /// <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"));
            }
        }
Exemplo n.º 7
0
        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);
            }
        }