Example #1
0
        public List <City> UpdateCityData(Province province)
        {
            string      errmsg   = "";
            List <City> cityList = new List <City>();

            if (province == null || province.Status != "0")
            {
                return(null);
            }
            try
            {
                HttpHelper httpHelper = new HttpHelper();
                foreach (var item in province.Result)
                {
                    string requestUrl = string.Format(Configs.ApiCityUrl, item.Id);
                    string result     = httpHelper.HttpResponsePostString(requestUrl);
                    if (string.IsNullOrEmpty(result))
                    {
                        Console.WriteLine($"请求{item.Name}(ID:{item.Id})下的城市失败!");
                        continue;
                    }
                    CityBusiness cityBusiness = new CityBusiness();
                    City         city         = cityBusiness.SaveData(result, out errmsg);
                    if (city != null && string.IsNullOrEmpty(errmsg))
                    {
                        Console.WriteLine($"保存{item.Name}城市数据成功,共计{city.Result.Count}条记录。");
                        cityList.Add(city);
                    }
                    else
                    {
                        if (city != null)
                        {
                            switch (city.Status)
                            {
                            case "203":
                                Console.WriteLine($"{item.Name}下没有数据.");
                                break;

                            default:
                                Console.WriteLine($"获取{item.Name}数据失败,错误代码:{city.Status},错误信息:{city.Msg}");
                                break;
                            }
                        }
                        else
                        {
                            Console.WriteLine($"保存{item.Name}城市数据失败!错误:" + errmsg);
                        }
                        continue;
                    }
                }
                return(cityList);
            }
            catch (Exception ex)
            {
                throw new Exception($"更新城市数据出错,错误:{ex.Message}");
            }
        }
Example #2
0
        public void Delete_ThrowsArgumentException_WhenSuppliersAreRelatedToTheCity()
        {
            // Arrange
            var cities = new List <City>
            {
                new City {
                    Name = "TestCity1", Id = 1
                },
                new City {
                    Name = "TestCity2", Id = 2
                }
            }.AsQueryable();

            var suppliers = new List <Supplier>
            {
                new Supplier {
                    Name = "TestSupplier1", CityId = 1
                }
            }.AsQueryable();

            var citymockDbSet = new Mock <DbSet <City> >();

            citymockDbSet.As <IQueryable <City> >().Setup(m => m.Provider).Returns(cities.Provider);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.Expression).Returns(cities.Expression);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.ElementType).Returns(cities.ElementType);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.GetEnumerator()).Returns(cities.GetEnumerator());

            var suppliermockDbSet = new Mock <DbSet <Supplier> >();

            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.Provider).Returns(suppliers.Provider);
            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.Expression).Returns(suppliers.Expression);
            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.ElementType).Returns(suppliers.ElementType);
            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.GetEnumerator()).Returns(suppliers.GetEnumerator());

            var mockContext = new Mock <EazyCartContext>();

            mockContext.Setup(c => c.Cities).Returns(citymockDbSet.Object);
            mockContext.Setup(c => c.Suppliers).Returns(suppliermockDbSet.Object);

            var cityBusiness = new CityBusiness(mockContext.Object);

            // Act & Assert
            try
            {
                int idToDelete = 1;
                cityBusiness.Delete(idToDelete);
                Assert.Fail("No exception was thrown.");
            }
            catch (ArgumentException ex)
            {
                string expectedMessage = string.Format("One or more suppliers are related to this city.");
                Assert.AreEqual(expectedMessage, ex.Message, "Wrong exception was thrown.");
            }
        }
Example #3
0
        public void Add_ThrowsArgumentException_WhenCityWithSuchIdAlreadyExists()
        {
            // Arrange
            var countries = new List <Country>
            {
                new Country {
                    Name = "TestCountry1", Id = 1
                }
            }.AsQueryable();

            var cities = new List <City>
            {
                new City {
                    Name = "TestCity1", Id = 1, CountryId = 1
                },
            }.AsQueryable();

            var mockDbCountrySet = new Mock <DbSet <Country> >();

            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.Provider).Returns(countries.Provider);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.Expression).Returns(countries.Expression);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.ElementType).Returns(countries.ElementType);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.GetEnumerator()).Returns(countries.GetEnumerator());

            var mockDbCitySet = new Mock <DbSet <City> >();

            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.Provider).Returns(cities.Provider);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.Expression).Returns(cities.Expression);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.ElementType).Returns(cities.ElementType);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.GetEnumerator()).Returns(cities.GetEnumerator());

            var mockContext = new Mock <EazyCartContext>();

            mockContext.Setup(c => c.Cities).Returns(mockDbCitySet.Object);
            mockContext.Setup(c => c.SaveChanges()).Throws(new Exception());
            mockContext.Setup(c => c.Countries).Returns(mockDbCountrySet.Object);

            var cityBusiness = new CityBusiness(mockContext.Object);
            int duplicateId  = 1;

            // Act & Assert
            try
            {
                cityBusiness.Add("TestCity1", duplicateId, "TestCountry1");
                cityBusiness.Add("TestCity2", duplicateId, "TestCountry1");
                Assert.Fail("No exception was thrown");
            }
            catch (ArgumentException ex)
            {
                string expectedMessage = string.Format($"City with ID {duplicateId} already exists.");
                Assert.AreEqual(expectedMessage, ex.Message, "Wrong exception was thrown.");
            }
        }
Example #4
0
        // The following methods are responsible for updating information when it is changed.
        /// <summary>
        /// Updates the user control every time it is loaded.
        /// </summary>
        public void UpdateUserControl()
        {
            var eazyCartContext = new EazyCartContext();

            this.productBusiness  = new ProductBusiness(eazyCartContext);
            this.categoryBusiness = new CategoryBusiness(eazyCartContext);
            this.supplierBusiness = new SupplierBusiness(eazyCartContext);
            this.unitBusiness     = new UnitBusiness(eazyCartContext);
            this.countryBusiness  = new CountryBusiness(eazyCartContext);
            this.cityBusiness     = new CityBusiness(eazyCartContext);
            this.ClearAndUpdateProductTab();
            this.ClearAndUpdateDeliveryTab();
        }
Example #5
0
        // The following methods are responsible for updating information when it is changed.
        /// <summary>
        /// Updates the user control every time it is loaded.
        /// </summary>
        public void UpdateUserControl()
        {
            var eazyCartContext = new EazyCartContext();

            this.cityBusiness     = new CityBusiness(eazyCartContext);
            this.countryBusiness  = new CountryBusiness(eazyCartContext);
            this.categoryBusiness = new CategoryBusiness(eazyCartContext);
            this.supplierBusiness = new SupplierBusiness(eazyCartContext);
            this.ClearAndUpdateCategoryTab();
            this.ClearAndUpdateCountryTab();
            this.ClearAndUpdateCityTab();
            this.ClearAndUpdateSupplierTab();
        }
Example #6
0
        public void Delete_SuccessfullyDeletesCity_WhenNoSuppliersAreRelated()
        {
            // Arrange
            var cities = new List <City>
            {
                new City {
                    Name = "TestCity1", Id = 1
                },
                new City {
                    Name = "TestCity2", Id = 2
                }
            }.AsQueryable();

            var suppliers = new List <Supplier>
            {
                new Supplier {
                    Name = "TestSupplier1", CityId = 1
                }
            }.AsQueryable();

            var citymockDbSet = new Mock <DbSet <City> >();

            citymockDbSet.As <IQueryable <City> >().Setup(m => m.Provider).Returns(cities.Provider);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.Expression).Returns(cities.Expression);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.ElementType).Returns(cities.ElementType);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.GetEnumerator()).Returns(cities.GetEnumerator());

            var suppliermockDbSet = new Mock <DbSet <Supplier> >();

            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.Provider).Returns(suppliers.Provider);
            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.Expression).Returns(suppliers.Expression);
            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.ElementType).Returns(suppliers.ElementType);
            suppliermockDbSet.As <IQueryable <Supplier> >().Setup(m => m.GetEnumerator()).Returns(suppliers.GetEnumerator());

            var mockContext = new Mock <EazyCartContext>();

            mockContext.Setup(c => c.Cities).Returns(citymockDbSet.Object);
            mockContext.Setup(c => c.Suppliers).Returns(suppliermockDbSet.Object);

            var cityBusiness = new CityBusiness(mockContext.Object);

            // Act
            int idToDelete = 2;

            cityBusiness.Delete(idToDelete);

            // Assert
            citymockDbSet.Verify(m => m.Remove(It.IsAny <City>()), Times.Once());
            mockContext.Verify(m => m.SaveChanges(), Times.Once());
        }
Example #7
0
        public void Update_ThrowsArgumentException_WhenCountryDoesNotExist()
        {
            // Arrange
            var countries = new List <Country>
            {
                new Country {
                    Name = "TestCountry1", Id = 1
                }
            }.AsQueryable();

            var cities = new List <City>
            {
                new City {
                    Name = "TestCity1", Id = 1, CountryId = 1
                }
            }.AsQueryable();

            var mockDbCountrySet = new Mock <DbSet <Country> >();

            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.Provider).Returns(countries.Provider);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.Expression).Returns(countries.Expression);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.ElementType).Returns(countries.ElementType);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.GetEnumerator()).Returns(countries.GetEnumerator());

            var mockDbCitySet = new Mock <DbSet <City> >();

            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.Provider).Returns(cities.Provider);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.Expression).Returns(cities.Expression);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.ElementType).Returns(cities.ElementType);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.GetEnumerator()).Returns(cities.GetEnumerator());

            var mockContext = new Mock <EazyCartContext>();

            mockContext.Setup(c => c.Cities).Returns(mockDbCitySet.Object);
            mockContext.Setup(c => c.Countries).Returns(mockDbCountrySet.Object);

            var cityBusiness = new CityBusiness(mockContext.Object);

            // Act & Assert
            try
            {
                cityBusiness.Update("UpdatedCity1", 1, "InvalidCountry");
                Assert.Fail("No exception was thrown");
            }
            catch (ArgumentException ex)
            {
                string expectedMessage = string.Format("No such country exists.");
                Assert.AreEqual(expectedMessage, ex.Message, "Wrong exception was thrown.");
            }
        }
Example #8
0
        public void GetCityNameBySupplier_SuccessfullyReturnsACity()
        {
            // Arrange
            var cities = new List <City>
            {
                new City {
                    Name = "TestCity1", Id = 1
                },
                new City {
                    Name = "TestCity2", Id = 2,
                }
            }.AsQueryable();

            var suppliers = new List <Supplier>
            {
                new Supplier {
                    Name = "TestSupplier1", Id = 1, CityId = 1
                }
            }.AsQueryable();

            var mockDbCitySet = new Mock <DbSet <City> >();

            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.Provider).Returns(cities.Provider);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.Expression).Returns(cities.Expression);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.ElementType).Returns(cities.ElementType);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.GetEnumerator()).Returns(cities.GetEnumerator());

            var mockDbSupplierSet = new Mock <DbSet <Supplier> >();

            mockDbSupplierSet.As <IQueryable <Supplier> >().Setup(m => m.Provider).Returns(suppliers.Provider);
            mockDbSupplierSet.As <IQueryable <Supplier> >().Setup(m => m.Expression).Returns(suppliers.Expression);
            mockDbSupplierSet.As <IQueryable <Supplier> >().Setup(m => m.ElementType).Returns(suppliers.ElementType);
            mockDbSupplierSet.As <IQueryable <Supplier> >().Setup(m => m.GetEnumerator()).Returns(suppliers.GetEnumerator());

            var mockContext = new Mock <EazyCartContext>();

            mockContext.Setup(c => c.Cities).Returns(mockDbCitySet.Object);
            mockContext.Setup(c => c.Suppliers).Returns(mockDbSupplierSet.Object);

            var cityBusiness = new CityBusiness(mockContext.Object);

            // Act
            string expectedName = "TestCity1";
            string supplierName = "TestSupplier1";
            var    cityName     = cityBusiness.GetNameBySupplier(supplierName);

            // Assert
            Assert.AreEqual(expectedName, cityName, "City names do not match.");
        }
Example #9
0
        public void Update_SuccessfullyUpdatesCity_WhenCityIdIsNotDuplicate()
        {
            // Arrange
            var countries = new List <Country>
            {
                new Country {
                    Name = "TestCountry1", Id = 1
                }
            }.AsQueryable();

            var cities = new List <City>
            {
                new City {
                    Name = "TestCity1", Id = 1, CountryId = 1
                },
                new City {
                    Name = "TestCity2", Id = 2, CountryId = 2
                }
            }.AsQueryable();

            var mockDbCountrySet = new Mock <DbSet <Country> >();

            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.Provider).Returns(countries.Provider);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.Expression).Returns(countries.Expression);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.ElementType).Returns(countries.ElementType);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.GetEnumerator()).Returns(countries.GetEnumerator());

            var citymockDbSet = new Mock <DbSet <City> >();

            citymockDbSet.As <IQueryable <City> >().Setup(m => m.Provider).Returns(cities.Provider);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.Expression).Returns(cities.Expression);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.ElementType).Returns(cities.ElementType);
            citymockDbSet.As <IQueryable <City> >().Setup(m => m.GetEnumerator()).Returns(cities.GetEnumerator());

            var mockContext = new Mock <EazyCartContext>();

            mockContext.Setup(c => c.Cities).Returns(citymockDbSet.Object);
            mockContext.Setup(c => c.Countries).Returns(mockDbCountrySet.Object);

            var cityBusiness = new CityBusiness(mockContext.Object);

            // Act
            cityBusiness.Update("UpdatedCity", 1, "TestCountry1");

            // Assert
            mockContext.Verify(m => m.SaveChanges(), Times.Once());
        }
Example #10
0
        public void GetCity_ReturnsACorrectCity()
        {
            // Arrange
            var countries = new List <Country>
            {
                new Country {
                    Name = "TestCountry1", Id = 1
                },
                new Country {
                    Name = "TestCountry2", Id = 2
                }
            }.AsQueryable();

            var cities = new List <City>
            {
                new City {
                    Name = "TestCity1", Id = 1, CountryId = 1
                },
                new City {
                    Name = "TestCity2", Id = 2, CountryId = 2
                }
            }.AsQueryable();

            var suppliers = new List <Supplier>
            {
                new Supplier {
                    Name = "TestSupplier1", Id = 1, CityId = 1
                }
            }.AsQueryable();

            var mockDbCountrySet = new Mock <DbSet <Country> >();

            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.Provider).Returns(countries.Provider);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.Expression).Returns(countries.Expression);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.ElementType).Returns(countries.ElementType);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.GetEnumerator()).Returns(countries.GetEnumerator());

            var mockDbCitySet = new Mock <DbSet <City> >();

            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.Provider).Returns(cities.Provider);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.Expression).Returns(cities.Expression);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.ElementType).Returns(cities.ElementType);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.GetEnumerator()).Returns(cities.GetEnumerator());

            var mockDbSupplierSet = new Mock <DbSet <Supplier> >();

            mockDbSupplierSet.As <IQueryable <Supplier> >().Setup(m => m.Provider).Returns(suppliers.Provider);
            mockDbSupplierSet.As <IQueryable <Supplier> >().Setup(m => m.Expression).Returns(suppliers.Expression);
            mockDbSupplierSet.As <IQueryable <Supplier> >().Setup(m => m.ElementType).Returns(suppliers.ElementType);
            mockDbSupplierSet.As <IQueryable <Supplier> >().Setup(m => m.GetEnumerator()).Returns(suppliers.GetEnumerator());


            var mockContext = new Mock <EazyCartContext>();

            mockContext.Setup(c => c.Cities).Returns(mockDbCitySet.Object);
            mockContext.Setup(c => c.Countries).Returns(mockDbCountrySet.Object);
            mockContext.Setup(c => c.Suppliers).Returns(mockDbSupplierSet.Object);

            var cityBusiness = new CityBusiness(mockContext.Object);

            // Act
            int idToGet = 1;
            var city    = cityBusiness.Get(idToGet);

            // Assert
            Assert.AreEqual(idToGet, city.Id, "Ids do not match.");
        }
Example #11
0
        public void GetAllCityNamesFromCountry_ReturnsACorrectListOfCitiesLocatedInTheCountry()
        {
            // Arrange
            var countries = new List <Country>
            {
                new Country {
                    Name = "TestCountry1", Id = 1
                },
                new Country {
                    Name = "TestCountry2", Id = 2
                }
            }.AsQueryable();

            var cities = new List <City>
            {
                new City {
                    Name = "TestCity1", Id = 1, CountryId = 1
                },
                new City {
                    Name = "TestCity2", Id = 2,
                }
            }.AsQueryable();

            var suppliers = new List <Supplier>
            {
                new Supplier {
                    Name = "TestSupplier1", Id = 1, CityId = 1
                }
            }.AsQueryable();

            var mockDbCountrySet = new Mock <DbSet <Country> >();

            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.Provider).Returns(countries.Provider);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.Expression).Returns(countries.Expression);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.ElementType).Returns(countries.ElementType);
            mockDbCountrySet.As <IQueryable <Country> >().Setup(m => m.GetEnumerator()).Returns(countries.GetEnumerator());

            var mockDbCitySet = new Mock <DbSet <City> >();

            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.Provider).Returns(cities.Provider);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.Expression).Returns(cities.Expression);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.ElementType).Returns(cities.ElementType);
            mockDbCitySet.As <IQueryable <City> >().Setup(m => m.GetEnumerator()).Returns(cities.GetEnumerator());

            var mockDbSupplierSet = new Mock <DbSet <Supplier> >();

            mockDbSupplierSet.As <IQueryable <Supplier> >().Setup(m => m.Provider).Returns(suppliers.Provider);
            mockDbSupplierSet.As <IQueryable <Supplier> >().Setup(m => m.Expression).Returns(suppliers.Expression);
            mockDbSupplierSet.As <IQueryable <Supplier> >().Setup(m => m.ElementType).Returns(suppliers.ElementType);
            mockDbSupplierSet.As <IQueryable <Supplier> >().Setup(m => m.GetEnumerator()).Returns(suppliers.GetEnumerator());


            var mockContext = new Mock <EazyCartContext>();

            mockContext.Setup(c => c.Cities).Returns(mockDbCitySet.Object);
            mockContext.Setup(c => c.Countries).Returns(mockDbCountrySet.Object);
            mockContext.Setup(c => c.Suppliers).Returns(mockDbSupplierSet.Object);

            var cityBusiness = new CityBusiness(mockContext.Object);

            // Act
            string expectedName            = "TestCity1";
            var    allCityNamesFromCountry = cityBusiness.GetAllCityNamesFromCountry("TestCountry1");

            // Assert
            Assert.AreEqual(expectedName, allCityNamesFromCountry[0], "City names do not match.");
        }
Example #12
0
        private async Task <AdvertiseLogBusiness> GetNextAdv(long simCardNumber)
        {
            var newAdvertiseLogBusiness = new AdvertiseLogBusiness();
            var monitor = new PerfMonitor();

            try
            {
                newAdvertiseLogBusiness.SimCardNumber = simCardNumber;

                #region find visitor and text replacements
                //پیدا کردن ویزیتور ها و متن جایگزین محتوا برای سیم کارت مورد نظر
                var replacements = await VisitorBusiness.GetMasterSlaveAdvReplacementsAsync(newAdvertiseLogBusiness.SimCardNumber);

                if (replacements?.MasterGuid == null)
                {
                    return(null);
                }

                newAdvertiseLogBusiness.MasterVisitorGuid = (Guid)replacements.MasterGuid;
                if (replacements.SlaveGuid != null)
                {
                    newAdvertiseLogBusiness.SlaveVisitorGuid = (Guid)replacements.SlaveGuid;
                }
                #endregion

                #region find visitorAdvs
                //لیست آگهی های مرتبط با ویزیتور دریافت می شود
                AdvertiseList = await Advertise.GetAllAsync(AdvRootPath, newAdvertiseLogBusiness.MasterVisitorGuid);

                AdvertiseList = AdvertiseList.Where(q => q.PishNevis == false).ToList();

                if (!(AdvertiseList?.Count > 0))
                {
                    return(null);
                }

                #endregion

                #region findNextAdvIndex


                var nextAdvIndex = new Random().Next(AdvertiseList.Count);
                #endregion

                #region GetPath

                string path = null;
                path = Path.Combine(Path.Combine(_cls?.NiazSetting?.PicPath, AdvertiseList[nextAdvIndex].AdvName) ==
                                    AdvertiseList[nextAdvIndex].AdvName
                    ? AdvertiseList[nextAdvIndex].RootPath
                    : _cls?.NiazSetting?.PicPath, AdvertiseList[nextAdvIndex].AdvName);
                newAdvertiseLogBusiness.Adv = path;
                #endregion


                #region FindNextTitle
                //تایتل آگهی دریافت می شود
                if (!(AdvertiseList[nextAdvIndex].Titles?.Count > 0))
                {
                    return(null);
                }

                var nextTitleIndex = new Random(DateTime.Now.Millisecond).Next(AdvertiseList[nextAdvIndex].Titles.Count);
                newAdvertiseLogBusiness.Title = AdvertiseList[nextAdvIndex].Titles[nextTitleIndex];


                if (string.IsNullOrEmpty(newAdvertiseLogBusiness.Content))
                {
                    return(null);
                }
                #endregion

                #region GetContent
                //کانتنت آگهی دریافت می شود

                newAdvertiseLogBusiness.Content = AdvertiseList[nextAdvIndex].Content
                                                  .Replace("<master>", replacements.AdvReplacement1)
                                                  .Replace("<slave>", replacements.AdvReplacement2)
                                                  .Replace("<tell>", replacements.Phone)
                                                  .Replace("(", "<")
                                                  .Replace(")", ">");

                if (string.IsNullOrEmpty(newAdvertiseLogBusiness.Content))
                {
                    return(null);
                }

                #endregion

                #region FindImages
                //عکسهای آگهی دریافت می شود
                newAdvertiseLogBusiness.ImagesPathList = GetNextImages(newAdvertiseLogBusiness.Adv,
                                                                       _cls?.NiazSetting?.PicCountInPerAdv ?? 3);
                #endregion

                //قیمت آگهی دریافت می شود
                newAdvertiseLogBusiness.Price = AdvertiseList[nextAdvIndex].Price;

                #region GetCity

                var city = await CityBusiness.GetNextRandomCityAsync(newAdvertiseLogBusiness.MasterVisitorGuid,
                                                                     AdvertiseType.NiazKade);

                newAdvertiseLogBusiness.City  = city?.CityName ?? "مشهد";
                newAdvertiseLogBusiness.State = city?.State.StateName ?? "خراسان رضوی";
                #endregion

                #region GetCategory
                if (AdvertiseList[nextAdvIndex].NiazKadeCategories != null &&
                    AdvertiseList[nextAdvIndex].NiazKadeCategories.Count > 0)
                {
                    newAdvertiseLogBusiness.SubCategory1 = AdvertiseList[nextAdvIndex]?.NiazKadeCategories[0] ?? "";
                    newAdvertiseLogBusiness.SubCategory2 = AdvertiseList[nextAdvIndex]?.NiazKadeCategories[1] ?? "";
                }
                else
                {
                    newAdvertiseLogBusiness.SubCategory1 = null;
                    newAdvertiseLogBusiness.SubCategory2 = null;
                }
                #endregion

                return(newAdvertiseLogBusiness);
            }
            catch (Exception ex)
            {
                WebErrorLog.ErrorLogInstance.StartLog(ex);
                return(null);
            }

            finally { monitor.Dispose(); }
        }