/// <summary> /// Constructor for string type. /// </summary> /// <param name="constructString">Original string.</param> /// <param name="source">Source method from compile tree ("requester").</param> internal TokenContext(ConstructString constructString, MemberInfo source) { Module = AppModules.GetModuleByAddress(constructString.HandleModule); Source = source; TokenType = TokenKind.String; MetadataToken = constructString.MetadataToken; if (Module != null) { Content = Module.ResolveString(MetadataToken); } }
/// <summary> /// Inserts the change owner activity. /// </summary> /// <param name="entityId">The entity identifier.</param> /// <param name="userId">The user identifier.</param> /// <param name="module">The module.</param> /// <param name="activityType">Type of the activity.</param> public void InsertChangeOwnerActivity(int entityId, int?userId, AppModules module, UserActivityType activityType) { var db = ObjectContextFactory.Create(); UserActivityLogsDb activityLog = new UserActivityLogsDb() { EntityID = entityId, LogDate = DateTime.Now.ToUniversalTime(), UserID = userId, ModuleID = (byte)module, UserActivityID = (byte)activityType }; db.UserActivitiesLog.Add(activityLog); db.SaveChanges(); }
bool ICachingService.IsModulePrivate(AppModules module, int accountId) { string cacheKey = "datasharing" + accountId; IEnumerable <byte> privateModules = new List <byte>(); if (!cacheManager.IsExists(cacheKey)) { privateModules = accountRepository.GetPrivateModules(accountId); cacheManager.Add(cacheKey, privateModules, DateTimeOffset.MaxValue); } else { privateModules = cacheManager.Get <IEnumerable <byte> >(cacheKey); } return(privateModules.Contains((byte)module)); }
public bool CheckPermission(int accountId, int roleId, AppModules module) { if (accountId != 0 && roleId != 0) { var userPermissions = GetUserPermissions(accountId); var accountPermissions = GetAccountPermissions(accountId); if (userPermissions != null && userPermissions.Any() && accountPermissions != null && accountPermissions.Any()) { return(userPermissions.Any(u => u.RoleId == roleId && u.ModuleId == (byte)module) && accountPermissions.Contains((byte)module)); } else { return(false); } } else if (accountId != 0 && roleId == 0) //In-case of automation-engine { return(true); } else { return(false); } }
/// <summary> /// Gets the contacts by activity. /// </summary> /// <param name="userId">The user identifier.</param> /// <param name="moduleName">Name of the module.</param> /// <param name="activityName">Name of the activity.</param> /// <param name="contactIDs">The contact i ds.</param> /// <param name="sort">The sort.</param> /// <param name="accountId">The account identifier.</param> /// <returns></returns> public IList <int> GetContactsByActivity(int userId, AppModules moduleName, UserActivityType activityName, int[] contactIDs, string sort, int accountId) { var db = ObjectContextFactory.Create(); IList <int> activities = new List <int>(); /*For Recently Updated */ if (sort == "1") { activities = db.UserActivitiesLog .Where(c => c.UserID == userId && c.AccountID == accountId && c.ModuleID == (byte)moduleName && c.UserActivityID == (byte)activityName && c.AccountID == accountId). Join(db.Contacts, u => u.EntityID, c => c.ContactID, (u, c) => new { u.EntityID, u.LogDate, c.IsDeleted, c.LastUpdatedOn, c.AccountID }) .Where(i => i.IsDeleted == false && i.AccountID == accountId).OrderByDescending(u => u.LastUpdatedOn).Take(1000).Select(i => i.EntityID).ToList(); } /*For Full Name */ else if (sort == "2") { activities = db.UserActivitiesLog .Where(c => c.UserID == userId && c.AccountID == accountId && c.ModuleID == (byte)moduleName && c.UserActivityID == (byte)activityName && c.AccountID == accountId). Join(db.Contacts, u => u.EntityID, c => c.ContactID, (u, c) => new { u.EntityID, u.LogDate, c.IsDeleted, name = c.FirstName + " " + c.LastName, c.AccountID }) .Where(i => i.IsDeleted == false && i.AccountID == accountId).OrderBy(u => u.name).Take(1000).Select(i => i.EntityID).ToList(); } /*For Company Name */ else if (sort == "3") { activities = db.UserActivitiesLog .Where(c => c.UserID == userId && c.AccountID == accountId && c.ModuleID == (byte)moduleName && c.UserActivityID == (byte)activityName && c.AccountID == accountId). Join(db.Contacts, u => u.EntityID, c => c.ContactID, (u, c) => new { u.EntityID, u.LogDate, c.IsDeleted, c.Company, c.AccountID }) .Where(i => i.IsDeleted == false && i.AccountID == accountId).OrderBy(u => u.Company).Take(1000).Select(i => i.EntityID).ToList(); } /*For Recently Viewed */ else { activities = db.UserActivitiesLog .Where(c => c.UserID == userId && c.AccountID == accountId && c.ModuleID == (byte)moduleName && c.UserActivityID == (byte)activityName && c.AccountID == accountId). Join(db.Contacts, u => u.EntityID, c => c.ContactID, (u, c) => new { u.EntityID, u.LogDate, c.IsDeleted, c.AccountID }) .Where(i => i.IsDeleted == false && i.AccountID == accountId).OrderByDescending(u => u.LogDate).Take(1000).Select(i => i.EntityID).ToList(); } var recentlyViewedContactIds = activities.Select(u => u).GroupBy(g => g).Select(f => f.First()).ToList(); if (sort == "") { Logger.Current.Informational("RecentlyViewed Contacts Ids: " + recentlyViewedContactIds.Count()); } else if (sort == "1") { Logger.Current.Informational("RecentlyUpdated Contacts Ids: " + recentlyViewedContactIds.Count()); } else if (sort == "2") { Logger.Current.Informational("FullName Contacts Ids: " + recentlyViewedContactIds.Count()); } else if (sort == "3") { Logger.Current.Informational("Company Contacts Ids: " + recentlyViewedContactIds.Count()); } if (contactIDs != null) { recentlyViewedContactIds = recentlyViewedContactIds.Where(p => contactIDs.Contains(p)).ToList(); } return(recentlyViewedContactIds); }
/// <summary> /// Inserts the contact read activity. /// </summary> /// <param name="entityId">The entity identifier.</param> /// <param name="entityName">Name of the entity.</param> /// <param name="userId">The user identifier.</param> /// <param name="module">The module.</param> /// <param name="activityName">Name of the activity.</param> /// <param name="accountId">The account identifier.</param> public void InsertContactReadActivity(int entityId, string entityName, int userId, AppModules module, UserActivityType activityName, int accountId) { var db = ObjectContextFactory.Create(); UserActivityLogsDb userActivityLog = new UserActivityLogsDb() { EntityID = entityId, EntityName = entityName, LogDate = DateTime.Now.ToUniversalTime(), ModuleID = (byte)module, UserActivityID = (byte)activityName, UserID = userId, AccountID = accountId }; db.UserActivitiesLog.Add(userActivityLog); db.SaveChanges(); }
void analyzeByActivity(IEnumerable <UserActivityLog> logs, int activity, int moduleId, string dateFormat, bool dayOneLogs) { AppModules module = (AppModules)moduleId; var total = dayOneLogs == true?logs.Where(l => l.UserActivityID == activity).Count() : logs.Where(l => l.UserActivityID == activity).GroupBy(l => l.EntityID).Count(); //var total = logs.Where(l => l.UserActivityID == activity).GroupBy(l => l.EntityID).Select(g => g.First()).Count(); //var entityDetails = logs.Where(l => l.UserActivityID == activity && l.ModuleID == moduleId).Select(l => l.EntityDetail).ToList(); if (total == 0) { return; } string totalInText = string.Empty; int[] anEntities = new int[] { 1, 5, 16 }; if (total == 1) { totalInText = anEntities.Contains(moduleId) ? "[|an|]" : "[|a|]"; } else { totalInText = total.ToString(); } //var date = logs.Where(l => l.UserActivityID == activity).First().LogDate; //string message = ""; List <UserActivityViewModel> userActivityModels = new List <UserActivityViewModel>(); if (dayOneLogs) { totalInText = anEntities.Contains(moduleId) ? "[|an|]" : "[|a|]"; var activityLogs = logs.Where(l => l.UserActivityID == activity); foreach (var log in activityLogs) { UserActivityViewModel userActivityModel = new UserActivityViewModel(); userActivityModel.DateFormat = dateFormat; userActivityModel.EntityIds = new List <int>() { log.EntityID }; userActivityModel.Message = ((AppModules)moduleId == AppModules.Reports || (AppModules)moduleId == AppModules.AdvancedSearch && activity == (byte)UserActivityType.LastRunOn) ? "[|Ran|] " + totalInText + " " + ((AppModules)moduleId == AppModules.Reports ? " [|Report|]" : " [|Saved Search|]") + " - " + log.EntityName : (activities[activity] + " " + totalInText + " " + modules[module] + " - " + log.EntityName); userActivityModel.LogDate = log.LogDate; userActivityModel.ModuleID = (byte)moduleId; if (dateFormat.Contains('/')) { userActivityModel.DateSeperator = dtfi; } userActivityModels.Add(userActivityModel); } analysis.AddRange(userActivityModels); } else { var date = logs.Where(l => l.UserActivityID == activity).First().LogDate; string message = ((AppModules)moduleId == AppModules.Reports || (AppModules)moduleId == AppModules.AdvancedSearch && activity == (byte)UserActivityType.LastRunOn ? "[|Ran|]" : activities[activity]) + " " + totalInText + " " + (total > 1 ? modules[module] + "[|s|]" : modules[module]) + " " + ("- " + logs.Where(l => l.UserActivityID == activity).GroupBy(l => l.EntityID).Select(g => g.FirstOrDefault().EntityName).Aggregate((a, b) => a + ", " + b)); UserActivityViewModel model = new UserActivityViewModel(); model.DateFormat = dateFormat; model.Message = message; model.EntityIds = logs.Where(l => l.UserActivityID == activity).Select(s => s.EntityID).Distinct().ToList(); // model.EntityDetails = entityDetails; model.LogDate = date; // model.EntityId = model.ModuleID = (byte)moduleId; if (dateFormat.Contains('/')) { model.DateSeperator = dtfi; } analysis.Add(model); } }
public SmarttouchAuthorizeAttribute(AppModules module, AppOperations action) { this._Module = module; this._Action = action; this.cachingService = IoC.Container.GetInstance <ICachingService>(); }