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(); }
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); } }