Example #1
0
        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);
        }
Example #2
0
        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
            });
        }
Example #3
0
        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));
        }