public async Task <IActionResult> RegisteredUser(ApiRequest request) { try { FMSApplicationUserVM user = await(from u in dbContext.Users where u.UserName == request.UserName select new FMSApplicationUserVM() { Email = u.Email, FullName = u.Name, Id = u.Id, Roles = (from r in dbContext.UserRoles where r.UserId == u.Id select r.RoleId).ToList(), Department = (from g in dbContext.GBMSUsers where g.XName == u.Name select g.XDepartmentDescription).SingleOrDefault(), Password = "******", ConfirmPassword = "******", Region = u.Region, SubRegion = u.SubRegion, Station = u.Station }).SingleOrDefaultAsync(); return(Ok(user)); } catch (Exception ex) { return(BadRequest(ex.ToString())); } }
public async Task <IActionResult> RegisterUser(FMSApplicationUserVM userVM) { try { var fmsuser = await _userManager.FindByNameAsync(userVM.UserName); if (fmsuser == null) { var user = new ApplicationUser { UserName = userVM.UserName, Email = userVM.Email, NormalizedEmail = userVM.Email.ToUpper() }; user.NormalizedUserName = user.UserName.ToUpper(); user.EmailConfirmed = true; user.Id = userVM.Id; user.Name = userVM.FullName; user.SubRegion = userVM.SubRegion; user.Region = userVM.Region; user.Station = userVM.Station; var result = await _userManager.CreateAsync(user, userVM.Password); if (!result.Succeeded) { return(BadRequest(result.Errors.FirstOrDefault()?.Description)); } else { user = await _userManager.FindByNameAsync(userVM.UserName); foreach (var role in userVM.Roles) { var roleresult = await _userManager.AddToRoleAsync(user, role); } return(Ok("User is added successfully.")); } } else { return(BadRequest("A user with this email/username already exists.")); } } catch (Exception ex) { return(BadRequest(ex.ToString())); } }
public async Task <IActionResult> UpdateUser(FMSApplicationUserVM userVM) { try { var fmsuser = await _userManager.FindByNameAsync(userVM.UserName); if (fmsuser != null) { fmsuser.UserName = userVM.UserName; fmsuser.Email = userVM.Email; fmsuser.NormalizedEmail = userVM.Email.ToUpper(); fmsuser.NormalizedUserName = fmsuser.UserName.ToUpper(); fmsuser.EmailConfirmed = true; fmsuser.Id = userVM.Id; fmsuser.Name = userVM.FullName; fmsuser.Region = userVM.Region; fmsuser.SubRegion = userVM.SubRegion; fmsuser.Station = userVM.Station; var result = await _userManager.UpdateAsync(fmsuser); if (!result.Succeeded) { return(BadRequest(result.Errors.FirstOrDefault()?.Description)); } else { fmsuser = await _userManager.FindByNameAsync(userVM.UserName); List <string> addedroles = (from r in dbContext.UserRoles where r.UserId == fmsuser.Id select r.RoleId).ToList(); await _userManager.RemoveFromRolesAsync(fmsuser, addedroles); await _userManager.AddToRolesAsync(fmsuser, userVM.Roles); return(Ok("User is edited successfully.")); } } else { return(BadRequest("User to be edited doesn't exist.")); } } catch (Exception ex) { return(BadRequest(ex.ToString())); } }