예제 #1
0
        public async Task <IActionResult> IndexCompany()
        {
            var user = (Company)await _userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Nema korisnika sa zadanim ID-em '{_userManager.GetUserId(User)}'.");
            }
            var model = new IndexCompanyViewModel
            {
                Username      = user.UserName,
                Name          = user.Name,
                Address       = user.Address,
                Email         = user.Email,
                StatusMessage = StatusMessage,
                About         = user.About,
                City          = user.City,

                BussinesType      = user.BussinesType,
                Established       = user.Established,
                LogoLink          = user.LogoLink,
                PhoneNumber       = user.PhoneNumber,
                NumberOfEmployees = user.NumberOfEmployees,
                WebAddress        = user.WebAddress
            };

            return(View(model));
        }
예제 #2
0
        public async Task <ActionResult> Index(ManageMessageId?message)
        {
            ViewBag.StatusMessage =
                message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed."
                : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
                : message == ManageMessageId.SetTwoFactorSuccess ? "Your two-factor authentication provider has been set."
                : message == ManageMessageId.Error ? "An error has occurred."
                : message == ManageMessageId.AddPhoneSuccess ? "Your phone number was added."
                : message == ManageMessageId.ProfileInfoUpdateSucess ? "Профилът е обновен успешно."
                : message == ManageMessageId.RemovePhoneSuccess ? "Your phone number was removed."
                : "";

            var userId = User.Identity.GetUserId();
            var model  = new IndexViewModel
            {
                HasPassword       = HasPassword(),
                PhoneNumber       = await UserManager.GetPhoneNumberAsync(userId),
                TwoFactor         = await UserManager.GetTwoFactorEnabledAsync(userId),
                Logins            = await UserManager.GetLoginsAsync(userId),
                BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId)
            };

            if (User.IsInRole("Company"))
            {
                var company   = _companyService.GetAll().First(x => x.UserId == userId);
                var viewModel = new IndexCompanyViewModel {
                    UniqueNumber = company.UniqueNumber, Name = company.Name, MOL = company.MOL, Address = company.City, DDS = company.DDS, EIK = company.EIK
                };

                return(View("IndexCompany", viewModel));
            }
            else if (User.IsInRole("Driver"))
            {
                return(View("IndexDriver", model));
            }
            else if (User.IsInRole("Dispatcher"))
            {
                UserManager <Models.ApplicationUser> userManager = new UserManager <Models.ApplicationUser>(new UserStore <Models.ApplicationUser>(new Models.ApplicationDbContext()));
                var user      = userManager.FindById(User.Identity.GetUserId());
                var viewModel = new IndexDispatcherViewModel
                {
                    FirstName = user.FirstName,
                    LastName  = user.LastName,
                    Telephone = user.PhoneNumber
                };
                var dispatcher = _dispatcherService.GetAll().First(x => x.UserId == user.Id);
                var company    = _companyService.GetAll().First(x => x.Id == dispatcher.Company.Id);
                viewModel.CompanyName = company.Name;

                return(View("IndexDispatcher", viewModel));
            }
            else
            {
                return(View("IndexDriver", model));
            }
        }
예제 #3
0
        public ActionResult UpdateCompanyInfo(IndexCompanyViewModel viewModel)
        {
            var company      = _companyService.UpdateCompany(viewModel.UniqueNumber, viewModel.Name, viewModel.MOL, viewModel.EIK, viewModel.DDS, viewModel.Address);
            var newViewModel = new IndexCompanyViewModel()
            {
                Address = company.City, DDS = company.DDS, EIK = company.EIK, MOL = company.MOL, UniqueNumber = company.UniqueNumber, Name = company.Name
            };


            return(RedirectToAction("Index", new { message = ManageMessageId.ProfileInfoUpdateSucess }));
        }
예제 #4
0
        private List <IndexCompanyViewModel> MapAllCompaniesView(List <Company> companies)
        {
            List <IndexCompanyViewModel> allCompanies = new List <IndexCompanyViewModel>();

            foreach (var currentCompany in companies)
            {
                var company = new IndexCompanyViewModel
                {
                    Id                = currentCompany.Id,
                    Name              = currentCompany.Name,
                    CreationDate      = currentCompany.CreationDate,
                    Headquarter       = currentCompany.Headquarter,
                    NumberOfEmployees = currentCompany.Employees.Count()
                };

                allCompanies.Add(company);
            }

            return(allCompanies);
        }
예제 #5
0
        public async Task <IActionResult> IndexCompany(IndexCompanyViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = (Company)await _userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Nema korisnika sa zadanim ID-em '{_userManager.GetUserId(User)}'.");
            }

            var email = user.Email;

            if (model.Email != email)
            {
                var x = _databaseContext.Individual.FirstOrDefault(g => g.Email == model.Email);
                var y = _databaseContext.Company.FirstOrDefault(g => g.Email == model.Email);

                if (x != null || y != null)
                {
                    TempData[Constants.Message]       = $"Korisnik s tim mailom već postoji.\n";
                    TempData[Constants.ErrorOccurred] = true;
                    return(RedirectToAction(nameof(IndexIndividual)));
                }

                var setEmailResult = await _userManager.SetEmailAsync(user, model.Email);

                if (!setEmailResult.Succeeded)
                {
                    throw new ApplicationException($"Neočekivana greška se javila prilikom postavljanja e-mail adrese korisnika s ID-em '{user.Id}'.");
                }
                var setUserNameResult = await _userManager.SetUserNameAsync(user, model.Email);

                if (!setEmailResult.Succeeded)
                {
                    throw new ApplicationException($"Neočekivana greška se javila prilikom postavljanja e-mail adrese korisnika s ID-em '{user.Id}'.");
                }
            }


            var firstName = user.Name;

            if (model.Name != firstName)
            {
                Company appuser = _context.Company.FirstOrDefault(u => u.Id == user.Id);
                appuser.Name = model.Name;
                _context.Entry(appuser).State = EntityState.Modified;
                _context.SaveChanges();
            }

            var address = user.Address;

            if (model.Address != address)
            {
                Company appuser = _context.Company.FirstOrDefault(u => u.Id == user.Id);
                appuser.Address = model.Address;
                _context.Entry(appuser).State = EntityState.Modified;
                _context.SaveChanges();
            }

            var city = user.City;

            if (model.City != city)
            {
                Company appuser = _context.Company.FirstOrDefault(u => u.Id == user.Id);
                appuser.City = model.City;
                _context.Entry(appuser).State = EntityState.Modified;
                _context.SaveChanges();
            }

            var date = user.Established;

            if (model.Established != date)
            {
                Company appuser = _context.Company.FirstOrDefault(u => u.Id == user.Id);
                appuser.Established           = model.Established;
                _context.Entry(appuser).State = EntityState.Modified;
                _context.SaveChanges();
            }

            var skills = user.About;

            if (model.About != skills)
            {
                Company appuser = _context.Company.FirstOrDefault(u => u.Id == user.Id);
                appuser.About = model.About;
                _context.Entry(appuser).State = EntityState.Modified;
                _context.SaveChanges();
            }
            var phone = user.PhoneNumber;

            if (model.PhoneNumber != phone)
            {
                Company appuser = _context.Company.FirstOrDefault(u => u.Id == user.Id);
                appuser.PhoneNumber           = model.PhoneNumber;
                _context.Entry(appuser).State = EntityState.Modified;
                _context.SaveChanges();
            }

            var a = user.BussinesType;

            if (model.BussinesType != a)
            {
                Company appuser = _context.Company.FirstOrDefault(u => u.Id == user.Id);
                appuser.BussinesType          = model.BussinesType;
                _context.Entry(appuser).State = EntityState.Modified;
                _context.SaveChanges();
            }

            var b = user.LogoLink;

            if (model.LogoLink != b)
            {
                Company appuser = _context.Company.FirstOrDefault(u => u.Id == user.Id);
                appuser.LogoLink = model.LogoLink;
                _context.Entry(appuser).State = EntityState.Modified;
                _context.SaveChanges();
            }

            var c = user.WebAddress;

            if (model.WebAddress != c)
            {
                Company appuser = _context.Company.FirstOrDefault(u => u.Id == user.Id);
                appuser.WebAddress            = model.WebAddress;
                _context.Entry(appuser).State = EntityState.Modified;
                _context.SaveChanges();
            }

            var d = user.NumberOfEmployees;

            if (model.NumberOfEmployees != d)
            {
                Company appuser = _context.Company.FirstOrDefault(u => u.Id == user.Id);
                appuser.NumberOfEmployees     = model.NumberOfEmployees;
                _context.Entry(appuser).State = EntityState.Modified;
                _context.SaveChanges();
            }

            TempData[Constants.Message]       = $"Vaš profil je promijenjen";
            TempData[Constants.ErrorOccurred] = false;
            return(RedirectToAction(nameof(IndexCompany)));
        }