예제 #1
0
        public async Task <IActionResult> SaveModel(long id, Owner vm)
        {
            if (!ModelState.IsValid)
            {
                LoadLocalSelectList(vm);
                return(View("ModelForm", vm));
            }

            //var model = new Owner();
            //vm.Transfer(ref model, null, false);

            if (vm.IsNew)
            {
                //if (string.IsNullOrEmpty((vm.Rnc)) == false)
                //{
                //    var existingRnc = Context.People.Any(p => p.User.Rnc.ToUpper() == vm.Rnc.ToUpper());

                //    if (existingRnc)
                //    {
                //        ModelState.AddModelError(string.Empty, "Esta cedula ya esta registrada");
                //        return View("ModelForm", vm);
                //    }
                //}

                if (string.IsNullOrEmpty((vm.Email)))
                {
                    ModelState.AddModelError(string.Empty, "El Email es Obligatorio");
                    return(View("ModelForm", vm));
                }

                if (string.IsNullOrEmpty(vm.Email) == false)
                {
                    var existingEmail = Context.Users.Any(p => p.Email.ToUpper() == vm.Email.ToUpper());

                    if (existingEmail)
                    {
                        ModelState.AddModelError(string.Empty, "Este Email ya esta registrado");
                        return(View("ModelForm", vm));
                    }
                }

                vm.StartDate = DateTime.Now;
                await Context.Owners.AddAsync(vm);

                var user = ApplicationUser.Create(vm,
                                                  vm.Name, vm.Address, vm.Tel,
                                                  vm.Email, vm.Name, true, true, true, true);

                var result = await _userHelper.AddUserAsync(user, "824455");

                if (result != IdentityResult.Success)
                {
                    ModelState.AddModelError(string.Empty, "Usuario no pudo ser creado");
                    return(View("ModelForm", vm));
                }

                // await Context.SaveChangesAsync();
                await _userHelper.AddClaim(user, new Claim("OwnerId", vm.Id.ToString()));

                await _userHelper.AddUserToRoleAsync(user, "Admin");

                await _userHelper.AddUserToRoleAsync(user, "User");

                //await _userHelper.AddUserToRoleAsync(user, "Doctor");
                //await _userHelper.AddUserToRoleAsync(user, "Employee");
                //await _userHelper.AddUserToRoleAsync(user, "Teacher");

                var path = string.Empty;

                // path = await FileHelper.UploadFile(vm.ImageFile, path, rootFolder, folder);

                vm.Imagen = path;
                var record = recordHelper.GenerateRecord(vm);

                await Context.SaveChangesAsync();
            }
            else
            {
                if (id != vm.Id)
                {
                    return(NotFound());
                }

                var currentModel = await Context.Owners.FindAsync(vm.Id);

                //Only Update the Neccesary fields
                vm.Transfer(ref currentModel, null, false);

                Context.Update(currentModel);
            }

            await Context.SaveChangesAsync();

            return(RedirectToAction(nameof(Details), new { id = vm.Id }));
        }
예제 #2
0
        public async Task <IActionResult> Create(Owner owner)
        {
            if (!ModelState.IsValid)
            {
                return(View(owner));
            }
            var user = await _userHelper.GetUserByEmailAsync(owner.Email);

            if (user == null)
            {
                // await _ownerRepository.AddAsync(owner);

                await _context.Owners.AddAsync(owner);

                var shop = new Shop
                {
                    Name  = "Sucursal Principal",
                    Owner = owner
                };

                await _context.Shops.AddAsync(shop);

                // await _context.SaveChangesAsync();
                user = new ApplicationUser
                {
                    Name        = owner.Name,
                    Lastname    = owner.LastName,
                    Email       = owner.Email,
                    UserName    = owner.Email,
                    PhoneNumber = owner.Tel,
                    Shop        = shop,
                    IsDoctor    = true,
                    IsTeacher   = true
                };

                var result = await _userHelper.AddUserAsync(user, "824455");

                if (result != IdentityResult.Success)
                {
                    ModelState.AddModelError(string.Empty, "Usuario no pudo ser creado");
                    return(View(owner));
                }

                // await _context.SaveChangesAsync();
                await _userHelper.AddClaim(user, new Claim("OwnerId", owner.Id.ToString()));

                await _userHelper.AddClaim(user, new Claim("ShopId", shop.Id.ToString()));

                await _userHelper.AddUserToRoleAsync(user, "Admin");

                await _userHelper.AddUserToRoleAsync(user, "User");

                var doctorInf = new Doctor
                {
                    User         = user,
                    Exequartur   = "Mi Exquartur 999",
                    CreationDate = DateTime.Today,
                    Cmd          = "Mi cmd 999"
                };

                await _context.Doctors.AddAsync(doctorInf);

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }

            ModelState.AddModelError(string.Empty, "El usuario ya esta registrado.");

            return(View(owner));
        }