예제 #1
0
        public async Task <IActionResult> CreateCompany(InsuranceCompanyCreationBindingModel insuranceCompanyCreationBindingModel)
        {
            ViewBag.Action = "InsuranceCompanies";
            //Create 'InsuranceCompanie' Role if it doesn't exist
            string RoleString = "InsuranceCompanie";
            var    role       = await _roleManager.RoleExistsAsync(RoleString);

            if (!role)
            {
                await _roleManager.CreateAsync(new IdentityRole(RoleString));
            }

            InsuranceCompany insuranceCompany = null;

            //Validate Model
            if (ModelState.IsValid)
            {
                var user = CreateUser(insuranceCompanyCreationBindingModel);
                //create user and assign role if successful
                var result = await _userManager.CreateAsync(user, insuranceCompanyCreationBindingModel.Password);

                if (result.Succeeded)
                {
                    //Fill role related attributes
                    insuranceCompany = new InsuranceCompany()
                    {
                        Name = insuranceCompanyCreationBindingModel.Name,
                        Fax  = insuranceCompanyCreationBindingModel.Fax
                    };
                    insuranceCompany.User = user;
                    _context.Add(insuranceCompany);
                    _context.SaveChanges();

                    await _userManager.AddToRoleAsync(user, RoleString);
                }
                else
                {
                    return(Content("Failed to add User"));
                }

                if (result.Succeeded)
                {
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(InsuranceCompanies)));
                }
                return(Content("Failed to add Company"));
            }
            return(View("./InsuranceCompanies/Create", insuranceCompanyCreationBindingModel));
        }
예제 #2
0
        public async Task <IActionResult> EditCompany(string id, InsuranceCompanyCreationBindingModel insuranceCompanyCreationBindingModel)
        {
            ViewBag.Action = "InsuranceCompanies";
            if (id != insuranceCompanyCreationBindingModel.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var insuranceCompany = await _context.InsuranceCompanies
                                           .Where(i => i.Id.Equals(id))
                                           .Include(i => i.User)
                                           .SingleAsync();

                    MapUser(insuranceCompany.User, insuranceCompanyCreationBindingModel);
                    insuranceCompany.Name = insuranceCompanyCreationBindingModel.Name;
                    _context.Update(insuranceCompany);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!AssistantExists(insuranceCompanyCreationBindingModel.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(InsuranceCompanies)));
            }
            return(View("./InsuranceCompanies/Edit", insuranceCompanyCreationBindingModel));
        }