public ActionResult AddRepresentative(int id, string oib)
        {
            if (!User.IsInRole("buildingmanager")) { return new HttpUnauthorizedResult(); }

            var building = buildingsRepository.GetById(id);

            // provjeri da li je trenutna osoba upravitelj zgrade
            var buildingManager = building.BuildingManager;
            var currentPerson = personsRepository.GetLegalPersonByUsername(User.Identity.Name);

            if (currentPerson == null || !buildingManager.LegalPerson.Equals(currentPerson)) {
                return new HttpUnauthorizedResult();
            }

            var newRepresentative = personsRepository.GetByOib(oib);
            var newRepresentativeUser = housingMgmtUsersRepository.GetUserByPerson(newRepresentative);

            // novi predstavnik mora imati otvoren racun (biti korisnik)
            if (newRepresentativeUser != null) {
                var role = rolesRepository.GetRole("representative");

                // makni ulogu postojecem predstavniku
                var currentRepresentative = building.RepresentativeOfPartOwners;
                if (currentRepresentative != null) {
                    var currentRepresentativeUser = housingMgmtUsersRepository.GetUserByPerson(currentRepresentative);
                    currentRepresentativeUser.RemoveRole(role);
                }

                // postavi ulogu novom predstavniku
                newRepresentativeUser.AddRole(role);
                building.RepresentativeOfPartOwners = newRepresentative;
                return RedirectToAction("building", new { id = id });

            } else {
                ModelState.AddModelError("", string.Format("Osoba {0} ne može biti postavljena za predstavnika suvlasnika jer nema kreiran korisnički račun.", newRepresentative.FullName));

                var owners = building.GetOwners()
                    .Except(new List<Person> { building.RepresentativeOfPartOwners }).ToList();

                var model = new AddRepresentativeModel() {
                    Owners = Mapper.Map<IList<Person>, IList<PersonModel>>(owners),
                    Roles = Roles.GetRolesForUser(),
                    Building = building.Address.StreetAddress + " " + building.Address.StreetAddressNumber,
                    BuildingId = building.Id,
                    CurrentRole = "buildingmanager",
                    Links = new LinksModel() {Id = building.Id, Links = NavLinksGenerator.GetManagerLinks(building, string.Empty)}
                };

                return View(model);
            }
        }
        public ActionResult AddRepresentative(int id)
        {
            if (!User.IsInRole("buildingmanager")) { return new HttpUnauthorizedResult(); }

            var building = buildingsRepository.GetById(id);

            // provjeri da li je trenutna osoba upravitelj zgrade
            var buildingManager = building.BuildingManager;
            var currentUser = housingMgmtUsersRepository.GetUserByPerson(buildingManager.LegalPerson);

            if(currentUser == null) {
                return new HttpUnauthorizedResult();
            }

            var owners = building.GetOwners()
                .Except(new List<Person> { building.RepresentativeOfPartOwners}).ToList();

            var model = new AddRepresentativeModel() {
                Owners = Mapper.Map<IList<Person>, IList<PersonModel>>(owners),
                Roles = Roles.GetRolesForUser(),
                Building = building.Address.StreetAddress + " " + building.Address.StreetAddressNumber,
                BuildingId = building.Id,
                CurrentRole = "buildingmanager",
                Links = new LinksModel() { Id = building.Id, Links = NavLinksGenerator.GetManagerLinks(building, string.Empty)}
            };

            return View(model);
        }