public void Install() { var groupPlanningDirectorate = new RoleGroup { Id = 1, Name = "Planning Directorate", Code = "CPD", Level = _context.Levels.Local.Where(x => x.Id == 1).First(), IsActive = true }; var groupOperationDirectorate = new RoleGroup { Id = 2, Name = "Operation Directorate", Code ="COO", Level = _context.Levels.Local.Where(x => x.Id == 1).First(), IsActive = true }; var groupFinanceDirectorate = new RoleGroup { Id = 3, Name = "Finance Directorate", Code = "CFD", Level = _context.Levels.Local.Where(x => x.Id == 1).First(), IsActive = true }; var groupTechnicalDirectorate = new RoleGroup { Id = 4, Name = "Technical Directorate", Code = "CTD", Level = _context.Levels.Local.Where(x => x.Id == 1).First(), IsActive = true }; var groupCommercialDirectorate = new RoleGroup { Id = 5, Name = "Commercial Directorate", Code = "CCD", Level = _context.Levels.Local.Where(x => x.Id == 1).First(), IsActive = true }; var groupCAffairDirectorate = new RoleGroup { Id = 6, Name = "Corporate Affair Directorate", Code = "CCD", Level = _context.Levels.Local.Where(x => x.Id == 1).First(), IsActive = true }; var groupPresdir = new RoleGroup { Id = 7, Name = "President Director Office", Code = "PDO", Level = _context.Levels.Local.Where(x => x.Id == 1).First(), IsActive = true }; var groupHCMDirectorate = new RoleGroup { Id = 8, Name = "Human Capital Management", Code = "HCM", Level = _context.Levels.Local.Where(x => x.Id == 2).FirstOrDefault(), IsActive = true }; var groupProcurement = new RoleGroup { Id = 9, Name = "Procurement", Code = "PRO", Level = _context.Levels.Local.Where(x => x.Id == 1).FirstOrDefault(), IsActive = true }; var groupQHSE = new RoleGroup { Id = 10, Name = "QHSE", Code = "QHSE", Level = _context.Levels.Local.Where(x => x.Id == 2).FirstOrDefault(), IsActive = true }; var groupIT = new RoleGroup { Id = 11, Name = "Information Communication & Tech", Code = "ICT", Level = _context.Levels.Local.Where(x => x.Id == 2).FirstOrDefault(), IsActive = true }; var groupCSR = new RoleGroup { Id = 12, Name = "Community Support & Relation", Code = "CSR", Level = _context.Levels.Local.Where(x => x.Id == 2).FirstOrDefault(), IsActive = true }; _context.RoleGroups.Add(groupPlanningDirectorate); _context.RoleGroups.Add(groupOperationDirectorate); _context.RoleGroups.Add(groupFinanceDirectorate); _context.RoleGroups.Add(groupTechnicalDirectorate); _context.RoleGroups.Add(groupCommercialDirectorate); _context.RoleGroups.Add(groupCAffairDirectorate); _context.RoleGroups.Add(groupPresdir); _context.RoleGroups.Add(groupHCMDirectorate); _context.RoleGroups.Add(groupProcurement); _context.RoleGroups.Add(groupQHSE); _context.RoleGroups.Add(groupIT); _context.RoleGroups.Add(groupCSR); }
public SaveKpiTransformationResponse Save(SaveKpiTransformationRequest request) { try { if (request.Id == 0) { var kpiTransformation = new KpiTransformation { Name = request.Name, PeriodeType = request.PeriodeType }; foreach (var roleId in request.RoleGroupIds.Distinct().ToArray()) { var role = new RoleGroup { Id = roleId }; DataContext.RoleGroups.Attach(role); kpiTransformation.RoleGroups.Add(role); } foreach (var kpiId in request.KpiIds.Distinct().ToArray()) { var kpi = new Kpi { Id = kpiId }; DataContext.Kpis.Attach(kpi); kpiTransformation.Kpis.Add(kpi); } DataContext.KpiTransformations.Add(kpiTransformation); DataContext.SaveChanges(); } else { var kpiTransformation = DataContext.KpiTransformations.Include(x => x.RoleGroups).Include(x => x.Kpis).Single(x => x.Id == request.Id); kpiTransformation.Name = request.Name; kpiTransformation.PeriodeType = request.PeriodeType; foreach (var role in kpiTransformation.RoleGroups.ToList()) { kpiTransformation.RoleGroups.Remove(role); } foreach (var kpi in kpiTransformation.Kpis.ToList()) { kpiTransformation.Kpis.Remove(kpi); } foreach (var roleId in request.RoleGroupIds.Distinct().ToArray()) { var role = DataContext.RoleGroups.Local.FirstOrDefault(x => x.Id == roleId); if (role == null) { role = new RoleGroup { Id = roleId }; DataContext.RoleGroups.Attach(role); } kpiTransformation.RoleGroups.Add(role); } foreach (var kpiId in request.KpiIds.Distinct().ToArray()) { var kpi = DataContext.Kpis.Local.FirstOrDefault(x => x.Id == kpiId); if (kpi == null) { kpi = new Kpi { Id = kpiId }; DataContext.Kpis.Attach(kpi); } kpiTransformation.Kpis.Add(kpi); } DataContext.SaveChanges(); } return new SaveKpiTransformationResponse { IsSuccess = true, Message = "You have been successfully updated kpi transformation" }; } catch(Exception e) { return new SaveKpiTransformationResponse { IsSuccess = false, Message = e.Message }; } }