public async Task <IHttpActionResult> PostUserRoleMap(UserRoleMapRequest item) { try { ValidationUtilities.ValidateForUserRoleMap(item); string currentUserEmail = HttpUtilities.GetUserNameFromToken(this.Request); Mapper.Initialize(cfg => cfg.CreateMap <UserRoleMapRequest, UserRoleMap>().ForMember(i => i.CreatedBy, j => j.UseValue(currentUserEmail))); var userRoleMap = Mapper.Map <UserRoleMapRequest, UserRoleMap>(item); userRoleMap.Id = Guid.NewGuid().ToString(); UserRoleMap current = await InsertAsync(userRoleMap); return(CreatedAtRoute("Tables", new { id = current.Id }, current)); } catch (HttpResponseException ex) { throw ex; } catch (Exception ex) { HttpUtilities.ServerError(ex, Request); return(null); } }
/// <summary> /// Validation for the User Role Mapping /// </summary> public static void ValidateForUserRoleMap(UserRoleMapRequest request) { var dbRole = dbContext.Roles.FirstOrDefault(item => item.Id == request.RoleId); if (dbRole == null) { var response = HttpUtilities.FrameHTTPResp(System.Net.HttpStatusCode.BadRequest, ErrorCodes.ROLE_DOES_NOT_EXISTS); throw new HttpResponseException(response); } var dbUser = dbContext.Users.FirstOrDefault(item => item.Id == request.UserId); if (dbUser == null) { var response = HttpUtilities.FrameHTTPResp(System.Net.HttpStatusCode.BadRequest, ErrorCodes.USER_DOES_NOT_EXISTS); throw new HttpResponseException(response); } var dbUserRoleMap = dbContext.UserRoleMaps.FirstOrDefault(item => item.RoleId == request.RoleId && item.UserId == request.UserId && !item.Deleted); if (dbUserRoleMap != null) { var response = HttpUtilities.FrameHTTPResp(System.Net.HttpStatusCode.BadRequest, ErrorCodes.USER_ROLE_MAP_EXISTS); throw new HttpResponseException(response); } }