public async Task <PermissionGroup> Update(PermissionGroup permissionGroup, int[] ReportIdSelected) { try { var reportsRemove = context.ReportPermissionGroup.Where(x => x.PermissionGroupId == permissionGroup.Id); context.RemoveRange(reportsRemove); List <ReportPermissionGroup> reportPermissionGroupList = new List <ReportPermissionGroup>(); foreach (var reportId in ReportIdSelected) { ReportPermissionGroup reportPermissionGroup = new ReportPermissionGroup(); reportPermissionGroup.ReportID = reportId; reportPermissionGroupList.Add(reportPermissionGroup); } permissionGroup.ReportPermissionGroup = reportPermissionGroupList; dbSet.Update(permissionGroup); await context.SaveChangesAsync(); await log.SaveLogApplicationMessage(ControllerName, $"Atualização do grupo de permissão com nome {permissionGroup.GroupName}."); return(permissionGroup); } catch (Exception error) { await log.SaveLogApplicationError(ControllerName, $"Erro ao atualizar grupo de permissão com o ID: {permissionGroup.Id}" + error.ToString()); return(null); } }
public async Task <IActionResult> Create([Bind("Name,Description,SQL")] Report report, int[] DatabaseIDSelected, int[] PermissionGroupIdSelected) { if (ModelState.IsValid) { foreach (var databaseId in DatabaseIDSelected) { ReportDatabaseGDR databaseGDR = new ReportDatabaseGDR(); databaseGDR.DatabaseGDRId = databaseId; report.ReportDatabaseGDR.Add(databaseGDR); } foreach (var permissionGroupId in PermissionGroupIdSelected) { ReportPermissionGroup permissionGroup = new ReportPermissionGroup(); permissionGroup.PermissionGroupId = permissionGroupId; report.ReportPermissionGroup.Add(permissionGroup); } report.User = User.Identity.Name; report.ChangeDate = DateTime.Now; bool status = await reportRepository.Create(report); return(RedirectToAction(nameof(Index))); } ViewBag.DatabaseGDR = new SelectList(await databaseGDRRepository.GetList(EnableEnum.Enabled), "Id", "Name"); ViewBag.EnableSelect = reportRepository.GetSelectList(report.Enable); return(View(report)); }
public async Task <Report> Update(Report report, int[] DatabaseIDSelected, int[] PermissionGroupIdSelected) { try { var databaseGDRRemove = context.ReportDatabaseGDR.Where(x => x.ReportID == report.Id); var permissionGroupRemove = context.ReportPermissionGroup.Where(x => x.ReportID == report.Id); context.RemoveRange(databaseGDRRemove); context.RemoveRange(permissionGroupRemove); List <ReportDatabaseGDR> reportDatabaseGDR = new List <ReportDatabaseGDR>(); foreach (var databaseId in DatabaseIDSelected) { ReportDatabaseGDR databaseGDR = new ReportDatabaseGDR(); databaseGDR.DatabaseGDRId = databaseId; reportDatabaseGDR.Add(databaseGDR); } report.ReportDatabaseGDR = reportDatabaseGDR; List <ReportPermissionGroup> reportPermissionGroup = new List <ReportPermissionGroup>(); foreach (var permissionGroupId in PermissionGroupIdSelected) { ReportPermissionGroup permissionGroup = new ReportPermissionGroup(); permissionGroup.PermissionGroupId = permissionGroupId; reportPermissionGroup.Add(permissionGroup); } report.ReportPermissionGroup = reportPermissionGroup; dbSet.Update(report); await context.SaveChangesAsync(); await log.SaveLogApplicationMessage(ControllerName, $"Atualização do relatório com nome {report.Name}."); return(report); } catch (Exception error) { await log.SaveLogApplicationError(ControllerName, $"Erro ao atualizar de relatório com o ID: {report.Id}" + error.ToString()); return(null); } }
public async Task <IActionResult> Create([Bind("GroupName,Domain,AccessType")] PermissionGroup permissionGroup, int[] ReportIdSelected) { if (ModelState.IsValid) { foreach (var reportId in ReportIdSelected) { ReportPermissionGroup report = new ReportPermissionGroup(); report.ReportID = reportId; permissionGroup.ReportPermissionGroup.Add(report); } permissionGroup.User = User.Identity.Name; permissionGroup.ChangeDate = DateTime.Now; bool status = await permissionGroupRepository.Create(permissionGroup); return(RedirectToAction(nameof(Index))); } ViewBag.AccessType = permissionGroupRepository.GetSelectAccessTypeList(permissionGroup.AccessType); return(View(permissionGroup)); }