Exemple #1
0
        public DMSLogicModel(string userName, ProjectLogicModel projectLogicModel,
                             DMSType dmsType = DMSType.PublishCooperationPlatform, string uid = "")//默认为DMS绑定Project,使用ProjectId作为Uid
            : base(userName, projectLogicModel)
        {
            m_dmsType = dmsType;
            m_uid     = uid;

            LoadDMS();
        }
        // 创建一个项目
        // 创建后给创建者增加读、写、操作的权限
        public ProjectSeriesLogicModel NewProjectSeries(string name, string projectSeriesType, string personInCharge, string createTime, string estimatedFinishTime, string email)
        {
            ValidateUtils.Name(name, "项目名称").FileName();

            CommUtils.Assert(email.Length <= 38, "邮箱不能超过38个字符数!");
            CommUtils.AssertHasContent(personInCharge, "[项目负责人]不能为空");
            CommUtils.Assert(m_dbAdapter.Authority.IsUserExist(personInCharge), "[用户]不存在");

            CommUtils.AssertHasContent(createTime, "[立项日期]不能为空");
            CommUtils.AssertHasContent(estimatedFinishTime, "[计划完成日期]不能为空");

            var valStartTime           = DateTime.Parse(createTime);
            var valEstimatedFinishTime = DateTime.Parse(estimatedFinishTime);

            CommUtils.Assert(valEstimatedFinishTime >= valStartTime, "计划完成日期[{0}]必须大于等于立项日期[{1}]", valEstimatedFinishTime, valStartTime);

            var type          = CommUtils.ParseEnum <ProjectSeriesType>(projectSeriesType);
            var projectSeries = m_dbAdapter.ProjectSeries.NewProjectSeries(name, type, personInCharge, valStartTime, valEstimatedFinishTime, email);

            m_projectSeries = projectSeries;

            var now = DateTime.Now;

            ABSMgrConn.TableProject project = new ABSMgrConn.TableProject()
            {
                project_guid      = Guid.NewGuid().ToString(),
                project_series_id = projectSeries.Id,
                name                 = projectSeries.Name,
                type_id              = (int)ProjectSeriesStage.发行,
                model_id             = -1,
                cnabs_deal_id        = null,
                create_time          = DateTime.Parse(now.ToString("yyyy-MM-dd")),
                create_user_name     = m_userName,
                time_stamp           = now,
                time_stamp_user_name = m_userName,
                record_status_id     = (int)RecordStatus.Valid
            };
            project.project_id = m_dbAdapter.Project.NewProject(project);
            m_currentProject   = new ProjectLogicModel(m_userName, new Project(project));

            var adminUsernames = new List <string> {
                projectSeries.CreateUserName, projectSeries.PersonInCharge
            };

            adminUsernames = adminUsernames.Distinct(StringComparer.OrdinalIgnoreCase).ToList();

            //给[创建者、负责人]添加ProjectSeries与Project的所有权限
            foreach (var adminUsername in adminUsernames)
            {
                m_dbAdapter.Permission.NewPermission(adminUsername, project.project_guid,
                                                     PermissionObjectType.Project, PermissionType.Read);

                m_dbAdapter.Permission.NewPermission(adminUsername, project.project_guid,
                                                     PermissionObjectType.Project, PermissionType.Write);

                m_dbAdapter.Permission.NewPermission(adminUsername, project.project_guid,
                                                     PermissionObjectType.Project, PermissionType.Execute);

                m_dbAdapter.Permission.NewPermission(adminUsername, projectSeries.Guid,
                                                     PermissionObjectType.ProjectSeries, PermissionType.Read);

                m_dbAdapter.Permission.NewPermission(adminUsername, projectSeries.Guid,
                                                     PermissionObjectType.ProjectSeries, PermissionType.Write);

                m_dbAdapter.Permission.NewPermission(adminUsername, projectSeries.Guid,
                                                     PermissionObjectType.ProjectSeries, PermissionType.Execute);
            }

            return(this);
        }
 public PermissionLogicModel(ProjectLogicModel project)
     : base(project)
 {
 }
Exemple #4
0
 public DMSFolderLogicModel(ProjectLogicModel projectLogicModel)
     : base(projectLogicModel.UserName, projectLogicModel)
 {
 }
 public TaskGroupLogicModel(ProjectLogicModel project, TaskGroup taskGroup)
     : base(project)
 {
     m_instance = taskGroup;
 }
 public DMSFileLogicModel(ProjectLogicModel projectLogicModel)
     : base(projectLogicModel.UserName, projectLogicModel)
 {
     AllVerFiles = new List <DMSFile>();
 }
 public ProjectActivityLogicModel(ProjectLogicModel project)
     : base(project)
 {
 }
Exemple #8
0
        private void Initialize(ProjectLogicModel project)
        {
            var objStr = "产品 [" + project.Instance.Name + "] ";

            var projectId = project.Instance.ProjectId;

            if (project.Instance.Model == null && project.Instance.ModelId > 0)
            {
                project.Instance.Model = m_dbAdapter.Project.GetModel(project.Instance.ModelId);
            }

            var modelFolder = WebConfigUtils.RootFolder + project.Instance.Model.ModelFolder + "\\";

            CommUtils.Assert(Directory.Exists(modelFolder), "找不到模型路径[{0}]", modelFolder);

            DealSchedule dealSchedule = null;

            try
            {
                dealSchedule = NancyUtils.GetDealSchedule(projectId, ignoreException: false);
            }
            catch (Exception e)
            {
                CommUtils.Assert(false, "加载模型失败:[{0}],模型路径:{1}"
                                 + Environment.NewLine + e.Message, modelFolder);
            }
            CommUtils.AssertNotNull(dealSchedule, "加载模型失败:{0}", modelFolder);
            m_instanse = dealSchedule;

            CommUtils.Assert(DateUtils.IsNormalDate(dealSchedule.FirstCollectionPeriodStartDate),
                             "模型中,FirstCollectionPeriodStartDate({0})不是有效的日期", dealSchedule.FirstCollectionPeriodStartDate.ToString());
            CommUtils.Assert(DateUtils.IsNormalDate(dealSchedule.FirstCollectionPeriodEndDate),
                             "模型中,FirstCollectionPeriodEndDate({0})不是有效的日期", dealSchedule.FirstCollectionPeriodEndDate.ToString());

            CommUtils.AssertNotNull(dealSchedule.PaymentDates, objStr + "中没有PaymentDatas数据");
            CommUtils.AssertNotNull(dealSchedule.DeterminationDates, objStr + "中没有DeterminationDates数据");
            CommUtils.AssertEquals(dealSchedule.PaymentDates.Length, dealSchedule.DeterminationDates.Length, objStr + "中DealSchedule数据加载失败");

            _durationPeriods = new List <DatasetScheduleLogicModel>();
            for (int i = 0; i < dealSchedule.PaymentDates.Length; i++)
            {
                var paymentDate    = dealSchedule.PaymentDates[i];
                var durationPeriod = new DatasetScheduleLogicModel(project);
                durationPeriod.Sequence    = m_project.GetAllPaymentDates(dealSchedule.PaymentDates).IndexOf(paymentDate) + 1;
                durationPeriod.PaymentDate = paymentDate;
                if (i == 0)
                {
                    durationPeriod.AsOfDateBegin = dealSchedule.FirstCollectionPeriodStartDate;
                }
                else
                {
                    durationPeriod.AsOfDateBegin = dealSchedule.DeterminationDates[i - 1];
                }

                durationPeriod.AsOfDateEnd = dealSchedule.DeterminationDates[i];

                if (i != 0)
                {
                    durationPeriod.Previous      = _durationPeriods[i - 1];
                    durationPeriod.Previous.Next = durationPeriod;
                }

                _durationPeriods.Add(durationPeriod);
            }

            ClosingDate   = dealSchedule.ClosingDate;
            LegalMaturity = dealSchedule.LegalMaturity;
        }
 public DatasetScheduleLogicModel(ProjectLogicModel project)
     : base(project)
 {
 }
Exemple #10
0
 public DealScheduleLogicModel(ProjectLogicModel project)
     : base(project)
 {
     Initialize(project);
 }
 public BaseLogicModel(ProjectLogicModel project)
 {
     CommUtils.AssertNotNull(project.UserName, "Project's user info can't be null in BaseLogicModel initialization.");
     m_project  = project;
     m_userName = project.UserName;
 }
 public BaseLogicModel(string userName, ProjectLogicModel project)
 {
     m_project  = project;
     m_userName = userName;
 }
 public TaskLogicModel(ProjectLogicModel project, Task task)
     : base(project)
 {
     m_instance = task;
 }
 public TaskLogicModel(ProjectLogicModel project, string shortCode)
     : base(project)
 {
     m_instance = m_dbAdapter.Task.GetTask(shortCode);
 }