public IResult ManageApprovalEventRole(ApprovalEventRoleViewModel approvalEventRoleViewModel)
        {
            var result = new Result
            {
                Operation = Operation.Create,
                Status    = Status.Success
            };

            try
            {
                var eventRole    = _approvalRepository.GetAllApprovalEventRole().FirstOrDefault(x => x.ApprovalEventId == approvalEventRoleViewModel.ApprovalEventId);;
                var existingRole = new Roles();
                if (eventRole != null)
                {
                    existingRole = eventRole.Role;
                }
                if (existingRole.RoleId == 0)
                {
                    var users = approvalEventRoleViewModel.Users;
                    foreach (var user in users)
                    {
                        var approvalEventRoleModel = new ApprovalEventRoles();
                        approvalEventRoleModel.MapFromViewModel(approvalEventRoleViewModel, (ClaimsIdentity)_principal.Identity);
                        approvalEventRoleModel.UserId = user.UserId;
                        _approvalRepository.AddApprovalEventRole(approvalEventRoleModel);
                    }
                    result.Body = approvalEventRoleViewModel.ApprovalEventId;
                }
                else
                {
                    if (existingRole.RoleId == approvalEventRoleViewModel.RoleId)
                    {
                        result.Operation = Operation.Update;
                        UpdateApprovalEventRole(approvalEventRoleViewModel);
                        result.Body = approvalEventRoleViewModel.ApprovalEventId;
                    }
                    else
                    {
                        result.Message = "";
                        result.Status  = Status.Fail;
                    }
                }
                _approvalRepository.SaveChanges();
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                result.Status  = Status.Error;
            }
            return(result);
        }