/// <summary> /// Получает данные пользователя /// </summary> /// <param name="sourceLanguageId">идентификатор языка с которого переводят</param> /// <param name="translationLanguageId">идентификатор языка на который переводят</param> /// <param name="status">статус данных, которые нужно получить</param> /// <param name="prevId">максимальный идентификатор предыдущей записи</param> /// <param name="count">кол-во записей для получения</param> /// <returns></returns> public List <UserKnowledgeItem> GetData(long sourceLanguageId, long translationLanguageId, KnowledgeStatus status, long prevId, int count) { List <UserKnowledgeItem> result = Adapter.ReadByContext(c => { DateTime minDate = GetDefaultDeletedDate(); IQueryable <UserKnowledge> usersKnowledgesQuery = c.UserKnowledge.Where( e => e.UserId == _userId && e.LanguageId == _languageId && e.Id < prevId && e.DeletedDate == minDate); if (status != KnowledgeStatus.All) { usersKnowledgesQuery = usersKnowledgesQuery.Where(e => e.Status == (int)status); } usersKnowledgesQuery = usersKnowledgesQuery.OrderByDescending(e => e.CreationDate).Take(count); List <UserKnowledge> userKnowledges = usersKnowledgesQuery.ToList(); List <UserKnowledgeItem> innerResult = ConvertEntitiesToItems(sourceLanguageId, translationLanguageId, userKnowledges); return(innerResult); }, new List <UserKnowledgeItem>(0)); return(result); }
/// <summary> /// Determines whether this instance [can edit knowledge] the specified permission. /// </summary> /// <param name="permission">The permission.</param> /// <param name="status">The status.</param> /// <param name="creatorId">The creator ID.</param> /// <returns> /// <c>true</c> if this instance [can edit knowledge] the specified permission; otherwise, <c>false</c>. /// </returns> public static bool CanEditKnowledge(this Permission permission, KnowledgeStatus status, int creatorId) { if (status == KnowledgeStatus.Deleted) { return(permission.HasPermission(Permission.Admin)); } return ((permission >= Permission.Moderate) || (permission == Permission.Publish && creatorId == KbContext.CurrentUserId)); }
/// <summary> /// Determines whether this instance can view the specified permission. /// </summary> /// <param name="permission">The permission.</param> /// <param name="status">The status.</param> /// <returns> /// <c>true</c> if this instance can view the specified permission; otherwise, <c>false</c>. /// </returns> public static bool CanViewKnowledge(this Permission permission, KnowledgeStatus status) { switch (status) { case KnowledgeStatus.New: return(permission.HasPermission(Permission.Publish)); case KnowledgeStatus.Active: return(permission.HasPermission(Permission.View)); case KnowledgeStatus.Hide: return(permission.HasPermission(Permission.Moderate)); case KnowledgeStatus.Deleted: return(permission.HasPermission(Permission.Admin)); default: throw new ArgumentOutOfRangeException(); } }