/////////////////////////////////////////////////////////////////////////////////// ///<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> /// ///</summary> public UserStruct GetUserByName(string userName) { IDictionary userRecord; try { userRecord = new Hashtable(); userRecord[AdminFields.USERNAME] = "= '" +userName +"'"; DataSet ds = db.GetFieldsWhereas(userRecord, DBTables.USERS); UserStruct us = new UserStruct(); us.name = userName; us.password = (string) DataTools.GetTextField(ds, AdminFields.PASSWORD); us.groupid = (int) DataTools.GetIntField (ds, AdminFields.GROUPID); us.id = (int) DataTools.GetIntField (ds, AdminFields.ID); us.published = (bool) DataTools.GetBoolField(ds, AdminFields.PUBLISHED); return us; } 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; } }
public void AddUserToGroup(string sid, DataSet user, string groupName, string epriseName) { IDbTransaction t = null; try { Initialize(sid); int groupid = -1, enterpriseid = -1; string userName = DataTools.GetTextField(user, AdminFields.USERNAME); UserStruct us = new UserStruct(); us.name = userName; if (ExistGroup(sid, groupName, ref groupid, epriseName, ref enterpriseid)) { us.groupid = groupid; t = db.BeginTransaction(); us.published = DataTools.GetBoolField(user, AdminFields.PUBLISHED); us.id = users.CreateUser(us); cacheMem.SetCacheData(us, DBTables.USERS + us.name); if (t != null) db.Commit(t); } else { GroupStruct gs = new GroupStruct(); gs.name = groupName; gs.published = true; gs.enterpriseid = enterpriseid; t = db.BeginTransaction(); gs.id = groups.CreateGroup(gs); cacheMem.SetCacheData(gs, DBTables.GROUPS + gs.name); us.groupid = groupid; us.id = users.CreateUser(us); cacheMem.SetCacheData(us, DBTables.USERS + us.name); if (t != null) db.Commit(t); } } catch (Exception ex) { Exception wrappedEx = new Exception( ErrorManager.AddLayer(ex, RunningClass.GetName(this), RunningClass.GetMethod())); throw wrappedEx; } finally { if (t != null) db.Commit(t); } }