public async Task <Result <NewsDTO> > AddNews(string title, string imageurl, string imageName, string body, int airportId, ClaimsPrincipal claims) { try { var user = await userManager.GetUserAsync(claims); if (user is null) { return(new NotFoundResult <NewsDTO>("User not found")); } var userRoles = await userManager.GetRolesAsync(user); if (userRoles is null || !userRoles.Contains(Roles.AirportsAdministrator.ToString())) { return(new InvalidResult <NewsDTO>($"User is not in role: {Roles.AirportsAdministrator}")); } var airport = await airportRepository.GetAirportByIdAsync(airportId); if (airport is null) { return(new NotFoundResult <NewsDTO>("Airport not found")); } var userAirport = await airportRepository.GetUserAirportByIdAsync(user.Id, airport.Id); if (userAirport is null) { return(new InvalidResult <NewsDTO>("User not assigned to this airport")); } var addedNews = await newsRepository.AddNewsAsync(new News() { Title = title, Imageurl = imageurl, ImageName = imageName, Body = body, AirportId = airportId, Airport = airport }); if (addedNews is null) { return(new InvalidResult <NewsDTO>("News was not created")); } var result = mapper.Map <News, NewsDTO>(addedNews); return(new SuccessResult <NewsDTO>(result)); } catch (Exception ex) { return(new UnexpectedResult <NewsDTO>(ex.Message)); } }
/// <summary> /// Method that maps news from dto and sends News object to repo. Then it maps it for return. /// </summary> /// <param name="newsCreateDto">NewsCreateDto object</param> /// <returns>NewsReadDto object</returns> public async Task <NewsReadDto> AddNewsAsync(NewsCreateEditDto newsCreateDto) { var news = _mapper.Map <Core.Models.Domain.News>(newsCreateDto); news = await _newsRepository.AddNewsAsync(news); var result = _mapper.Map <NewsReadDto>(news); return(result); }
public async Task AddNewsAsync(NewsModel newsModel) { await _newsRepository.AddNewsAsync(newsModel); }