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 })); }
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)); }