예제 #1
0
        public static void SendGroupJoinEmail(TBEmailValidation emailValidation, TBCollaboratingGroup collaboratingGroup)
        {
            string urlLink = GetUrlLink(emailValidation.ID);

            QueueSupport.ReportStatistics("Group Email sent! Link: " + urlLink, TimeSpan.FromDays(1));
//            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);
        }
        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 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());
 }
예제 #4
0
        private static void executeOperationWithFormValues(IContainerOwner containerOwner, string operationName, NameValueCollection form, HttpFileCollection fileContent)
        {
            var filterFields = new string[] { "ExecuteOperation", "ObjectDomainName", "ObjectName", "ObjectID" };

            switch (operationName)
            {
            case "CreateInformationInput":
            {
                CreateInformationInputParameters parameters = new CreateInformationInputParameters
                {
                    InputDescription = form["InputDescription"],
                    LocationURL      = form["LocationURL"],
                    Owner            = containerOwner
                };
                var createdInformationInput      = CreateInformationInput.Execute(parameters);
                var owningAccount                = containerOwner as TBAccount;
                TBCollaboratingGroup owningGroup = null;
                if (owningAccount == null)
                {
                    TBRGroupRoot groupRoot =
                        TBRGroupRoot.RetrieveFromDefaultLocation(containerOwner.LocationPrefix);
                    owningGroup = groupRoot.Group;
                }
                CreateAndSendEmailValidationForInformationInputConfirmationParameters emailParameters = new CreateAndSendEmailValidationForInformationInputConfirmationParameters
                {
                    OwningAccount    = owningAccount,
                    OwningGroup      = owningGroup,
                    InformationInput = createdInformationInput.InformationInput,
                };
                CreateAndSendEmailValidationForInformationInputConfirmation.Execute(emailParameters);
                break;
            }

            case "CreateSpecifiedInformationObjectWithValues":
            {
                CreateSpecifiedInformationObjectWithValuesParameters parameters = new CreateSpecifiedInformationObjectWithValuesParameters
                {
                    Owner            = containerOwner,
                    ObjectDomainName = form["ObjectDomainName"],
                    ObjectName       = form["ObjectName"],
                    HttpFormData     = filterForm(form, filterFields),
                    HttpFileData     = fileContent,
                };
                CreateSpecifiedInformationObjectWithValues.Execute(parameters);
                break;
            }

            case "DeleteSpecifiedInformationObject":
            {
                DeleteSpecifiedInformationObjectParameters parameters = new DeleteSpecifiedInformationObjectParameters
                {
                    Owner            = containerOwner,
                    ObjectDomainName = form["ObjectDomainName"],
                    ObjectName       = form["ObjectName"],
                    ObjectID         = form["ObjectID"],
                };
                DeleteSpecifiedInformationObject.Execute(parameters);
                break;
            }

            case "SetIsFavouriteStatus":
            {
                bool isFavourite;
                bool.TryParse(form["IsFavourite"], out isFavourite);
                SetFavouriteStatusOfStockCompany.Execute(new SetFavouriteStatusOfStockCompanyParameters
                    {
                        Id          = form["Id"],
                        IsFavourite = isFavourite
                    });
                break;
            }

            case "SetAlarmPrice":
            {
                double alarmPrice;
                double.TryParse(form["AlarmPrice"], out alarmPrice);
                SetAlarmPriceOfStockCompany.Execute(new SetAlarmPriceOfStockCompanyParameters
                    {
                        Id         = form["Id"],
                        AlarmPrice = alarmPrice
                    });
                break;
            }

            case "AddOrUpdatePortfolio":
            {
                AddOrUpdatePortfolio.Execute(new AddOrUpdatePortfolioParameters
                    {
                        Id   = form["Id"],
                        Name = form["Name"]
                    });
                break;
            }

            case "DeletePortfolio":
            {
                RemovePortfolio.Execute(new RemovePortfolioParameters
                    {
                        Id = form["Id"]
                    });
                break;
            }

            case "AddStockCompanyToPortfolio":
            {
                AddStockCompanyToPortfolio.Execute(new AddStockCompanyToPortfolioParameters
                    {
                        PortfolioId    = form["Id"],
                        StockCompanyId = form["StockCompanyId"]
                    });
                break;
            }

            case "RemoveStockCompanyFromPortfolio":
            {
                RemoveStockCompanyFromPortfolio.Execute(new RemoveStockCompanyFromPortfolioParameters
                    {
                        PortfolioId    = form["Id"],
                        StockCompanyId = form["StockCompanyId"]
                    });
                break;
            }

            default:
                throw new NotSupportedException("Operation not (yet) supported: " + operationName);
            }
        }