/// <summary> /// تنظیمات کاربر را برمیگرداند /// در صورد عدم وجود آنرا درج میکند /// </summary> /// <param name="user"></param> /// <returns></returns> private UserSettings GetUserSettings(User user) { if (user != null && user.ID > 0) { IList <UserSettings> userSettingList = userSettingRep.GetByCriteria(new CriteriaStruct(Utility.GetPropertyName(() => new UserSettings().User), new User() { ID = user.ID })); if (userSettingList != null && userSettingList.Count > 0) { user.UserSetting = userSettingList.First(); return(user.UserSetting); } else { UserSettings userSetings = new UserSettings(); userSetings.User = user; userSetings.Language = BLanguage.GetCurrentSystemLanguage(); userSettingRep.Save(userSetings); user.UserSetting = userSetings; return(userSetings); } } return(null); }
/// <summary> /// /// </summary> /// <param name="skinID"></param> public void SetCurrentSkin(decimal skinID) { try { EntityRepository <UISkin> skinRep = new EntityRepository <UISkin>(false); UserRepository rep = new UserRepository(false); User user = rep.GetByUserName(this.CurrentUser); UISkin skin = skinRep.GetByCriteria(new CriteriaStruct(Utility.GetPropertyName(() => new UISkin().ID), skinID)).FirstOrDefault(); if (skin != null && user != null) { UserSettings userSetings = userSettingRep.GetByCriteria(new CriteriaStruct(Utility.GetPropertyName(() => new UserSettings().User), user)).FirstOrDefault(); if (userSetings != null) { userSetings.Skin = skin; userSettingRep.Update(userSetings); } else { userSetings = new UserSettings(); userSetings.Skin = skin; userSetings.User = user; userSetings.Language = BLanguage.GetCurrentSystemLanguage(); userSettingRep.Save(userSetings); } SessionHelper.ClearSessionValue(SessionHelper.BussinessLocalSkinSessionName); } else { throw new InvalidDatabaseStateException(UIFatalExceptionIdentifiers.UserSettingsSkinOrUserNotExsists, "پوسته یا کاربر در دیتابیس موجود نمیباشد", "GTS.Clock.Business.AppSettings.LanguageProvider.SetCurrentSkin"); } } catch (Exception ex) { BaseBusiness <Entity> .LogException(ex, "BUserSettings", "SetCurrentSkin"); throw ex; } }