コード例 #1
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="id">user identifier</param>
 /// <param name="roles"></param>
 /// <returns></returns>
 public ActionResult ChangeUserRoles(int id, AdminUserRoles roles)
 {
     this.UserRepository.ChangeUserRoles(id, roles);
     return this.Json(new { success = true });
 }
コード例 #2
0
        public OperationResult<OperationResults, object> ChangeUserRoles(int userID, AdminUserRoles roles)
        {
            using (var context = this.CreateMainContext())
            {
                context.Connection.Open();
                context.Transaction = context.Connection.BeginTransaction();

                try
                {
                    var record = context.AdminUserMembershipRecords.Where(x => x.ID == userID).SingleOrDefault();

                    if (record == null)
                        return new OperationResult<OperationResults, object>() { Result = OperationResults.NotFound };

                    foreach (var item in record.AdminUserToRoleRecords)
                        context.AdminUserToRoleRecords.DeleteOnSubmit(item);

                    context.SubmitChanges();

                    //TODO: refactor, temporary we use 2 roles => for that reason I insert 1 item
                    context.AdminUserToRoleRecords.InsertOnSubmit(new AdminUserToRoleRecord() { MemberID = userID, RoleID = (int)roles });
                    context.SubmitChanges();

                    context.Transaction.Commit();
                }
                catch (Exception ex)
                {
                    if (context.Transaction != null)
                        context.Transaction.Rollback();

                    this.Logger.WriteError(ex);
                    throw;
                }

                return new OperationResult<OperationResults, object>() { Result = OperationResults.Success };
            }
        }