public async Task <ActionResult <ApprovalRoleMap> > PostApprovalRoleMap(ApprovalRoleMapDTO approvalRoleMapDto) { var AprvRolMap = _context.ApprovalRoleMaps.Where(a => a.ApprovalGroupId == approvalRoleMapDto.ApprovalGroupId && a.RoleId == approvalRoleMapDto.RoleId && a.ApprovalLevelId == approvalRoleMapDto.ApprovalLevelId).FirstOrDefault(); if (AprvRolMap != null) { return(Conflict(new RespStatus { Status = "Failure", Message = "Approval Role Map Already Exists" })); } var approvalgroup = _context.ApprovalRoleMaps.Where(a => a.ApprovalGroupId == approvalRoleMapDto.ApprovalGroupId).ToList(); int maxApprLevel = 0; if (approvalgroup.Count > 0) { maxApprLevel = _context.ApprovalRoleMaps.Where(a => a.ApprovalGroupId == approvalRoleMapDto.ApprovalGroupId).OrderByDescending(a => a.ApprovalLevelId).First().ApprovalLevelId; } if (approvalRoleMapDto.ApprovalLevelId != maxApprLevel + 1) { return(Conflict(new RespStatus { Status = "Failure", Message = "Assign only in Linear Increasing Order" })); } //Check for Duplicate Levels in the same group AprvRolMap = _context.ApprovalRoleMaps.Where(a => a.ApprovalGroupId == approvalRoleMapDto.ApprovalGroupId && a.ApprovalLevelId == approvalRoleMapDto.ApprovalLevelId).FirstOrDefault(); if (AprvRolMap != null) { return(Conflict(new RespStatus { Status = "Failure", Message = "Group Duplicate Approval Levels are Not allowed !" })); } ApprovalRoleMap approvalRoleMap = new ApprovalRoleMap { Id = approvalRoleMapDto.Id, ApprovalGroupId = approvalRoleMapDto.ApprovalGroupId, RoleId = approvalRoleMapDto.RoleId, ApprovalLevelId = approvalRoleMapDto.ApprovalLevelId }; _context.ApprovalRoleMaps.Add(approvalRoleMap); await _context.SaveChangesAsync(); return(Ok(new RespStatus { Status = "Success", Message = "Approval To Role... Mapped!" })); }
public async Task <ActionResult <ApprovalRoleMap> > PostApprovalRoleMap(ApprovalRoleMapDTO approvalRoleMapDto) { ApprovalRoleMap approvalRoleMap = new ApprovalRoleMap(); approvalRoleMap.Id = approvalRoleMapDto.Id; approvalRoleMap.ApprovalGroupId = approvalRoleMapDto.ApprovalGroupId; approvalRoleMap.RoleId = approvalRoleMapDto.RoleId; approvalRoleMap.ApprovalLevel = approvalRoleMapDto.ApprovalLevel; _context.ApprovalRoleMaps.Add(approvalRoleMap); await _context.SaveChangesAsync(); return(CreatedAtAction("GetApprovalRoleMap", new { id = approvalRoleMap.Id }, approvalRoleMap)); }