Exemple #1
0
        public Product GetById(int id, string userName, string ipAddress)
        {
            UserHostAddress userHostAddress = _userHostAddressesRepository.GetByUserHostAddress(ipAddress);

            if (userHostAddress == null)
            {
                userHostAddress = new UserHostAddress
                {
                    IpAddress = ipAddress
                };
                userHostAddress = _userHostAddressesRepository.Add(userHostAddress);
            }

            ApplicationUser applicationUser = !string.IsNullOrEmpty(userName) ? _usersStore.FindByNameAsync(userName).Result : null;

            ProductViewingInfo productViewingInfo = _productViewingInfosRepository.Get(id, userHostAddress.Id);

            if (productViewingInfo != null)
            {
                productViewingInfo.Count++;
                productViewingInfo.User = applicationUser;
                _productViewingInfosRepository.Update(productViewingInfo);
            }
            else
            {
                productViewingInfo = new ProductViewingInfo
                {
                    UserHostAddress = userHostAddress,
                    ProductId       = id,
                    Count           = 1,
                    User            = applicationUser
                };

                _productViewingInfosRepository.Add(productViewingInfo);
            }

            return(_productsRepository.GetById(id));
        }
 async private Task AddUserHostAddressTask(string hostAddress)
 {
     await Task.Run(() =>
     {
         using (var dataBase = new ApplicationDbContext())
         {
             var host = dataBase.UserHostsAddress.SingleOrDefault(userHostsAddress => userHostsAddress.HostAddress.Equals(hostAddress));
             if (host == null)
             {
                 var userHostsAddress         = new UserHostAddress();
                 userHostsAddress.HostAddress = hostAddress;
                 userHostsAddress.LastVisit   = DateTime.Now;
                 dataBase.UserHostsAddress.Add(userHostsAddress);
                 dataBase.SaveChanges();
             }
             else
             {
                 host.LastVisit = DateTime.Now;
                 dataBase.SaveChanges();
             }
         }
     });
 }