Exemple #1
0
        public UserInfoView(UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
            : base(userModel, issueModel, projectModel, projectMemberModel)
        {
            InitializeComponent();
            this.userModel          = userModel;
            this.issueModel         = issueModel;
            this.projectModel       = projectModel;
            this.projectMemberModel = projectMemberModel;
            userController          = new UserController(userModel);
            issueController         = new IssueController(userModel, issueModel, projectModel);

            user = SecurityModel.getInstance().AuthenticatedUser;

            userModel.userDataChanged       += updateView;
            issueModel.issueDataChanged     += updateView;
            projectModel.projectDataChanged += updateView;

            errorProvider            = new ErrorProvider();
            errorProvider.BlinkStyle = ErrorBlinkStyle.NeverBlink;

            if (this.Owner == null)
            {
                base.logoutToolStripButton.Visible = true;
                base.logoutToolStripButton.Enabled = true;
            }
        }
        public CreateIssueView(UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
            : base(userModel, issueModel, projectModel, projectMemberModel)
        {
            InitializeComponent();
            this.userModel          = userModel;
            this.issueModel         = issueModel;
            this.projectModel       = projectModel;
            this.projectMemberModel = projectMemberModel;

            issueController         = new IssueController(userModel, issueModel, projectModel);
            projectMemberController = new ProjectMemberController(projectMemberModel, userModel);
            user = SecurityModel.getInstance().AuthenticatedUser;
            userModel.updateAuthenticatedUser(user.UserId);
            projectList = user.JoinedProjects;
            foreach (Project project in projectList)
            {
                projectComboBox.Items.Add(project);
            }
            if (projectList.Count > 0)
            {
                projectComboBox.SelectedIndex = 0;
            }
            issuePriorityComboBox.SelectedIndex = 0;
            issueSeverityComboBox.SelectedIndex = 0;
        }
        public async Task <IActionResult> InviteMember(int projectId, string accountName)
        {
            bool isNewMember = false;

            if (!Validator.IsValidEmailAddress(accountName))
            {
                return(BadRequest(Context.GetStringResource("EmailWrongFormat", StringResourceType.Error)));
            }

            AccountInfoModel account = await EzTask.Account.GetAccountInfo(accountName);

            if (account == null)
            {
                isNewMember = true;
                string name = accountName.Split('@')[0];
                ResultModel <AccountModel> registerResult = await EzTask.Account.RegisterNew(new AccountModel
                {
                    AccountName = accountName,
                    Password    = Guid.NewGuid().ToString().Substring(0, 6),
                    FullName    = name,
                    DisplayName = name
                });

                if (registerResult.Status == ActionStatus.Ok)
                {
                    account = new AccountInfoModel {
                        AccountId = registerResult.Data.AccountId
                    };
                }
            }

            ProjectMemberModel model = new ProjectMemberModel
            {
                AccountId  = account.AccountId,
                ProjectId  = projectId,
                ActiveCode = Guid.NewGuid().ToString().Replace("-", "")
            };

            ResultModel <bool> alreadyAdded = await EzTask.Project.HasAlreadyAdded(model);

            if (alreadyAdded.Data)
            {
                return(BadRequest(Context.GetStringResource("AddedAccount", StringResourceType.ProjectPage)));
            }

            ResultModel <ProjectMemberModel> iResult = await EzTask.Project.AddMember(model);

            if (iResult.Status == ActionStatus.Ok)
            {
                string inviteTitle = Context.GetStringResource("InviteTitleEmail", StringResourceType.ProjectPage);
                await EzTask.Project.SendInvitation(model.ProjectId, model.AccountId,
                                                    isNewMember, inviteTitle, model.ActiveCode);
            }
            else
            {
                return(BadRequest(Context.GetStringResource("RequestFailed", StringResourceType.Error)));
            }

            return(PartialView("_AddNewMemberItemTemplate", iResult.Data));
        }
        public ProjectListView(int tabIndex, UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
            : base(userModel, issueModel, projectModel, projectMemberModel)
        {
            InitializeComponent();
            this.userModel          = userModel;
            this.issueModel         = issueModel;
            this.projectModel       = projectModel;
            this.projectMemberModel = projectMemberModel;
            projectInfoController   = new ProjectInfoController(projectModel);
            projectListController   = new ProjectListController(projectModel, projectMemberModel);

            projectModel.projectDataChanged             += updateView;
            projectMemberModel.projectMemberDataChanged += updateView;

            user = SecurityModel.getInstance().AuthenticatedUser;
            int userId = user.UserId;

            joinedProjectList  = projectInfoController.getProjectListByUserId(userId);
            invitedProjectList = projectInfoController.getInvitedProjectListByUserId(userId);
            projectTabControl.SelectTab(tabIndex);

            systemManagerTableLayoutPanel.Enabled = false;
            systemManagerTableLayoutPanel.Visible = false;
            generalUserTableLayoutPanel.Enabled   = true;
            generalUserTableLayoutPanel.Visible   = true;
        }
Exemple #5
0
        public SecurityView(UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
            : base(userModel, issueModel, projectModel, projectMemberModel)
        {
            InitializeComponent();
            this.userModel          = userModel;
            this.issueModel         = issueModel;
            this.projectModel       = projectModel;
            this.projectMemberModel = projectMemberModel;
            userController          = new UserController(userModel);
            securityController      = new SecurityController(userModel);
            issueController         = new IssueController(userModel, issueModel, projectModel);
            projectInfoController   = new ProjectInfoController(projectModel);

            User user = SecurityModel.getInstance().AuthenticatedUser;

            usernameLabel.Text       = user.UserName;
            emailAddressLabel.Text   = user.EmailAddress;
            projectsNumberLabel.Text = projectInfoController.getAllProjectList(user.UserId).Count.ToString();
            issuesNumberLabel.Text   = issueController.getIssueList().Count.ToString();
            usersNumberLabel.Text    = securityController.listAccounts().Count.ToString();

            editUsernameTextBox.Text     = user.UserName;
            editEmailAddressTextBox.Text = user.EmailAddress;

            errorProvider            = new ErrorProvider();
            errorProvider.BlinkStyle = ErrorBlinkStyle.NeverBlink;

            if (this.Owner == null)
            {
                base.logoutToolStripButton.Visible = true;
                base.logoutToolStripButton.Enabled = true;
            }
        }
Exemple #6
0
 public BaseView(UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
 {
     InitializeComponent();
     this.userModel          = userModel;
     this.issueModel         = issueModel;
     this.projectModel       = projectModel;
     this.projectMemberModel = projectMemberModel;
 }
Exemple #7
0
        public ActionResult Create([FromBody] ProjectMemberModel model)
        {
            //validation

            if (ModelState.IsValid)
            {
                db.Add(model);
                db.SaveChanges();
            }
            return(Ok());
        }
Exemple #8
0
        public ActionResult Initialize(int projectInfoRef, int ServiceTreeRef)
        {
            //var result = AllItems.Where(x => x.ProjectTreeId == id).Select( s=>new { s.Title ,s.ReginalPowerCorpRef,s.ProjectTreeRef, ReginalPowerCorpTitle=s.ReginalPowerCorp.Title, ProjectParent=s.ProjectTree.Title,s.LevelCode,s.Code,s.IsTemplate,s.State});

            var result = new ProjectMemberModel {
                ProjectInfoRef = projectInfoRef, ServiceTreeRef = ServiceTreeRef
            };


            return(Ok(result));
        }
        public LoginView(UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
        {
            InitializeComponent();
            this.userModel          = userModel;
            this.issueModel         = issueModel;
            this.projectModel       = projectModel;
            this.projectMemberModel = projectMemberModel;

            userController = new UserController(userModel);
            SecurityModel.getInstance().IsProgramRunning = false;
        }
 public ProjectMainMenu(int projectId, UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
 {
     InitializeComponent();
     this.userModel          = userModel;
     this.issueModel         = issueModel;
     this.projectModel       = projectModel;
     this.projectMemberModel = projectMemberModel;
     this.projectModel.projectDataChanged += UpdateView;
     infoController = new ProjectInfoController(projectModel);
     project        = infoController.getProjectInfo(SecurityModel.getInstance().AuthenticatedUser.UserId, projectId);
     SetProjectContext();
 }
 public ProjectMainMenu(Project project, UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
 {
     InitializeComponent();
     this.userModel          = userModel;
     this.issueModel         = issueModel;
     this.projectModel       = projectModel;
     this.projectMemberModel = projectMemberModel;
     this.project            = project;
     this.projectModel.projectDataChanged += UpdateView;
     infoController = new ProjectInfoController(projectModel);
     SetProjectContext();
 }
Exemple #12
0
 public CreateUpdateProject(String purpose, int projectId, UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
 {
     InitializeComponent();
     this.userModel          = userModel;
     this.issueModel         = issueModel;
     this.projectModel       = projectModel;
     this.projectMemberModel = projectMemberModel;
     controller     = new CreateUpdateProjectController(userModel, issueModel, projectModel);
     infoController = new ProjectInfoController(projectModel);
     this.projectModel.projectDataChanged += Update;
     Initialize(purpose, projectId);
 }
Exemple #13
0
        public ActionResult Delete([FromBody] ProjectMemberModel model)
        {
            //validation
            var result = db.ProjectMembers.Where(x => x.ProjectMemberID == model.ProjectMemberID).FirstOrDefault();

            if (result == null)
            {
                return(BadRequest());
            }
            db.Remove(result);
            db.SaveChangesAsync();
            return(Ok());
        }
Exemple #14
0
 public IssueList(UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel, Project project)
 {
     InitializeComponent();
     this.userModel          = userModel;
     this.issueModel         = issueModel;
     this.projectModel       = projectModel;
     this.projectMemberModel = projectMemberModel;
     this.projectContext     = project;
     this.projectModel.projectDataChanged += Update;
     this.issueModel.issueDataChanged     += ShowIssue;
     Update();
     ShowIssue();
 }
 public UserListView(UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
     : base(userModel, issueModel, projectModel, projectMemberModel)
 {
     InitializeComponent();
     this.userModel = userModel;
     this.issueModel = issueModel;
     this.projectModel = projectModel;
     this.projectMemberModel = projectMemberModel;
     userModel.userDataChanged += updateUserList;
     issueModel.issueDataChanged += updateUserList;
     projectModel.projectDataChanged += updateUserList;
     securityController = new SecurityController(userModel);
     userController = new UserController(userModel);
 }
        /// <summary>
        /// 根据项目ID和用户邮箱获取该用户在该项目中的信息
        /// </summary>
        /// <param name="projectID"></param>
        /// <param name="mail"></param>
        /// <returns></returns>
        public ProjectMemberModel GetProjectMember(int projectID, string mail)
        {
            mail = string.IsNullOrEmpty(mail) ? mail : mail.ToLower();
            ProjectMemberModel model = null;
            var member = this._projectMemberBll.GetEntity(new DapperExQuery <T_PROJECT_MEMBER>()
                                                          .AndWhere(s => s.P_PROJECT_ID, OperationMethod.Equal, projectID)
                                                          .AndWhere(s => s.U_USER_EMAIL, OperationMethod.Equal, mail)
                                                          );

            if (member != null)
            {
                model = Mapper.Map <T_PROJECT_MEMBER, ProjectMemberModel>(member);
            }
            return(model);
        }
        public IssueInfoView(int issueId, UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
            : base(userModel, issueModel, projectModel, projectMemberModel)
        {
            InitializeComponent();
            this.userModel          = userModel;
            this.issueModel         = issueModel;
            this.projectModel       = projectModel;
            this.projectMemberModel = projectMemberModel;
            userController          = new UserController(userModel);
            issueController         = new IssueController(userModel, issueModel, projectModel);
            projectMemberController = new ProjectMemberController(projectMemberModel, userModel);

            issueDetails   = issueController.getIssueDetails(issueId);
            projectMembers = projectMemberController.getUserByProjectId(issueDetails[0].ProjectId, true);
        }
Exemple #18
0
        public ReportView(UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
            : base(userModel, issueModel, projectModel, projectMemberModel)
        {
            InitializeComponent();
            this.userModel          = userModel;
            this.issueModel         = issueModel;
            this.projectModel       = projectModel;
            this.projectMemberModel = projectMemberModel;
            securityController      = new SecurityController(userModel);
            projectInfoController   = new ProjectInfoController(projectModel);
            reportController        = new ReportController(userModel, issueModel, projectModel);

            user = SecurityModel.getInstance().AuthenticatedUser;

            initializeView();
        }
        /// <summary>
        /// check member has been added to project yet
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ResultModel <bool> > HasAlreadyAdded(ProjectMemberModel model)
        {
            ResultModel <bool> result = new ResultModel <bool>();

            ProjectMember data = await UnitOfWork
                                 .ProjectMemberRepository
                                 .GetAsync(c => c.MemberId == model.AccountId &&
                                           c.ProjectId == model.ProjectId, allowTracking : false);

            if (data != null)
            {
                result.Data   = true;
                result.Status = ActionStatus.Ok;
            }

            return(result);
        }
        public CreateIssueView(int projectId, UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
            : base(userModel, issueModel, projectModel, projectMemberModel)
        {
            InitializeComponent();
            this.userModel          = userModel;
            this.issueModel         = issueModel;
            this.projectModel       = projectModel;
            this.projectMemberModel = projectMemberModel;
            issueController         = new IssueController(userModel, issueModel, projectModel);
            projectList             = user.JoinedProjects;
            Project nowProject = projectList.Find(x => x.ProjectId == projectId);

            projectComboBox.Items.Add(nowProject);
            projectComboBox.SelectedIndex       = 0;
            projectComboBox.Enabled             = false;
            issuePriorityComboBox.SelectedIndex = 0;
            issueSeverityComboBox.SelectedIndex = 0;
        }
Exemple #21
0
        public Member(UserModel userModel, IssueModel issueModel, ProjectModel projectModel, Project project, ProjectMemberModel projectMemberModel)
        {
            InitializeComponent();
            this.userModel                                    = userModel;
            this.issueModel                                   = issueModel;
            this.projectModel                                 = projectModel;
            this.project                                      = project;
            this.projectMemberModel                           = projectMemberModel;
            memberController                                  = new ProjectMemberController(projectMemberModel, userModel);
            _projectName.Text                                 = project.ProjectName;
            this.userModel.userDataChanged                   += UpdateView;
            this.projectModel.projectDataChanged             += UpdateView;
            this.projectMemberModel.projectMemberDataChanged += UpdateView;
            InitializeDataGridView(_dataGridView);
            InitializeDataGridView(_dataGridViewJoining);
            InitializeTabControl(_memberList);
            ShowData();
//            _dataGridView += dataGridView1_CellValueChanged;
        }
        /// <summary>
        /// Add member to project
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <ResultModel <ProjectMemberModel> > AddMember(ProjectMemberModel model)
        {
            ResultModel <ProjectMemberModel> result = new ResultModel <ProjectMemberModel>();

            if (!IsOwner(model.ProjectId))
            {
                result.Status = ActionStatus.UnAuthorized;
            }
            else
            {
                //add project member
                ProjectMember member = new ProjectMember
                {
                    MemberId   = model.AccountId,
                    ProjectId  = model.ProjectId,
                    AddDate    = DateTime.Now,
                    ActiveCode = model.ActiveCode,
                    IsPending  = true
                };

                UnitOfWork.ProjectMemberRepository.Add(member);
                int iresult = await UnitOfWork.CommitAsync();

                if (iresult > 0)
                {
                    var displayName = await UnitOfWork.
                                      AccountInfoRepository
                                      .Entity.Where(c => c.AccountId == member.MemberId)
                                      .Select(c => c.DisplayName)
                                      .AsNoTracking()
                                      .FirstOrDefaultAsync();

                    model.AddDate     = member.AddDate;
                    model.DisplayName = displayName;
                    model.IsPending   = member.IsPending;

                    result.Data   = model;
                    result.Status = ActionStatus.Ok;
                }
            }

            return(result);
        }
Exemple #23
0
        public ActionResult Edit([FromBody] ProjectMemberModel model)
        {
            //validation
            var result = db.ProjectMembers.Where(x => x.ProjectMemberID == model.ProjectMemberID).FirstOrDefault();

            if (result == null)
            {
                return(BadRequest());
            }
            result.State = model.State;
            result.Title = model.Title;
            result.ReginalPowerCorpRef = model.ReginalPowerCorpRef;
            //result.ServiceTreeRef = model.ServiceTreeRef;
            result.PersoneRef  = model.PersoneRef;
            result.RoleOrgsRef = model.RoleOrgsRef;
            //result.ProjectInfoRef = model.ProjectInfoRef;
            result.Description = model.Description;
            db.Update(result);
            db.SaveChangesAsync();
            return(Ok());
        }
        public ProjectListView(UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
            : base(userModel, issueModel, projectModel, projectMemberModel)
        {
            InitializeComponent();
            this.userModel          = userModel;
            this.issueModel         = issueModel;
            this.projectModel       = projectModel;
            this.projectMemberModel = projectMemberModel;
            projectInfoController   = new ProjectInfoController(projectModel);
            projectListController   = new ProjectListController(projectModel, projectMemberModel);

            projectModel.projectDataChanged             += updateView;
            projectMemberModel.projectMemberDataChanged += updateView;

            user = SecurityModel.getInstance().AuthenticatedUser;

            systemManagerTableLayoutPanel.Enabled = true;
            systemManagerTableLayoutPanel.Visible = true;
            generalUserTableLayoutPanel.Enabled   = false;
            generalUserTableLayoutPanel.Visible   = false;
        }
Exemple #25
0
        static void Main()
        {
            System.Net.ServicePointManager.ServerCertificateValidationCallback =
                new System.Net.Security.RemoteCertificateValidationCallback(delegate(object MySender,
                                                                                     System.Security.Cryptography.X509Certificates.X509Certificate MyCertificate,
                                                                                     System.Security.Cryptography.X509Certificates.X509Chain MyChain,
                                                                                     System.Net.Security.SslPolicyErrors MyErrors)
            {
                if (MySender is System.Net.WebRequest)
                {
                    //忽略憑証檢查,一律回傳true
                    return(true);
                }
                return(false);
            });

            UserModel          userModel          = new UserModel();
            IssueModel         issueModel         = new IssueModel();
            ProjectModel       projectModel       = new ProjectModel();
            ProjectMemberModel projectMemberModel = new ProjectMemberModel();

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            while (SecurityModel.getInstance().IsProgramRunning)
            {
                Application.Run(new LoginView(userModel, issueModel, projectModel, projectMemberModel));
                while (SecurityModel.getInstance().AuthenticatedUser != null)
                {
                    if (SecurityModel.getInstance().AuthenticatedUser.Authority == (int)User.AuthorityEnum.GeneralUser)
                    {
                        Application.Run(new UserInfoView(userModel, issueModel, projectModel, projectMemberModel));
                    }
                    else
                    {
                        Application.Run(new SecurityView(userModel, issueModel, projectModel, projectMemberModel));
                    }
                }
            }
        }
        public IssueListView(UserModel userModel, IssueModel issueModel, ProjectModel projectModel, ProjectMemberModel projectMemberModel)
            : base(userModel, issueModel, projectModel, projectMemberModel)
        {
            InitializeComponent();
            this.userModel          = userModel;
            this.issueModel         = issueModel;
            this.projectModel       = projectModel;
            this.projectMemberModel = projectMemberModel;
            userController          = new UserController(userModel);
            issueController         = new IssueController(userModel, issueModel, projectModel);
            projectInfoController   = new ProjectInfoController(projectModel);

            user              = SecurityModel.getInstance().AuthenticatedUser;
            initialKeyword    = user.UserName;
            initialSearchType = (int)Issue.SearchType.ByPersonInChargeName;

            if (user.Authority == (int)User.AuthorityEnum.SystemManager)
            {
                createIssueButton.Enabled         = false;
                createIssueButton.Visible         = false;
                viewStatisticReportButton.Enabled = false;
                viewStatisticReportButton.Visible = false;
            }
        }
Exemple #27
0
        ///// <summary>
        ///// 添加项目成员
        ///// </summary>
        ///// <param name="projId"></param>
        ///// <param name="userId"></param>
        ///// <param name="token"></param>
        ///// <returns></returns>
        //public Task<HttpResponseMessage> AddProjectMember(int projId, int userId, TokenModel token)
        //{
        //    var model = new ProjectMemberModel { ProjectId = projId, UserId = userId };
        //    TokenClient.RefreshToken(_client, token);
        //    return _client.PostAsJsonAsync(_memberRoutePrefix + "/AddMember/", model);
        //}

        public Task <HttpResponseMessage> RemoveProjectMember(ProjectMemberModel model, TokenModel token)
        {
            TokenClient.RefreshToken(_client, token);
            return(_client.PostAsJsonAsync(_memberRoutePrefix + "/RemoveMember/", model));
        }
 public Project RemoveMemberFromProject([FromBody] ProjectMemberModel model)
 {
     return(_projects.RemoveMemberFromProject(model.MemberId, model.ProjectId));
 }
 public ProjectListController(ProjectModel projectModel, ProjectMemberModel projectMemberModel)
 {
     this.projectModel       = projectModel;
     this.projectMemberModel = projectMemberModel;
 }
 public Project AddMemberToProject([FromBody] ProjectMemberModel model)
 {
     return(_projects.AddMemberToProject(model.MemberId, model.ProjectId));
 }