public async Task <OperationResult> CreateAd(CreateAdDTO createAdDTO, string userId) { var operatonResult = new OperationResult(); var ad = new Ad { Title = createAdDTO.Title, Description = createAdDTO.Description, CategoryId = createAdDTO.CategoryId, ApplicationUserId = userId, CreatedAt = DateTime.UtcNow, ViewCount = 0 }; try { await appContext.Ads.AddAsync(ad); await appContext.SaveChangesAsync(); operatonResult.IsSuccessfull = true; operatonResult.SuccessMessages.Add("Ad created successfully"); } catch (Exception ex) { operatonResult.IsSuccessfull = false; operatonResult.ErrorMessages.Add("Something went wrong!"); } return(operatonResult); }
public async Task <ActionResult <AdCreatedDTO> > CreateAd([FromBody] CreateAdDTO createAdDTO) { AdTimeframe adTimeframe; if (!Enum.TryParse(createAdDTO.AdTimeframe, out adTimeframe)) { return(StatusCode(StatusCodes.Status417ExpectationFailed)); } string username = createAdDTO.Username; string authTokenString = createAdDTO.AuthToken; Models.Account accountToFind = await _adService.GetUser(username, authTokenString); if (accountToFind == null) { return(StatusCode(StatusCodes.Status401Unauthorized)); } Category categoryToFind = await _adService.GetCategory(createAdDTO.AdCategory); Ad ad = new Ad(categoryToFind, createAdDTO.AdContent, createAdDTO.AdTitle, adTimeframe, accountToFind, createAdDTO.AdImageURL); _smallPostersContext.Ads.Add(ad); await _smallPostersContext.SaveChangesAsync(); return(new AdCreatedDTO { AdId = ad.Id.ToString(), AdTitle = ad.Title }); }
public async Task <ActionResult <CreateAdDTO> > PostAd(CreateAdDTO adDTO) { if (adDTO == null || adDTO.Body == null || adDTO.Email == null || adDTO.Subject == null) { throw new HttpResponseException { Status = 400, Value = "Missing Body, Email or Subject in Ad" }; } var ad = await adService.CreateAd(adDTO.Subject, adDTO.Body, adDTO.Email, adDTO.Price); return(CreatedAtAction(nameof(GetAd), new { id = ad.Id }, ad)); }