Example #1
0
        public async Task <IActionResult> IndexIndividual()
        {
            ViewData["DBs"] = _databaseContext.DataBase.OrderBy(p => p.Name).ToList();
            ViewData["PLs"] = _databaseContext.ProgrammingLanguage.OrderBy(p => p.Name).ToList();

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

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

                City        = user.City,
                DateOfBirth = user.DateOfBirth,
                Skills      = user.Skills,
                Surname     = user.Surname,
                PhoneNumber = user.PhoneNumber
            };

            return(View(model));
        }
Example #2
0
        public async Task <IActionResult> IndexIndividual(IndexIndividualViewModel model)
        {
            ViewData["DBs"] = _databaseContext.DataBase.OrderBy(p => p.Name).ToList();
            ViewData["PLs"] = _databaseContext.ProgrammingLanguage.OrderBy(p => p.Name).ToList();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var user = (Individual)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)
            {
                Individual appuser = _context.Individual.FirstOrDefault(u => u.Id == user.Id);
                appuser.Name = model.Name;
                _context.Entry(appuser).State = EntityState.Modified;
                _context.SaveChanges();
            }

            var lastName = user.Surname;

            if (model.Surname != lastName)
            {
                Individual appuser = _context.Individual.FirstOrDefault(u => u.Id == user.Id);
                appuser.Surname = model.Surname;
                _context.Entry(appuser).State = EntityState.Modified;
                _context.SaveChanges();
            }

            var address = user.Address;

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

            var about = user.About;

            if (model.About != about)
            {
                Individual appuser = _context.Individual.FirstOrDefault(u => u.Id == user.Id);
                appuser.About = model.About;
                _context.Entry(appuser).State = EntityState.Modified;
                _context.SaveChanges();
            }

            var city = user.City;

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

            var date = user.DateOfBirth;

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

            var skills = user.Skills;

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

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

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