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)); }