public static string[] GetTarget_OwnerEmailAddresses(TBAccount owningAccount, TBCollaboratingGroup owningGroup) { if (owningAccount != null) { return owningAccount.Emails.CollectionContent.Select(email => email.EmailAddress).ToArray(); } return owningGroup.Roles.CollectionContent.Where(role => TBCollaboratorRole.HasInitiatorRights(role.Role)) .Select(role => role.Email.EmailAddress).ToArray(); }
public void JoinGroup(TBCollaboratingGroup collaboratingGroup, TBCollaboratorRole role) { if (this.GroupRoleCollection.CollectionContent.Find(member => member.GroupID == collaboratingGroup.ID) != null) return; this.GroupRoleCollection.CollectionContent.Add(new TBAccountCollaborationGroup() { GroupID = collaboratingGroup.ID, GroupRole = role.Role, RoleStatus = role.RoleStatus }); }
public static TBEmailValidation GetTarget_EmailValidation(TBAccount owningAccount, TBCollaboratingGroup owningGroup, InformationInput informationInput, string[] ownerEmailAddresses) { TBEmailValidation emailValidation = new TBEmailValidation(); emailValidation.InformationInputConfirmation = new TBInformationInputConfirmation(); if (owningAccount != null && owningGroup != null) throw new InvalidDataException("Both owning account and owning group cannot be defined"); if (owningAccount == null && owningGroup == null) throw new InvalidDataException("Both owning account and owning group must not be null"); if (owningAccount != null) emailValidation.InformationInputConfirmation.AccountID = owningAccount.ID; if (owningGroup != null) emailValidation.InformationInputConfirmation.GroupID = owningGroup.ID; emailValidation.InformationInputConfirmation.InformationInputID = informationInput.ID; emailValidation.ValidUntil = DateTime.UtcNow.AddMinutes(30); emailValidation.Email = ownerEmailAddresses.FirstOrDefault(); if (emailValidation.Email == null) throw new InvalidDataException("Owner must have at least one email address defined"); return emailValidation; }
public static void SendGroupJoinEmail(TBEmailValidation emailValidation, TBCollaboratingGroup collaboratingGroup) { string urlLink = GetUrlLink(emailValidation.ID); string emailMessageFormat = InstanceConfiguration.EmailGroupJoinMessageFormat; string message = String.Format(emailMessageFormat, collaboratingGroup.Title, urlLink); SendEmail(FromAddress, emailValidation.Email, String.Format(InstanceConfiguration.EmailGroupJoinSubjectFormat, collaboratingGroup.Title), message); }
public static void SendGroupJoinEmail(TBEmailValidation emailValidation, TBCollaboratingGroup collaboratingGroup) { string urlLink = GetUrlLink(emailValidation.ID); string emailMessageFormat = @"You have been invited to join in the collaboration platform by Aalto Global Impact to collaborate in the group: {0}. Use the following link to accept the invitation and join the group: {1} The link is valid for 14 days, after which you need to request new invitation."; string message = String.Format(emailMessageFormat, collaboratingGroup.Title, urlLink); SendEmail(FromAddress, emailValidation.Email, "Invitation to join collaboration group: " + collaboratingGroup.Title, message); }