예제 #1
0
        private void Import(Tasks _newTask, Bugnet.DatabaseContentDataSet.BugTimeEntryRow _te, Bugnet.DatabaseContentDataSet.BugCommentDataTable _comments, Entities _entt)
        {
            int _bugId = 0;

            try
            {
                _bugId = _te.BugTimeEntryId;
                Resources _author = GetOrAdd <Resources>(_entt.Resources, m_ResourcesDictionaryBugNet, _te.CreatedUserId);
                Workload  _new    = new Workload()
                {
                    Hours                   = Convert.ToDouble(_te.Duration),
                    ReadOnly                = false,
                    Title                   = _newTask.Title,//_comments[ _te.BugCommentId ].Comment,
                    WeekNumber              = WeekNumber(_te.WorkDate),
                    Workload2ProjectTitle   = _newTask.Task2ProjectTitle,
                    Workload2ResourcesTitle = _author,
                    Workload2StageTitle     = _newTask.Task2ProjectTitle == null ? null : _newTask.Task2ProjectTitle.Project2StageTitle,
                    Workload2TaskTitle      = _newTask,
                    WorkloadDate            = _te.WorkDate,
                    Year = _te.WorkDate.Year
                };
                _entt.Workload.InsertOnSubmit(_new);
                _entt.SubmitChanges();
            }
            catch (Exception _ex)
            {
                Console.WriteLine(String.Format("Error importing BugTimeEntryRow of id: {0}, because of {1}", _bugId, _ex.Message));
            };
        }
예제 #2
0
        private void Import(Bugnet.DatabaseContentDataSet.BugDataTable bugDataTable, Bugnet.DatabaseContentDataSet.BugCommentDataTable comments, Entities entt)
        {
            Console.WriteLine("BugNet BugDataTable starting");
            int _iteration = 0;
            int _bugId     = 0;

            foreach (var item in bugDataTable)
            {
                try
                {
                    if (item.LastUpdate < Properties.Settings.Default.WorkloadStartDate)
                    {
                        continue;
                    }
                    _bugId = item.BugID;
                    Tasks _newTask = Create <Tasks>(entt.Task, null, item.Summary.SPValidSubstring(), item.BugID);
                    _newTask.Body = item.Description;
                    _newTask.Task2CategoryTitle            = GetOrAdd <Category>(entt.Category, m_CategoryDictionary, item.ComponentID);
                    _newTask.Task2MilestoneDefinedInTitle  = GetOrAdd <Milestone>(entt.Milestone, m_MilestoneDictionary, item.VersionID);
                    _newTask.Task2MilestoneResolvedInTitle = GetOrAdd <Milestone>(entt.Milestone, m_MilestoneDictionary, item.FixedInVersionId);
                    _newTask.Task2ProjectTitle             = GetOrAdd <Projects>(entt.Projects, m_ProjectsDictionaryBugNet, item.ProjectID);
                    _newTask.BaselineEnd   = item.IsDueDateNull() ? item.ReportedDate : item.DueDate;
                    _newTask.BaselineStart = item.ReportedDate;
                    _newTask.TaskStart     = item.LastUpdate;
                    _newTask.TaskEnd       = item.LastUpdate;
                    _newTask.Adjust();
                    if (!item.IsAssignedToUserIdNull())
                    {
                        _newTask.Task2ResourcesTitle = GetOrAdd <Resources>(entt.Resources, m_ResourcesDictionaryBugNet, item.AssignedToUserId);
                    }
                    else
                    {
                        _newTask.Task2ResourcesTitle = null;
                    }
                    _newTask.Task2SPriorityTitle   = GetOrAdd <Priority>(entt.Priority, m_PriorityDictionary, item.PriorityID);
                    _newTask.Task2SResolutionTitle = GetOrAdd <Resolution>(entt.Resolution, m_ResolutionDictionary, item.ResolutionID);
                    _newTask.Task2StatusTitle      = GetOrAdd <Status>(entt.Status, m_StatusDictionary, item.StatusID);
                    _newTask.Active = _newTask.Task2StatusTitle.Active;
                    if (_newTask.Active.GetValueOrDefault(false))
                    {
                        _newTask.Task2MilestoneResolvedInTitle.Active = true;
                    }
                    _newTask.Task2TypeTitle = GetOrAdd <TaskType>(entt.Type, m_TaskTypeDictionary, item.TypeID);
                    GetOrAddEstimation(entt.Estimation, _newTask.Task2ResourcesTitle, _newTask.Task2ProjectTitle);
                    foreach (Bugnet.DatabaseContentDataSet.BugCommentRow _comment in item.GetBugCommentRows())
                    {
                        Import(_newTask, _comment, entt);
                    }
                    foreach (Bugnet.DatabaseContentDataSet.BugTimeEntryRow _te in item.GetBugTimeEntryRows())
                    {
                        Import(_newTask, _te, comments, entt);
                    }
                    if (_newTask.Task2TypeTitle.Title.ToLower().Contains("new"))
                    {
                        Requirements _newRequirement = Create <Requirements>(entt.Requirements, null, _newTask.Title, -1);
                        _newRequirement.Body = _newTask.Body;
                        _newRequirement.Requirements2MilestoneTitle = _newTask.Task2MilestoneResolvedInTitle;
                        _newRequirement.Requirements2ProjectsTitle  = _newTask.Task2ProjectTitle;
                        _newRequirement.RequirementsType            = RequirementsType.Functional;
                        entt.SubmitChanges();
                        _newTask.Task2RequirementsTitle = _newRequirement;
                    }
                    Console.Write("\r");
                    Console.Write(_iteration++);
                    if (_iteration % 100 == 0)
                    {
                        entt.SubmitChanges();
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(String.Format("Error importing BugDataTable of BugID: {0}, because of {1}", _bugId, ex.Message));
                }
            }
            entt.SubmitChanges();
        }