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> /// 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 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> /// 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> /// 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> /// 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> /// 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; } }
/// <summary> /// Gets all <see cref="HaushaltsRechner.Data.Model.MOVEMENT"/> /// </summary> /// <returns></returns> public static IQueryable<MOVEMENT> GetAllMovements() { var en = new HaushaltsrechnerEntities(); return en.MOVEMENT; }
public string GetAllValidAccounts() { using (var en = new HaushaltsrechnerEntities()) { var userID = SessionManager.CurrentUser.ID; var accs = en.ACCOUNT.Where(a => a.USER.Any(u=>u.ID == userID)) .Select(a=> new NameAsString { ID = a.ID, Name = a.NAME }) .ToList(); return JsonConvert.SerializeObject(accs); } }
public string GetAccountUsers(string data) { if (!RightsManager.HasRight(SessionManager.CurrentUser.ID, Feature.AdminAccount)) { return bool.FalseString; } try { var id = JsonConvert.DeserializeObject<Guid>(data); var accountUser = new List<AccountUser>(); using (var en = new HaushaltsrechnerEntities()) { var account = en.ACCOUNT.FirstOrDefault(a => a.ID == id); if (account == null) { return bool.FalseString; } foreach (var u in en.USER) { accountUser.Add(new AccountUser { ID = u.ID, Name = u.NAME, InAccount = account.USER.Contains(u) }); } return JsonConvert.SerializeObject(accountUser); } } catch { } return bool.FalseString; }
/// <summary> /// Gets the <see cref="HaushaltsRechner.Data.Model.MOVEMENT"/> by <see cref="HaushaltsRechner.Business.SearchParameter.MovementSearchParameter"/>. /// </summary> /// <param name="para">The searchparameter.</param> /// <param name="currUserID">The ID of the <see cref="HaushaltsRechner.Data.Model.USER"/> who's searching</param> /// <returns>List of <see cref="HaushaltsRechner.Data.Model.MOVEMENT"/></returns> public static IQueryable<MOVEMENT> GetMovementsBySearchparameter(MovementSearchParameter para, Guid currUserID) { var en = new HaushaltsrechnerEntities(); var query = from m in en.MOVEMENT select m; var accIds = AccountManager.GetAccountsByUserId(currUserID).Select(a => a.ID); query = query.Where(m => accIds.Contains(m.ACCOUNT_ID)); if (para.ValueFrom != decimal.MinValue) { query = query.Where(m => m.AMOUNT >= para.ValueFrom); } if (para.ValueTo != decimal.MinValue) { query = query.Where(m => m.AMOUNT <= para.ValueTo); } if (para.DateFrom != DateTime.MinValue) { query = query.Where(m => m.DATE_ADDED >= para.DateFrom); } if (para.DateTo != DateTime.MinValue) { query = query.Where(m => m.DATE_ADDED <= para.DateTo); } if (para.EditFrom != DateTime.MinValue) { query = query.Where(m => m.DATE_EDIT >= para.EditFrom); } if (para.EditTo != DateTime.MinValue) { query = query.Where(m => m.DATE_EDIT <= para.EditTo); } if (para.UserID != Guid.Empty) { query = query.Where(m => m.USER_ID == para.UserID); } if (para.AccountID != Guid.Empty) { query = query.Where(m => m.ACCOUNT_ID == para.AccountID); } if (para.ReasonID != Guid.Empty) { query = query.Where(m => m.REASON_ID == para.ReasonID); } query = query.OrderBy(m => m.DATE_ADDED); return query; }
/// <summary> /// Gets all <see cref="HaushaltsRechner.Data.Model.CATEGORY"/>. /// </summary> /// <returns>all <see cref="CATEGORY"/>s</returns> public static IQueryable<CATEGORY> GetAllCategories() { var en = new HaushaltsrechnerEntities(); return en.CATEGORY; }
/// <summary> /// Get an account by its ID /// </summary> /// <param name="id">ID of the <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/></param> /// <returns> /// <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/> to the ID or null, if no /// <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/> was found. /// </returns> public static ACCOUNT GetAccountById(Guid id) { using (var en = new HaushaltsrechnerEntities()) { return en.ACCOUNT.FirstOrDefault(a => a.ID == id); } }
/// <summary> /// Gets the <see cref="HaushaltsRechner.Data.Model.USER"/> by name. /// </summary> /// <param name="name">The name.</param> /// <returns><see cref="HaushaltsRechner.Data.Model.USER"/> or null</returns> public static USER GetUserByName(string name) { using (var en = new HaushaltsrechnerEntities()) { return en.USER.FirstOrDefault(u => u.NAME == name); } }
/// <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> /// Gets the <see cref="HaushaltsRechner.Data.Model.USER"/> by id. /// </summary> /// <param name="id">The ID.</param> /// <returns><see cref="HaushaltsRechner.Data.Model.USER"/> or null</returns> public static USER GetUserById(Guid id) { using (var en = new HaushaltsrechnerEntities()) { return en.USER.FirstOrDefault(u => u.ID == id); } }
/// <summary> /// Gets all <see cref="HaushaltsRechner.Data.Model.USER"/>s. /// </summary> /// <returns>All <see cref="HaushaltsRechner.Data.Model.USER"/>s</returns> public static IQueryable<USER> GetAllUser() { var en = new HaushaltsrechnerEntities(); return en.USER; }
/// <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; }
/// <summary> /// Gets the <see cref="HaushaltsRechner.Data.Model.MOVEMENT"/> by id. /// </summary> /// <param name="id">The id.</param> /// <returns><see cref="HaushaltsRechner.Data.Model.MOVEMENT"/> or null</returns> public static MOVEMENT GetMovementById(Guid id) { using (var en = new HaushaltsrechnerEntities()) { return en.MOVEMENT.FirstOrDefault(m => m.ID == id); } }
/// <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> /// Determines whether the specified <see cref="USER"/> has right to use a <see cref="Feature"/>. /// </summary> /// <param name="userID">The user ID.</param> /// <param name="feat">The <see cref="Feature"/> to check.</param> /// <returns> /// <c>true</c> if the specified <see cref="USER"/> has right; otherwise, <c>false</c>. /// </returns> public static bool HasRight(Guid userID, Feature feat) { var featName = feat.ToString(); using(var en = new HaushaltsrechnerEntities()) { var right = en.RIGHT.FirstOrDefault(r => r.NAME == featName); var user = en.USER.FirstOrDefault(u=>u.ID == userID); return (right != null && user != null) ? HasRight(user, right) : false; } }
/// <summary> /// Returns all <see cref="HaushaltsRechner.Data.Model.ACCOUNT"/>s, the <see cref="HaushaltsRechner.Data.Model.USER"/> contains /// </summary> /// <param name="id">ID of the <see cref="HaushaltsRechner.Data.Model.USER"/></param> /// <returns>List of <see cref="ACCOUNT"/></returns> public static List<ACCOUNT> GetAccountsByUserId(Guid id) { using (var en = new HaushaltsrechnerEntities()) { return en.ACCOUNT.Where(a => a.USER.Any(u => u.ID == id)).ToList(); } }
/// <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> /// 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; } }
private static bool HasRight(USER user, RIGHT right) { if (user.ISADMIN.HasValue && user.ISADMIN.Value) { return true; } var uId = user.ID; var rId = right.ID; using (var en = new HaushaltsrechnerEntities()) { return en.USER.Any(u => u.ID == uId && u.RIGHT.Any(r => r.ID == rId)); } }
/// <summary> /// Gets the <see cref="HaushaltsRechner.Data.Model.CATEGORY"/> by ID. /// </summary> /// <param name="id">The id.</param> /// <returns><see cref="HaushaltsRechner.Data.Model.CATEGORY"/> or null, if no <see cref="HaushaltsRechner.Data.Model.CATEGORY"/> with this ID</returns> public static CATEGORY GetCategoryByID(Guid id) { using (var en = new HaushaltsrechnerEntities()) { return en.CATEGORY.FirstOrDefault(c => c.ID == id); } }
/// <summary> /// Gets all rights. /// </summary> /// <returns>List of all <see cref="RIGHT"/></returns> public static List<RIGHT> GetRights() { using (var en = new HaushaltsrechnerEntities()) { return en.RIGHT.ToList(); } }
/// <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> /// Gets the <see cref="RIGHT"/>s for a <see cref="USER"/> /// </summary> /// <param name="userID">The user ID.</param> /// <returns></returns> public static List<RIGHT> GetRights(Guid userID) { using (var en = new HaushaltsrechnerEntities()) { var user = en.USER.FirstOrDefault(u => u.ID == userID); if (user != null) { return user.RIGHT.ToList(); } return null; } }