/// <summary> /// Deletes the <see cref="HaushaltsRechner.Data.Model.MOVEMENT"/>. /// </summary> /// <param name="id">The id.</param> /// <returns><c>true</c>, if deletion successfull</returns> public static bool DeleteMovement(Guid id) { if (id == Guid.Empty) { return false; } using (var en = new HaushaltsrechnerEntities()) { var m = en.MOVEMENT.FirstOrDefault(mo => mo.ID == id); if (m == null) { return false; } en.MOVEMENT.DeleteObject(m); en.SaveChanges(); return true; } }
/// <summary> /// Adds an <see cref="HaushaltsRechner.Data.Model.CATEGORY"/>. /// </summary> /// <param name="name">The name.</param> /// <returns><c>true</c>, if addition successfull</returns> public static bool AddCategory(string name) { using (var en = new HaushaltsrechnerEntities()) { var cOld = en.CATEGORY.FirstOrDefault(cat => cat.NAME == name); if (cOld == null) { var c = new CATEGORY { ID = Guid.NewGuid(), NAME = name }; en.CATEGORY.AddObject(c); en.SaveChanges(); return true; } return false; } }
/// <summary> /// Adds an <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/>. /// </summary> /// <param name="name">The new name.</param> /// <returns><c>false</c>, if <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/> already exists</returns> public static bool AddAccount(string name) { using (var en = new HaushaltsrechnerEntities()) { var aOld = en.ACCOUNT.FirstOrDefault(r => r.NAME == name); if (aOld == null) { var a = new ACCOUNT { ID = Guid.NewGuid(), NAME = name }; en.ACCOUNT.AddObject(a); en.SaveChanges(); return true; } return false; } }
/// <summary> /// Creates the <see cref="HaushaltsRechner.Data.Model.REASON"/>. /// </summary> /// <param name="text">The text.</param> /// <returns> /// The new <see cref="HaushaltsRechner.Data.Model.REASON"/>, /// or if Text already exists,the old <see cref="HaushaltsRechner.Data.Model.REASON"/> /// </returns> public static REASON CreateReason(string text) { using (var en = new HaushaltsrechnerEntities()) { var rOld = en.REASON.Where(r => r.TEXT == text); if (!rOld.Any()) { var r = new REASON { ID = Guid.NewGuid(), TEXT = text }; en.REASON.AddObject(r); en.SaveChanges(); return r; } return rOld.First(); } }
/// <summary> /// Edits an <see cref="HaushaltsRechner.Data.Model.CATEGORY"/>. /// </summary> /// <param name="id">The id.</param> /// <param name="newName">The new name.</param> /// <returns><c>true</c>, if edition successfull</returns> public static bool EditCategory(Guid id, string newName) { using (var en = new HaushaltsrechnerEntities()) { var cat = en.CATEGORY.FirstOrDefault(a => a.ID == id); if (cat == null || newName == null || newName == string.Empty) { return false; } cat.NAME = newName; en.SaveChanges(); return true; } }
/// <summary> /// Creates an <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/> with the specified name and one /// <see cref="HaushaltsRechner.Data.Model.USER"/> /// </summary> /// <param name="name">Name of the new <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/></param> /// <param name="userId">ID of the first <see cref="HaushaltsRechner.Data.Model.USER"/> /// of the <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/></param> /// <returns> /// The created <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/> /// or an old <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/>, if Name is already in DB /// </returns> public static ACCOUNT CreateAccount(string name, Guid userId) { using (var en = new HaushaltsrechnerEntities()) { var user = en.USER.FirstOrDefault(u => u.ID == userId); var aOld = en.ACCOUNT.First(r => r.NAME == name && r.USER.Any(u => u.ID == user.ID)); if (aOld == null) { var a = new ACCOUNT { ID = Guid.NewGuid(), NAME = name }; a.USER.Add(user); en.ACCOUNT.AddObject(a); en.SaveChanges(); return a; } return aOld; } }
/// <summary> /// Edits an <see cref="ACCOUNT"/> user. /// </summary> /// <param name="accId">The <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/> id.</param> /// <param name="userId">The <see cref="HaushaltsRechner.Data.Model.USER"/> id.</param> /// <param name="set"> /// if set to <c>true</c>, /// <see cref="HaushaltsRechner.Data.Model.USER"/> will be added to <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/> /// </param> /// <returns><c>true</c>, if edition successfull</returns> public static bool EditAccountUsers(Guid accId, Guid userId, bool set) { using (var en = new HaushaltsrechnerEntities()) { var acc = en.ACCOUNT.FirstOrDefault(a => a.ID == accId); if (acc == null || userId == Guid.Empty) { return false; } var user = en.USER.FirstOrDefault(u => u.ID == userId); if (user == null) { return false; } if (set && !acc.USER.Contains(user)) { acc.USER.Add(user); } else if (!set && acc.USER.Contains(user)) { acc.USER.Remove(user); } en.SaveChanges(); return true; } }
/// <summary> /// Edits an <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/>. /// </summary> /// <param name="id">The id.</param> /// <param name="newName">The new name.</param> /// <returns><c>true</c>, if edition successfull </returns> public static bool EditAccount(Guid id, string newName) { using (var en = new HaushaltsrechnerEntities()) { var acc = en.ACCOUNT.FirstOrDefault(a=>a.ID == id); if(acc == null || string.IsNullOrEmpty(newName)) { return false; } acc.NAME = newName; en.SaveChanges(); return true; } }
/// <summary> /// Deletes an <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/>. /// </summary> /// <param name="id">The id.</param> /// <returns><c>true</c>, if deletion successfull</returns> public static bool DeleteAccount(Guid id) { using (var en = new HaushaltsrechnerEntities()) { var acc = en.ACCOUNT.FirstOrDefault(a => a.ID == id); if (acc == null) { return false; } acc.USER.Clear(); var movements = acc.MOVEMENT.ToList(); acc.MOVEMENT.Clear(); foreach (var m in movements) { en.MOVEMENT.DeleteObject(m); } en.ACCOUNT.DeleteObject(acc); en.SaveChanges(); return true; } }
public string AddMovement(string data) { try { var movement = JsonConvert.DeserializeObject<NewMovement>(data); var en = new HaushaltsrechnerEntities(); var acc = en.ACCOUNT.FirstOrDefault(a=>a.ID == movement.AccountID); var cat = en.CATEGORY.FirstOrDefault(c=>c.ID == movement.CategoryID); var user = en.USER.FirstOrDefault(u => u.ID == SessionManager.CurrentUser.ID); var rea = en.REASON.Where(r => r.TEXT == movement.Reason); REASON reason; if (rea.Any()) { reason = rea.First(); } else { reason = new REASON { ID = Guid.NewGuid(), TEXT = movement.Reason }; en.REASON.AddObject(reason); } var m = new MOVEMENT { ID = movement.ID, DATE_ADDED = movement.DateAdded, DATE_EDIT = DateTime.Now, AMOUNT = Decimal.Parse(movement.Amount.Replace("€",string.Empty)), MESSAGE = movement.Message, USER = user, ACCOUNT = acc, CATEGORY = cat, REASON = reason }; en.MOVEMENT.AddObject(m); en.SaveChanges(); return bool.TrueString; } catch { return bool.FalseString; } }
/// <summary> /// Sets the <see cref="RIGHT"/> for a <see cref="USER"/>. /// </summary> /// <param name="userID">The user ID.</param> /// <param name="rightID">The right ID.</param> /// <param name="set"> /// if set to <c>true</c> set <see cref="RIGHT"/>. /// if set to <c>false</c> remove <see cref="RIGHT"/></param> /// <returns></returns> public static bool SetRight(Guid userID, Guid rightID, bool set) { using (var en = new HaushaltsrechnerEntities()) { var user = en.USER.FirstOrDefault(u => u.ID == userID); var right = en.RIGHT.FirstOrDefault(r => r.ID == rightID); if (user == null || right == null) { return false; } if (set) { if (!user.RIGHT.Contains(right)) { user.RIGHT.Add(right); } } else { if (user.RIGHT.Contains(right)) { user.RIGHT.Remove(right); } } en.SaveChanges(); } return true; }
/// <summary> /// Adds a <see cref="HaushaltsRechner.Data.Model.USER"/>. /// </summary> /// <param name="name">The name.</param> /// <param name="pw">The password.</param> /// <param name="sysAdmin">if set to <c>true</c> System Admin flag will be set.</param> /// <returns><c>true</c>, if addition successfull</returns> public static bool AddUser(string name, string pw, bool sysAdmin) { if (name == string.Empty) { return false; } using (var en = new HaushaltsrechnerEntities()) { var pass = string.Empty; var testUser = en.USER.FirstOrDefault(u => u.NAME == name); if (testUser != null) { return false; } if (pw != string.Empty) { byte[] encrypted = Cryptography.EncryptStringToBytes_AES(pw); foreach (var e in encrypted) { pass += (char)e; } } var user = new USER { NAME = name, PASSWORT = pass, ISADMIN = sysAdmin, ID = Guid.NewGuid() }; en.USER.AddObject(user); en.SaveChanges(); return true; } }
/// <summary> /// Edit a <see cref="HaushaltsRechner.Data.Model.USER" />. /// </summary> /// <param name="id">The id.</param> /// <param name="name">The new name.</param> /// <param name="pw">The new password.</param> /// <param name="lang">The language.</param> /// <param name="sysAdmin">new sys admin.</param> /// <returns> /// <c>true</c>, if edition successfull /// </returns> public static bool EditUser(Guid id, string name, string pw, string lang, bool? sysAdmin) { if (id == Guid.Empty || name == string.Empty) { return false; } using (var en = new HaushaltsrechnerEntities()) { var testUser = en.USER.FirstOrDefault(u => u.NAME == name && u.ID != id); if (testUser != null) { return false; } var user = en.USER.FirstOrDefault(u => u.ID == id); if (user == null) { return false; } if (!string.IsNullOrEmpty(pw)) { var pass = string.Empty; byte[] encrypted = Cryptography.EncryptStringToBytes_AES(pw); foreach (var e in encrypted) { pass += (char)e; } user.PASSWORT = pass; } try { var culture = CultureInfo.CreateSpecificCulture(lang); user.CULTURE = culture.Name; } catch { } user.NAME = name; user.ISADMIN = sysAdmin.HasValue ? sysAdmin.Value : user.ISADMIN; en.SaveChanges(); return true; } }
/// <summary> /// Deletes a <see cref="HaushaltsRechner.Data.Model.USER"/>. /// </summary> /// <param name="id">The id.</param> /// <returns><c>true</c>, if deletion sucessfull</returns> public static bool DeleteUser(Guid id) { using (var en = new HaushaltsrechnerEntities()) { var user = en.USER.FirstOrDefault(u => u.ID == id); if (user == null) { return false; } user.RIGHT.Clear(); var mov = en.MOVEMENT.Where(m => m.USER_ID == id); foreach (var m in mov) { m.USER = null; } var acc = en.ACCOUNT.Where(a => a.USER.Any(u => u.ID == id)); foreach (var a in acc) { a.USER.Remove(user); } en.USER.DeleteObject(user); en.SaveChanges(); } return true; }