Exemplo n.º 1
0
    //건물 설명 창
    public void SetBuildingState(BuildingId Id)
    {
        buildingState.SetActive(true);
        Building building = BuildingDatabase.Instance.GetBuildingData((int)Id);

        buildingName.text        = building.Name;
        buildingExplanation.text = building.Explanation;

        buildingLevel.text            = dataManager.Building[(int)Id].ToString();
        buildingLevelExplanation.text = BuildingDatabase.Instance.buildingData[(int)Id].BuildingData[dataManager.Building[(int)Id]].Explanation;
        buildingTime.text             = BuildingDatabase.Instance.buildingData[(int)Id].BuildingData[dataManager.Building[(int)Id]].BuildTime.ToString();
        buildCost.text  = BuildingDatabase.Instance.buildingData[(int)Id].BuildingData[dataManager.Building[(int)Id]].Cost.ToString();
        currentBuilding = Id;
    }
Exemplo n.º 2
0
        public IActionResult CreateReport(int id, [FromBody] ReportDTO reportDtoDto)
        {
            var buildingId       = new BuildingId(id);
            var reportRepository = ReportRepository(buildingId);

            var report = new BubelSoft.Building.Domain.Models.Report(reportDtoDto.Date, reportDtoDto.NumberOfWorkers, _userSession.User.Id, buildingId);

            foreach (var reportQuantity in reportDtoDto.Work)
            {
                report.AddOrUpdateWork(reportQuantity.EstimationId, reportQuantity.Quantity);
            }

            reportRepository.Save(report);
            return(Ok(report.Id));
        }
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = BuildingId?.GetHashCode() ?? 0;
         hashCode = (hashCode * 397) ^ EnergyCost;
         hashCode = (hashCode * 397) ^ InstanceId;
         hashCode = (hashCode * 397) ^ (Location != null ? Location.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ PlayerIndex;
         hashCode = (hashCode * 397) ^ ProvidedByScenario.GetHashCode();
         hashCode = (hashCode * 397) ^ QueueLength;
         hashCode = (hashCode * 397) ^ SupplyCost;
         return(hashCode);
     }
 }
Exemplo n.º 4
0
        public void CanAccess_ReturnFalse_WhenUserIsNotSupervisor()
        {
            var buildingId = new BuildingId(16);
            var userId     = new UserId(7);
            var user       = new User(userId, "", "", UserCompanyRole.Worker, "");

            _userRepository.Get(userId).Returns(user);

            var reporterId = new UserId(5);
            var report     = new Report(DateTime.Now, 1, reporterId, buildingId);

            var access = _reportAccessRule.CanAccess(report, userId);

            Assert.IsFalse(access);
        }
Exemplo n.º 5
0
        public void CanAccess_ShouldCheckMainContractorAndSubContractors(int mainContractorId, int subContractorId, int userCompanyId, bool result)
        {
            var buildingId = new BuildingId(3);
            var building   = new Building(buildingId, "name", new Company(new CompanyId(mainContractorId), "cName", "cNumber"), new [] { new Company(new CompanyId(subContractorId), "sCName", "sCNumber") });
            var user       = new User(new UserId(1), "", "", UserCompanyRole.Admin, "");

            user.From(new CompanyId(userCompanyId));
            if (userCompanyId == mainContractorId || userCompanyId == subContractorId)
            {
                user.AddRole(buildingId, UserBuildingRole.Supervisor);
            }

            var access = building.CanAccess(user);

            Assert.That(access, Is.EqualTo(result));
        }
Exemplo n.º 6
0
        public void Get_Forbid_UserHasNoAccess()
        {
            var buildingId = new BuildingId(12);
            var companyId  = new CompanyId(16);
            var building   = new Domain.Models.Building(buildingId, "name", new Company(companyId, "cName", "cNumber"));

            _buildingRepository.Get(buildingId).Returns(building);

            var user = new User(new UserId(2), "", "", UserCompanyRole.UserAdmin, "");

            user.From(companyId);
            _userSession.User.Returns(user);

            var response = _buildingsController.Get(buildingId.Value);

            Assert.That(response, Is.TypeOf <ForbidResult>());
        }
Exemplo n.º 7
0
 protected override void WriteDataOnParent(MainForm frm, Control parent, ref Point location)
 {
     EventLabel(frm, parent, ref location, "HF:", Hf);
     EventLabel(frm, parent, ref location, "State:", BodyState);
     EventLabel(frm, parent, ref location, "Site:", Site);
     if (Structure != null)
     {
         EventLabel(frm, parent, ref location, "Structure:", Structure);
     }
     else
     {
         EventLabel(frm, parent, ref location, "Building ID:", BuildingId.ToString());
     }
     EventLabel(frm, parent, ref location, "Region:", Subregion);
     EventLabel(frm, parent, ref location, "Layer:", FeatureLayerId == -1 ? "" : FeatureLayerId.ToString());
     EventLabel(frm, parent, ref location, "Coords:", new Coordinate(Coords));
 }
Exemplo n.º 8
0
        public IActionResult Create(int id)
        {
            var buildingId = new BuildingId(id);
            var building   = _buildingRepository.Get(buildingId);

            var file = Request.Form.Files[0];

            using (var stream = new FileStream($"C:\\Users\\mbube\\Desktop\\Tmp\\{file.FileName}", FileMode.Create))
            {
                file.CopyTo(stream);
                stream.Position = 0;
                var estimationRepository = EstimationRepository(buildingId);
                estimationRepository.Create(stream, building.MainContractor.Id.Value);
            }

            return(Ok());
        }
Exemplo n.º 9
0
        public IActionResult GetReports(int id, [FromBody] ReportDate reportDate)
        {
            var buildingId = new BuildingId(id);
            var building   = BuildingRepository.Get(buildingId);
            var user       = _userSession.User;
            var userRoles  = user.Roles.Where(r => r.BuildingId == buildingId).ToList();

            var reportRepository = ReportRepository(buildingId);

            IEnumerable <Repositories.ReportListItem> reports;

            if (user.CompanyId == building.MainContractor.Id && userRoles.Any(r => r.UserBuildingRole == UserBuildingRole.Admin))
            {
                reports = reportRepository.GetAll(reportDate.Month, reportDate.Year);
            }
            else if (userRoles.Any(r => r.UserBuildingRole == UserBuildingRole.Admin))
            {
                var usersId = _userRepository.GetBuildingWorkers(buildingId, user.CompanyId)
                              .Select(u => u.Id);
                reports = reportRepository.GetFor(reportDate.Month, reportDate.Year, usersId.Select(i => i.Value).ToArray());
            }
            else
            {
                reports = reportRepository.GetFor(reportDate.Month, reportDate.Year, user.Id.Value);
            }

            var companies = _companyRepository.GetContractors(buildingId).ToList();
            var users     = companies.SelectMany(c => _userRepository.GetWorkers(c.Id));

            return(Ok(reports.GroupBy(r => r.Date.Day)
                      .Select(g => new ReportList
            {
                Day = g.Key,
                Reports = g.Select(r =>
                {
                    var us = users.Single(u => u.Id.Value == r.UserId);
                    return new ReportListItem
                    {
                        Id = r.Id,
                        CompanyName =
                            companies.Single(c => c.Id == us.CompanyId).Name,
                        UserName = $"{us.FirstName} {us.LastName} ({us.Email})"
                    };
                })
            }).OrderBy(g => g.Day)));
        }
Exemplo n.º 10
0
        public void GetCompanies_Ok_BuildingExistsUserHasAccess()
        {
            var buildingId = new BuildingId(12);
            var companyId  = new CompanyId(16);
            var building   = new Domain.Models.Building(buildingId, "name", new Company(companyId, "cName", "cNumber"));

            _buildingRepository.Get(buildingId).Returns(building);

            var user = new User(new UserId(2), "", "", UserCompanyRole.UserAdmin, "");

            user.From(companyId);
            user.AddRole(buildingId, UserBuildingRole.Supervisor);
            _userSession.User.Returns(user);

            var response = _buildingsController.GetCompanies(buildingId.Value);

            Assert.That(response, Is.TypeOf <OkObjectResult>());
        }
Exemplo n.º 11
0
        public Report Get(int reportId, BuildingId buildingId)
        {
            var entity = _buildingContext.Reports.Include(r => r.Quantities).SingleOrDefault(r => r.Id == reportId);

            if (entity == null)
            {
                return(null);
            }

            var report = new Report(entity.ReportDate, entity.WorkersCount, new UserId(entity.ReporterId), buildingId);

            foreach (var entityQuantity in entity.Quantities)
            {
                report.AddOrUpdateWork(entityQuantity.EstimationId, entityQuantity.Quantity);
            }

            return(report);
        }
Exemplo n.º 12
0
        public void AddRole_ShouldNotduplcateRole()
        {
            var user = new User("", "", UserCompanyRole.Worker, "");

            var buildingId = new BuildingId(1);

            user.AddRole(buildingId, UserBuildingRole.Admin);
            user.AddRole(buildingId, UserBuildingRole.Reporter);

            Assert.That(user.Roles, Has.Count.EqualTo(2));
            Assert.That(user.Roles.SingleOrDefault(r => r.UserBuildingRole == UserBuildingRole.Admin).BuildingId, Is.EqualTo(buildingId));
            Assert.That(user.Roles.SingleOrDefault(r => r.UserBuildingRole == UserBuildingRole.Reporter).BuildingId, Is.EqualTo(buildingId));

            user.AddRole(buildingId, UserBuildingRole.Reporter);

            Assert.That(user.Roles, Has.Count.EqualTo(2));
            Assert.That(user.Roles.SingleOrDefault(r => r.UserBuildingRole == UserBuildingRole.Admin).BuildingId, Is.EqualTo(buildingId));
            Assert.That(user.Roles.SingleOrDefault(r => r.UserBuildingRole == UserBuildingRole.Reporter).BuildingId, Is.EqualTo(buildingId));
        }
Exemplo n.º 13
0
        public Report(DateTime date, int numberOfWorkers, UserId reporterId, BuildingId buildingId)
        {
            if (numberOfWorkers <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(numberOfWorkers));
            }

            var mostNowInWorld = DateTime.UtcNow.AddHours(12);

            if (date.Date > mostNowInWorld.Date)
            {
                throw new ArgumentOutOfRangeException(nameof(date));
            }

            Date            = date;
            NumberOfWorkers = numberOfWorkers;
            Work            = new List <ReportQuantity>();
            ReporterId      = reporterId;
            BuildingId      = buildingId;
        }
Exemplo n.º 14
0
        public void CanEdit_False_UserIsAdminButNotWorksInMainContractor()
        {
            var estimation       = Estimation.Existing(12, "", "", "", "", 1, 1, 1, new CompanyId(12));
            var userId           = new UserId(2);
            var buildingId       = new BuildingId(4);
            var mainContractorId = new CompanyId(14);

            var user = new User(userId, "", "", UserCompanyRole.Worker, "");

            user.From(new CompanyId(12));
            user.AddRole(buildingId, UserBuildingRole.Admin);
            _userRepository.Get(userId).Returns(user);

            var building = new Core.Domain.Models.Building(buildingId, "name", new Company(mainContractorId, "cName", "cNumber"));

            _buildingRepository.Get(buildingId).Returns(building);

            var canEdit = _estimationAccessRule.CanEdit(estimation, userId, buildingId);

            Assert.IsFalse(canEdit);
        }
Exemplo n.º 15
0
        public IActionResult Get(int id)
        {
            var buildingId = new BuildingId(id);
            var building   = _buildingRepository.Get(buildingId);

            if (building == null)
            {
                return(NotFound());
            }

            if (!building.CanAccess(_userSession.User))
            {
                return(Forbid());
            }

            return(Ok(new BuildingDto(building.Name, building.IsOwnedBy(_userSession.User), new CompanyInfo
            {
                Id = building.MainContractor.Id.Value,
                Name = building.MainContractor.Name,
                Nip = building.MainContractor.Number
            })));
        }
Exemplo n.º 16
0
        internal override void Export(string table)
        {
            base.Export(table);


            table = GetType().Name;


            var vals = new List <object>
            {
                Id,
                HfId.DBExport(),
                BodyState.DBExport(),
                BuildingId.DBExport(),
                SiteId.DBExport(),
                SubregionId.DBExport(),
                FeatureLayerId.DBExport(),
                Coords.DBExport()
            };

            Database.ExportWorldItem(table, vals);
        }
Exemplo n.º 17
0
        public IActionResult GetMainReport(int id, [FromBody] DateRange dateRange, [FromQuery] int skip, [FromQuery] int take)
        {
            var buildingId           = new BuildingId(id);
            var estimationRepository = EstimationRepository(buildingId);

            IEnumerable <EstimationReportList> reports;
            int count;

            if (dateRange.From.Year == 1 || dateRange.To.Year == 1)
            {
                reports = estimationRepository.GetAllReported(skip, take);
                count   = estimationRepository.CountAllReported();
            }
            else
            {
                reports = estimationRepository.GetFrom(dateRange.From, dateRange.To, skip, take);
                count   = estimationRepository.CountFrom(dateRange.From, dateRange.To);
            }

            var result = new {
                Count   = count,
                Reports = reports.Select(r => new
                {
                    Id           = r.Estimation.Id,
                    CompanyId    = r.Estimation.CompanyId,
                    EstimationId = r.Estimation.EstimationId,
                    SpecNumber   = r.Estimation.SpecNumber,
                    Description  = r.Estimation.Description,
                    Unit         = r.Estimation.Unit,
                    Quantity     = r.Estimation.Quantity,
                    UnitPrice    = r.Estimation.UnitPrice,
                    Amount       = r.Estimation.Amount,
                    DoneQuantity = r.Reports.Sum(rq => rq.Quantity)
                })
            };

            return(Ok(result));
        }
Exemplo n.º 18
0
        public void CanAccess_ReturnTrue_WhenUserIsSupervisorOnBuildingInReporterCompany()
        {
            var companyId  = new CompanyId(14);
            var buildingId = new BuildingId(16);

            var userId = new UserId(7);
            var user   = new User(userId, "", "", UserCompanyRole.Worker, "");

            user.From(companyId);
            user.AddRole(buildingId, UserBuildingRole.Supervisor);
            _userRepository.Get(userId).Returns(user);

            var reporterId = new UserId(5);
            var reporter   = new User(userId, "", "", UserCompanyRole.Worker, "");

            reporter.From(companyId);
            _userRepository.Get(reporterId).Returns(reporter);

            var report = new Report(DateTime.Now, 1, reporterId, buildingId);

            var access = _reportAccessRule.CanAccess(report, userId);

            Assert.IsTrue(access);
        }
Exemplo n.º 19
0
        protected IReportRepository ReportRepository(BuildingId buildingId)
        {
            var buildingConnectionString = BuildingRepository.GetConnectionString(buildingId);

            return(_repositoryFactory.Report(buildingConnectionString));
        }
Exemplo n.º 20
0
 private void When(BuildingOpened e)
 {
     Id = e.Id;
 }
Exemplo n.º 21
0
 public static void Render(this IConsole console, Building building, BuildingId id)
 {
     console.WriteTitle($"{id}");
     console.WriteProperty("Name", building.Name);
     console.WriteProperty("Kingdom", building.Kingdom.ToString());
 }
Exemplo n.º 22
0
 protected bool Equals(BuildingConsumptionReport other)
 {
     return(BuildingId.Equals(other.BuildingId) && Equals(Power, other.Power));
 }
Exemplo n.º 23
0
        protected IEstimationRepository EstimationRepository(BuildingId buildingId)
        {
            var buildingConnectionString = BuildingRepository.GetConnectionString(buildingId);

            return(_repositoryFactory.Estimation(buildingConnectionString));
        }
Exemplo n.º 24
0
 public Build(BuildingId newId)
 {
     Id = (byte)newId;
 }
Exemplo n.º 25
0
 public string GetConnectionString(BuildingId buildingId)
 {
     return(GetById(buildingId).ConnectionString);
 }
Exemplo n.º 26
0
 public Building Get(BuildingId id)
 {
     return(Convert(GetById(id)));
 }
Exemplo n.º 27
0
 private Entities.Building GetById(BuildingId id)
 => _context.Buildings.Include(b => b.Companies).ThenInclude(c => c.Company).FirstOrDefault(b => b.Id == id.Value);
Exemplo n.º 28
0
 public Report(int id, DateTime date, int numberOfWorkers, UserId reporterId, BuildingId buildingId) : this(date, numberOfWorkers, reporterId, buildingId)
 {
     Id = id;
 }
Exemplo n.º 29
0
 void Start()
 {
     SetLoginUIObject();
     LoginSceneAddListener();
     currentBuilding = BuildingId.None;
 }
Exemplo n.º 30
0
 public override int GetHashCode()
 {
     unchecked {
         return((BuildingId.GetHashCode() * 397) ^ (Power != null ? Power.GetHashCode() : 0));
     }
 }
Exemplo n.º 31
0
 public void SetModel(BuildingId id, Building model)
 {
     Id     = id;
     _model = model;
     RaiseAllPropertiesChanged();
 }