static IEnumerable <NewsItem> GetItems(Database db, DbAccount acc) { var news = new DbNews(db.Conn, 10).Entries .Select(x => NewsItem.FromDb(x)).ToArray(); return(news.OrderByDescending(x => x.Date)); }
public async Task <Guid?> CreateAsync(DbNews dbNews) { if (dbNews == null) { return(null); } _provider.News.Add(dbNews); await _provider.SaveAsync(); return(dbNews.Id); }
public async Task <bool> EditAsync(Guid newsId, JsonPatchDocument <DbNews> patch) { DbNews dbNews = await _provider.News.FirstOrDefaultAsync(x => x.Id == newsId); if (dbNews == null || patch == null) { return(false); } patch.ApplyTo(dbNews); dbNews.ModifiedBy = _httpContextAccessor.HttpContext.GetUserId(); dbNews.ModifiedAtUtc = DateTime.UtcNow; await _provider.SaveAsync(); return(true); }
private static IEnumerable <NewsItem> GetItems(Database db, DbAccount acc) { var news = new DbNews(db, 10).Entries .Select(x => NewsItem.FromDb(x)).ToArray(); var chars = db.GetDeadCharacters(acc).Take(10).Select(x => { var death = new DbDeath(acc, x); return(new NewsItem() { Icon = "fame", Title = $"Your {Program.GameData.ObjectTypeToId[death.ObjectType]} died at level {death.Level}", TagLine = $"You earned {death.TotalFame} glorious Fame", Link = $"fame:{death.CharId}", Date = death.DeathTime }); }); return(news.Concat(chars).OrderByDescending(x => x.Date)); }
public async Task <OperationResultResponse <NewsResponse> > ExecuteAsync(Guid newsId) { OperationResultResponse <NewsResponse> response = new(); DbNews dbNews = await _repository.GetAsync(newsId); if (dbNews == null) { _httpContextAccessor.HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound; response.Status = OperationResultStatusType.Failed; return(response); } List <DepartmentData> departmentsData = await GetDepartmentAsync(dbNews.Id, response.Errors); List <UserData> usersData = await GetUsersDataAsync( new List <Guid>() { dbNews.AuthorId, dbNews.CreatedBy }, response.Errors); List <ImageData> avatarsImages = await GetUsersAvatarsAsync( usersData?.Where(ud => ud.ImageId.HasValue).Select(ud => ud.ImageId.Value).ToList(), response.Errors); List <UserInfo> usersInfo = usersData? .Select(ud => _userInfoMapper.Map(ud, avatarsImages?.FirstOrDefault(ai => ai.ImageId == ud.ImageId))).ToList(); response.Body = _mapper .Map( dbNews, _departmentInfoMapper.Map(departmentsData?.FirstOrDefault()), usersInfo?.FirstOrDefault(ui => ui.Id == dbNews.AuthorId), usersInfo?.FirstOrDefault(ui => ui.Id == dbNews.CreatedBy)); response.Status = response.Errors.Any() ? OperationResultStatusType.PartialSuccess : OperationResultStatusType.FullSuccess; return(response); }
public NewsInfo Map(DbNews dbNews, DepartmentInfo department, UserInfo author, UserInfo sender) { if (dbNews == null) { return(null); } return(new NewsInfo { Id = dbNews.Id, Preview = dbNews.Preview, Subject = dbNews.Subject, Pseudonym = dbNews.Pseudonym, Department = department, Author = author, IsActive = dbNews.IsActive, CreatedAtUtc = dbNews.CreatedAtUtc, Sender = sender }); }
/// <summary> /// Добавляет сущность в базу данных на основе параметров входного IDTOModel. /// </summary> /// /// <param name="inputDTO"> Объект IDTOModel, параметры которого /// будут основой для добавляемого объекта. /// Тип класса влияет на тип сохраняемой сущности. </param> /// <remarks> /// Тип входного inputDTO влияет на тип сохраняемой сущности. </remarks> /// /// <returns> Task(bool), Result которого true, если операция добавления была успешно выполнена. /// Иначе, если тип класса входного IDTOModel не поддерживается в методе, /// сущность не будет сохранена и Result будет равен false. /// </returns> public async Task <bool> AddEntityToDb(IDTOModel inputDTO) { if (inputDTO.GetType() == typeof(DTONews)) { DbNews news = inputDTO.DbObject as DbNews; _context.News.Add(news); await _context.SaveChangesAsync(); } else if (inputDTO.GetType() == typeof(DTOUser)) { DbUser user = inputDTO.DbObject as DbUser; _context.Users.Add(user); await _context.SaveChangesAsync(); } else { return(false); } return(true); }
internal DbNews_Mock(InitializationVariants variant) : base(variant) { switch (variant) { case InitializationVariants.Good: DbNewsObject = new DbNews(1, $"NewsFrom{DateTime.Now}", $@"TestFiles\{DbNewsObject.Name}.txt"); break; case InitializationVariants.Null: DbNewsObject = new DbNews(0, null, null); break; case InitializationVariants.Empty: DbNewsObject = new DbNews(0, string.Empty, string.Empty); break; } }
/// <summary> /// Создаёт экземпляр DTONews, создавая объект DbNews на основе входных параметров. /// </summary> /// /// <param name="author"> Объект DTOUser, свойство DbObject.Id которого /// будет сохранено для DbNews.DbUserId . </param> /// <param name="nameOfNews"> Будет применено для значения DbNews.Name. </param> /// <param name="nameOfDocument"> Название хранимого документа новостей, /// будет использовано для создания DbNews.PathToDocument . </param> public DTONews(DTOUser author, string nameOfNews, string nameOfDocument) { _dbObject = new DbNews(author._dbObject.Id, nameOfNews, $@"{FileManager.PathToDocFolder}\{nameOfDocument}"); }
/// <summary> /// Создаёт экземпляр DTONews. /// </summary> /// <param name="dbNews"> объект DbNews, являющегося основой DTONews. </param> internal DTONews(DbNews dbNews) { _dbObject = dbNews; }
public DTONews(DbNews dbObject) { DbObject = dbObject; }