Пример #1
0
        public void Create(WorkspaceItem item)
        {
            if (item.Id == Guid.Empty)
            {
                throw new ArgumentNullException(nameof(item.Id));
            }

            // default values
            // Guid defaultId = (item.Id != Guid.Empty) ? item.Id : Guid.NewGuid();
            DateTime            startDate = item.StartDate ?? DateTime.Today;
            DateTime            endDate   = item.EndDate ?? DateTime.Today;
            WorkloadBacklogUser wbUser    = new WorkloadBacklogUser()
            {
                UserUniqueName = item.CreatedBy
            };

            var workloadToBeSaved = new WorkloadBacklog()
            {
                WBID          = item.Id,
                WBTitle       = item.Title,
                WBStatus      = (Status)item.ItemState,
                WBDescription = item.Description,

                // metadata
                WBCreatedBy   = item.CreatedBy,
                WBCreatedDate = item.CreatedDate,

                // use default values
                WBStartDate  = startDate,
                WBEndDate    = endDate,
                WBUsers      = new[] { wbUser },
                WBIsWorkload = true, // must be true

                // optional values
                WBActivity     = null,
                WBAppointments = null,
                WBComplexity   = 0,
                WBExpertise    = 0,
                WBFiles        = null,
                WBMetrics      = null,
                WBTechnologies = null
            };

            _context.WorkloadBacklogs.Add(workloadToBeSaved);
            _context.SaveChanges();
        }
Пример #2
0
        public bool AddNewWorkload(WorkloadViewModel workload)
        {
            try
            {
                //Load related Activity:
                var activity = _context.Activities.First(a => a.ActivityID == workload.WBActivity);
                //Load related Metrics:
                var metricList = new List <WorkloadBacklogMetric>();
                if (workload.WBMetrics != null)
                {
                    foreach (var mId in workload.WBMetrics)
                    {
                        var metric = _context.Metrics.First(m => m.MetricID == mId);
                        metricList.Add(new WorkloadBacklogMetric()
                        {
                            Metric = metric
                        });
                    }
                }
                //Load related Technologies:
                var technologyList = new List <WorkloadBacklogTechnology>();
                if (workload.WBTechnologies != null)
                {
                    foreach (var tId in workload.WBTechnologies)
                    {
                        var technology = _context.Technologies.First(t => t.TechnologyID == tId);
                        technologyList.Add(new WorkloadBacklogTechnology()
                        {
                            Technology = technology
                        });
                    }
                }
                //Load related Users:
                var userList = new List <WorkloadBacklogUser>();
                if (workload.WBUsers != null)
                {
                    foreach (var uniqueName in workload.WBUsers)
                    {
                        var user = _context.Users.First(u => u.UniqueName == uniqueName);
                        userList.Add(new WorkloadBacklogUser()
                        {
                            User = user
                        });
                    }
                }
                //Associate related Files:
                var filesList = new List <File>();
                if (workload.WBFilesList != null)
                {
                    foreach (var f in workload.WBFilesList)
                    {
                        filesList.Add(new File()
                        {
                            FileID          = f.Item1,
                            FileLink        = f.Item2,
                            FileName        = f.Item3,
                            FileDescription = string.Empty,
                        });
                    }
                }
                //Create workload object:
                var workloadToBeSaved = new WorkloadBacklog()
                {
                    WBActivity     = activity,
                    WBAppointments = null,
                    WBComplexity   = (Complexity)workload.WBComplexity,
                    WBCreatedBy    = workload.WBCreatedBy,
                    WBCreatedDate  = workload.WBCreatedDate,
                    WBDescription  = workload.WBDescription,
                    WBEndDate      = workload.WBEndDate,
                    WBExpertise    = (Expertise)workload.WBExpertise,
                    WBFiles        = filesList,
                    WBID           = workload.WBID,
                    WBIsWorkload   = workload.WBIsWorkload,
                    WBMetrics      = metricList,
                    WBStartDate    = workload.WBStartDate,
                    WBStatus       = (Status)workload.WBStatus,
                    WBTechnologies = technologyList,
                    WBTitle        = workload.WBTitle,
                    WBUsers        = userList
                };

                _context.WorkloadBacklogs.Add(workloadToBeSaved);
                _context.SaveChanges();
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }