Exemple #1
0
        private int GetBuildingPoints(UserBuilding building)
        {
            double points = 0;

            for (int i = 1; i <= building.BuildingLevel; i++)
            {
                points += ((Math.Pow(ResourceCoeficient, i) * building.Building.WoodCost) +
                           (Math.Pow(ResourceCoeficient, i) * building.Building.IronCost) +
                           (Math.Pow(ResourceCoeficient, i) * building.Building.FoodCost));
            }

            return((int)Math.Round(points / PointsDevider));
        }
        public int CreateUserBuilding(int userId, int buildingId, int?buildingObjectId, string host)
        {
            int result = 0;

            var user = _userRepository.FindById(userId);

            using (IUnitOfWork work = UnitOfWork.Begin())
            {
                UserBuilding ub = null;
                ub =
                    _userBuildingRepository.FindAll().Where(
                        x => x.UserId == userId && x.BuildingId == buildingId && x.BuildingObjectId == buildingObjectId).FirstOrDefault();
                var message = new XElement(XMLLogLiterals.LOG_MESSAGE);
                message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageUserBuildingsChanged", new List <string> {
                    user.LoginName
                }));
                if (ub == null)
                {
                    ub = DomainObjectFactory.CreateUserBuilding();

                    ub.UserId           = userId;
                    ub.BuildingObjectId = buildingObjectId;
                    ub.IsDeleted        = false;
                    ub.BuildingId       = buildingId;

                    _userBuildingRepository.Add(ub);
                }
                else
                {
                    ub.IsDeleted = false;
                }

                work.Commit();
                ub = _userBuildingRepository.FindById(ub.Id);
                message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageUserBuildingAdded", new List <string> {
                    ub.Building.Name,
                    ub.BuildingObject == null ? " " : ub.BuildingObject.Description
                }));

                result = ub.Id;

                _logService.CreateLog(CurrentUser.Get().Id, "web", flag, host, CurrentUser.Get().CompanyId, message.ToString());
            }

            return(result);
        }
        public IActionResult EditBuilding(UserBuilding userbuilding)
        {
            if (ModelState.IsValid)
            {
                userbuilding.IpAddressUser = HttpContext.Connection.RemoteIpAddress.ToString();
                var usersTable = _layersList.Value.FirstOrDefault(o => o.Name == "users_data");
                if (usersTable != null)
                {
                    using (GisAccess gis = new GisAccess(usersTable))
                    {
                        //if (gis.IsMaxEditesPerDay())
                        //{
                        int retry_cnt = 5;
                        int cnt       = retry_cnt;
                        do
                        {
                            --cnt;
                            try
                            {
                                gis.WriteUserData(userbuilding);
                                EditesChecker.AddEditsCnt();
                                break;
                            }
                            catch (Exception ex)
                            {
                                _logger.LogError($"Not write userdata {retry_cnt - cnt}/{retry_cnt}. {ex.Message}");
                                Thread.Sleep(2);
                            }
                        } while (cnt > 0);
                        //}
                    }
                }
            }

            return(PartialView("EditBuildingModal", userbuilding));
        }