Ejemplo n.º 1
0
        public async Task <ActionResult <MmtUserGetDTO> > GetMmtUser(string Id)
        {
            var mmtUser = await _UserManager.FindByIdAsync(Id);

            if (mmtUser == null)
            {
                return(NotFound($"User with Id : {Id} not found "));
            }

            var mmtUserGetDTO = new MmtUserGetDTO()
            {
                Id                   = mmtUser.Id,
                UserName             = mmtUser.UserName,
                FirstName            = mmtUser.FirstName,
                LastName             = mmtUser.LastName,
                Email                = mmtUser.Email,
                EmailConfirmed       = mmtUser.EmailConfirmed,
                PostalCode           = mmtUser.PostalCode,
                City                 = mmtUser.City,
                Country              = mmtUser.Country,
                Mobile               = mmtUser.PhoneNumber,
                PhoneNumberConfirmed = mmtUser.PhoneNumberConfirmed,
                PhoneHome            = mmtUser.PhoneHome,
                PhoneWork            = mmtUser.PhoneWork,
                Function             = mmtUser.Function,
                Street               = mmtUser.Street,
            };
            var allRoles     = _RoleManager.Roles;
            var rolsAsString = await _UserManager.GetRolesAsync(mmtUser);

            List <IdentityRole> roles = new List <IdentityRole>();

            foreach (var item in rolsAsString)
            {
                foreach (var role in allRoles)
                {
                    if (item == role.Name)
                    {
                        roles.Add(role);
                    }
                }
            }

            //mmtUserGetDTO.Roles= await _UserManager.GetRolesAsync(mmtUser);
            mmtUserGetDTO.Roles = roles;

            return(Ok(mmtUserGetDTO));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult <MmtUserGetDTO> > PostMmtUser([FromForm] MmtUserPostDTO model)
        {
            var mmtUser = await _UserManager.FindByEmailAsync(model.Email);

            if (mmtUser != null)
            {
                ModelState.AddModelError("", "there is already a user with the same Email");
                return(BadRequest(ModelState));
            }
            if (model.Password != model.ConfirmPassword)
            {
                ModelState.AddModelError("", "password doent match his confirmation");
                return(BadRequest(ModelState));
            }

            mmtUser = new MmtUser
            {
                UserName       = model.UserName,
                FirstName      = model.FirstName,
                LastName       = model.LastName,
                Email          = model.Email,
                PostalCode     = model.PostalCode,
                City           = model.City,
                Country        = model.Country,
                PhoneNumber    = model.Mobile,
                PhoneHome      = model.PhoneHome,
                PhoneWork      = model.PhoneWork,
                Function       = model.Function,
                Street         = model.Street,
                EmailConfirmed = model.ConfirmEmail,
            };

            var result = await _UserManager.CreateAsync(mmtUser, model.Password);

            if (!result.Succeeded)
            {
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
                return(BadRequest(ModelState));
            }

            if (model.Roles != null)
            {
                await _UserManager.AddToRolesAsync(mmtUser, model.Roles);
            }


            var mmtUserGetDTO = new MmtUserGetDTO
            {
                Id         = mmtUser.Id,
                UserName   = mmtUser.UserName,
                FirstName  = mmtUser.FirstName,
                LastName   = mmtUser.LastName,
                Email      = mmtUser.Email,
                PostalCode = mmtUser.PostalCode,
                City       = mmtUser.City,
                Country    = mmtUser.Country,
                Mobile     = mmtUser.PhoneNumber,
                PhoneHome  = mmtUser.PhoneHome,
                PhoneWork  = mmtUser.PhoneWork,
                Function   = mmtUser.Function,
                Street     = mmtUser.Street,
            };

            var allRoles     = _RoleManager.Roles;
            var rolsAsString = await _UserManager.GetRolesAsync(mmtUser);

            List <IdentityRole> roles = new List <IdentityRole>();

            foreach (var item in rolsAsString)
            {
                foreach (var role in allRoles)
                {
                    if (item == role.Name)
                    {
                        roles.Add(role);
                    }
                }
            }
            //mmtUserGetDTO.Roles = await _UserManager.GetRolesAsync(mmtUser);
            mmtUserGetDTO.Roles = roles;

            return(Ok(mmtUserGetDTO));
        }