예제 #1
0
 public ProjectDO CreateProject(ProjectDO project)
 {
     if (CanCreateProject(project.CompanyId))
     {
         return(_projectDao.Create(project));
     }
     throw new InvalidOperationException("Failed to create new Project. Too many projects for this subscription");
 }
        private CategoryDO CreateCategory(ProjectDO project, string name)
        {
            var category1 = new CategoryDO
            {
                ProjectId = project.ProjectId,
                Name      = name
            };

            _categoryDao.Create(category1);
            return(category1);
        }
        public void TestMethod1()
        {
            UserDO invitingUser = new UserDO()
            {
                EMail = "*****@*****.**"
            };
            ProjectDO project = new ProjectDO()
            {
                Name = "testProject"
            };

            InvitationEmailSender.SendProjectInvitation("*****@*****.**", invitingUser, project, "generatedPassword");
        }
        public UserDO CreateSubscription(Subscription subscription, string originalEmail)
        {
            //create Subscription
            var subscriptionDo = _mapper.Map <SubscriptionDO>(subscription);

            subscriptionDo.OriginalEmail = originalEmail;
            _log.InfoFormat("Subscription ID:{0}, subscription created in DB. {1}", subscription.SubscriptionReference,
                            subscriptionDo);

            //create Company
            var company = new CompanyDO();

            if (string.IsNullOrEmpty(subscription.Customer.Company))
            {
                company.Name = $"{subscription.Customer.FirstName} {subscription.Customer.LastName}";
            }
            else
            {
                company.Name = subscription.Customer.Company;
            }
            company.SubscriptionReference = subscriptionDo.SubscriptionReference;
            company.Subscription          = subscriptionDo;
            _companyDao.Create(company);
            _log.InfoFormat("Subscription ID:{0}, company created in DB. {1}", subscription.SubscriptionReference,
                            company);

            //create master User
            var user = new UserDO();

            user.EMail            = subscription.Customer.Email;
            user.FirstName        = subscription.Customer.FirstName;
            user.FamilyName       = subscription.Customer.LastName;
            user.PhoneNumber      = subscription.Customer.PhoneNumber;
            user.IsCompanyAdmin   = true;
            user.CompanyId        = company.CompanyId;
            user.IsPinzSuperAdmin = false;
            user.Password         = RandomPassword.Generate();
            user = _userDao.Create(user);
            _log.InfoFormat("Subscription ID:{0}, user created in DB. {1}", subscription.SubscriptionReference, user);

            //create Project
            var project = new ProjectDO
            {
                CompanyId   = company.CompanyId,
                Name        = "GetStarted",
                Description = "Project to get you started with PINZ! Feel free to rename and use as you like."
            };

            project = _projectDao.Create(project);

            //staff user as admin on project
            var ps = new ProjectStaffDO
            {
                ProjectId      = project.ProjectId,
                UserId         = user.UserId,
                IsProjectAdmin = true
            };

            _projectStaffDao.Create(ps);

            //create tasks
            var categoryAdministration = CreateCategory(project, "Administration");

            CreateTask(categoryAdministration, user, "Rename this project",
                       "In the Outlook Ribbon, click on PINZ tab. Fromo there you can navigate to Administration panel.");

            CreateTask(categoryAdministration, user, "Invite more users",
                       "In the Outlook Ribbon, click on PINZ tab. Fromo there you can navigate to Administration panel.");

            CreateTask(categoryAdministration, user, "Close Tasks",
                       "Close Tasks by ticking the checkboxes in the task list.");

            CreateTask(categoryAdministration, user, "Delete Categories",
                       "Only empty categories can be deleted.");

            var educationAdministration = CreateCategory(project, "Education");

            CreateTask(educationAdministration, user, "Visit Support Page",
                       "Visit our Support Senter at https://pinzonline.zendesk.com for more information.");

            return(user);
        }
예제 #5
0
        public static void SendProjectInvitation(string emailAdress, UserDO invitingUser, ProjectDO project,
                                                 string generatedPassword)
        {
            var smtpClient = CreateSmtpClient();
            var mail       = new MailMessage {
                From = new MailAddress("*****@*****.**", "PINZonline")
            };

            //Setting From , To and CC
            mail.To.Add(new MailAddress(emailAdress));

            //Content
            var invitationFrom = invitingUser.EMail;

            if (!string.IsNullOrEmpty(invitingUser.FirstName) || !string.IsNullOrEmpty(invitingUser.FamilyName))
            {
                invitationFrom = string.Format("{0} {1}", invitingUser.FirstName, invitingUser.FamilyName);
            }
            mail.Subject = "You have been invited to join PinzOnline";
            mail.Body    = string.Format(ProjectInviteEmailTemplate, invitationFrom, project.Name, emailAdress,
                                         generatedPassword);
            mail.IsBodyHtml = true;

            smtpClient.Send(mail);
        }
예제 #6
0
 public void DeleteProject(ProjectDO project)
 {
     _projectDao.Delete(project);
 }
예제 #7
0
 public ProjectDO UpdateProject(ProjectDO project)
 {
     return(_projectDao.Update(project));
 }