/////////////////////////////////////////////////////////////////////////////////// ///<summary> /// CreateUsers: insert a new user into table users. username must'n exist. /// id_group must be an existent group /// <param name="group"> id_group, must exists in groups table</param> /// <return>New user id </return> ///</summary> public int CreateUser(UserStruct user) { IDictionary groupRecord, userRecord, userFields; try { groupRecord = new Hashtable(); groupRecord[AdminFields.ID] = "= " +user.groupid; userRecord = new Hashtable(); userRecord[AdminFields.USERNAME] = "= '" + user.name + "'"; if (db.Exist(groupRecord, DBTables.GROUPS)) { if (!db.Exist(userRecord, DBTables.USERS)) { userFields = new Hashtable(); userFields[AdminFields.USERNAME] = user.name; userFields[AdminFields.PASSWORD] = user.password; userFields[AdminFields.GROUPID] = user.groupid; userFields[AdminFields.PUBLISHED] = user.published; db.Insert(userFields, DBTables.USERS, ref user.id); return user.id; } else { UserAlreadyExistException uae = new UserAlreadyExistException(); throw uae; } } else { NullGroupException nge = new NullGroupException(); throw nge; } } catch (UserAlreadyExistException uae) { UserAlreadyExistException wrappedEx = new UserAlreadyExistException( ErrorManager.AddLayer(uae, RunningClass.GetName(this), RunningClass.GetMethod())); throw wrappedEx; } catch (NullGroupException nge) { NullGroupException wrappedEx = new NullGroupException( ErrorManager.AddLayer(nge, RunningClass.GetName(this), RunningClass.GetMethod())); throw wrappedEx; } catch (Exception ex) { Exception wrappedEx = new Exception( ErrorManager.AddLayer(ex, RunningClass.GetName(this), RunningClass.GetMethod())); throw wrappedEx; } }
/////////////////////////////////////////////////////////////////////////////////// ///<summary> ///ModifyUser: username must be an existent user. newuser must'n exist. ///groupid must be an existent group ///</summary> public void ModifyUser(int userid, UserStruct newuser) { IDictionary userRecord, groupRecord, thisUserRecord, userFields; try { groupRecord = new Hashtable(); groupRecord[AdminFields.GROUPID] = "= " +newuser.groupid; userRecord = new Hashtable(); userRecord[AdminFields.USERNAME] = "= '" + newuser.name + "'"; if (db.Exist(groupRecord, DBTables.GROUPS)) { if (!db.Exist(userRecord, DBTables.USERS)) { thisUserRecord = new Hashtable(); thisUserRecord[AdminFields.ID] = "= " +userid; userFields = new Hashtable(); userFields[AdminFields.USERNAME] = newuser.name; userFields[AdminFields.PASSWORD] = newuser.password; userFields[AdminFields.GROUPID] = newuser.groupid; userFields[AdminFields.PUBLISHED] = newuser.published; db.SetFieldsWhereas(thisUserRecord, userFields, DBTables.USERS); } else { UserAlreadyExistException uae = new UserAlreadyExistException(); throw uae; } } else { NullGroupException nge = new NullGroupException(); throw nge; } } catch (UserAlreadyExistException uae) { UserAlreadyExistException wrappedEx = new UserAlreadyExistException( ErrorManager.AddLayer(uae,RunningClass.GetName(this), RunningClass.GetMethod())); throw wrappedEx; } catch (NullGroupException nge) { NullGroupException wrappedEx = new NullGroupException( ErrorManager.AddLayer(nge, RunningClass.GetName(this), RunningClass.GetMethod())); throw wrappedEx; } catch (Exception ex) { Exception wrappedEx = new Exception( ErrorManager.AddLayer(ex, RunningClass.GetName(this), RunningClass.GetMethod())); throw wrappedEx; } }