Пример #1
0
        public async Task UpdateAdvertisement(AdvertisementRequest request, Guid userId)
        {
            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            using var transaction = _dataProvider.CreateTransaction(IsolationLevel.RepeatableRead);

            var currentAd = _dataProvider.Get <AdDb>(i => i.Id == request.Id).SingleOrDefault();

            if (currentAd.UserId != userId)
            {
                throw new UnauthorizedAccessException();
            }

            if (request.Image != null)
            {
                currentAd.ImagePath = _imageHelper.UploadImageAndGetName(request.Image).Result;
            }

            currentAd.Text  = request.Text;
            currentAd.Title = request.Title;

            await _dataProvider.Update(currentAd);

            transaction.Commit();
        }
Пример #2
0
        public void CanQueryProperly()
        {
            using (var store = NewDocumentStore())
            {
                new ClassificationSummary().Execute(store);

                using (var session = store.OpenSession())
                {
                    for (var i = 0; i < 10; i++)
                    {
                        var request = new AdvertisementRequest
                        {
                            Id          = Guid.NewGuid().ToString(),
                            Impressions = new List <Ads>
                            {
                                new Ads
                                {
                                    AdId             = Guid.NewGuid().ToString(),
                                    ClassificationId = "9000",
                                    Click            = new AdvertisementClick
                                    {
                                        ClickDate = DateTime.Now
                                    }
                                },
                                new Ads
                                {
                                    AdId             = Guid.NewGuid().ToString(),
                                    ClassificationId = "9000",
                                    Click            = new AdvertisementClick
                                    {
                                        ClickDate = DateTime.Now
                                    }
                                },
                                new Ads
                                {
                                    AdId             = Guid.NewGuid().ToString(),
                                    ClassificationId = "9000"
                                }
                            }
                        };

                        session.Store(request);
                    }
                    session.SaveChanges();
                }

                using (var session = store.OpenSession())
                {
                    var results = session.Query <dynamic, ClassificationSummary>()
                                  .Customize(x => x.WaitForNonStaleResults())
                                  .ToArray();

                    Assert.Equal(1, results.Length);
                    Assert.Equal("9000", results[0].ClassificationId);
                    Assert.Equal("30", results[0].Count);
                    Assert.Equal("20", results[0].ClickCount);
                }
            }
        }
        public IActionResult AddAdvertisement(AdvertisementRequest advertisementRequest)
        {
            var a = User.Identity;

            if (User.Identity != null)
            {
                var b = User.Identity.Name;
            }
            var userEmail = User.Claims.First().Value;
            var user      = _userManager.FindByEmailAsync(userEmail).Result;
            var category  = _categoryRepository.GetCategory(advertisementRequest.CategoryId);

            if (category == null)
            {
                return(NotFound("Category not found"));
            }
            var oblast = _oblastRepository.GetOblast(advertisementRequest.OblastId);

            if (oblast == null)
            {
                return(NotFound("Oblast not found"));
            }
            var city = _cityRepository.GetCity(advertisementRequest.CityId);

            if (city == null)
            {
                return(NotFound("City not found"));
            }
            var advertisement = new Advertisement
            {
                Name        = advertisementRequest.Name,
                Image       = advertisementRequest.Image,
                Description = advertisementRequest.Description,
                Category    = category,
                CategoryId  = category.Id,
                Oblast      = oblast,
                OblastId    = oblast.Id,
                City        = city,
                CityId      = city.Id,
                User        = user,
                UserId      = user.Id
            };
            var results = new List <ValidationResult>();
            var context = new ValidationContext(advertisement);

            if (!Validator.TryValidateObject(advertisement, context, results, true))
            {
                return(BadRequest(results));
            }
            _advertisementRepository.Add(advertisement);
            return(Ok("Created successfully"));
        }
Пример #4
0
        public Opportunity Request(AdvertisementRequest request)
        {
            var cloudEvent = new CloudEvent("com.example.myevent", new Uri("urn:example-com:mysource"))
            {
                DataContentType = new ContentType(MediaTypeNames.Application.Json),
                Data            = JsonConvert.SerializeObject("hey there!")
            };

            var content = new CloudEventContent(cloudEvent,
                                                ContentMode.Structured,
                                                new JsonEventFormatter());

            var httpClient = new HttpClient();
            var result     = httpClient.PostAsync("", content);

            return(null);
        }
Пример #5
0
        public async Task <IActionResult> UpdateAdvertisement(AdvertisementRequest request)
        {
            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var ad = _adService.GetAd(request.Id);

            if (!ModelState.IsValid)
            {
                ad = new AdDto()
                {
                    Id          = request.Id,
                    Title       = request.Title,
                    Text        = request.Text,
                    CreatedDate = ad.CreatedDate,
                    ImagePath   = ad.ImagePath,
                    Number      = ad.Number,
                    Ratings     = ad.Ratings,
                    UserId      = ad.UserId,
                    UserName    = ad.UserName
                };

                return(View(ad));
            }

            try
            {
                await _adService.UpdateAdvertisement(request, User.Claims.GetUserId());
            }
            catch (UnauthorizedAccessException)
            {
                return(RedirectToAction("Index"));
            }

            return(RedirectToAction("Index"));
        }
Пример #6
0
		public void CanQueryProperly()
		{
			using (var store = NewDocumentStore())
			{
				new ClassificationSummary().Execute(store);

				using (var session = store.OpenSession())
				{
					for (var i = 0; i < 10; i++)
					{
						var request = new AdvertisementRequest
						{
							Id = Guid.NewGuid().ToString(),
							Impressions = new List<Ads>
							{
								new Ads
								{
									AdId = Guid.NewGuid().ToString(),
									ClassificationId = "9000",
									Click = new AdvertisementClick
									{
										ClickDate = SystemTime.Now
									}

								},
								new Ads
								{
									AdId = Guid.NewGuid().ToString(),
									ClassificationId = "9000",
									Click = new AdvertisementClick
									{
										ClickDate = SystemTime.Now
									}

								},
								new Ads
								{
									AdId = Guid.NewGuid().ToString(),
									ClassificationId = "9000"

								}
							}

						};

						session.Store(request);
					}
					session.SaveChanges();
				}

				using (var session = store.OpenSession())
				{
					var results = session.Query<dynamic, ClassificationSummary>()
						.Customize(x => x.WaitForNonStaleResults())
						.ToArray();

					Assert.Equal(1, results.Length);
					Assert.Equal("9000", results[0].ClassificationId);
					Assert.Equal("30", results[0].Count);
					Assert.Equal("20", results[0].ClickCount);
				}
			}
		}
Пример #7
0
        public ActionResult <Opportunity> AddProduct(AdvertisementRequest request)
        {
            Opportunity opportunity = new Opportunity();

            return(opportunity);
        }
Пример #8
0
 // POST api/values
 public void Post([FromBody] AdvertisementRequest request)
 {
 }