Esempio n. 1
0
        public UpdateUserItem InitUpdate(string Id)
        {
            try
            {
                var item = new UpdateUserItem();
                IdentityUserItem applicationUser = context.Users.Find(Id);
                item.Id        = applicationUser.Id;
                item.UserName  = applicationUser.UserName;
                item.Email     = applicationUser.Email;
                item.FirstName = applicationUser.FirstName;
                item.LastName  = applicationUser.LastName;

                item.UserItemRoles = context.Roles.Select(x => new SelectListItem {
                    Text = x.Name, Value = x.Id.ToString()
                }).ToList();

                foreach (IdentityUserRole itm in applicationUser.Roles)
                {
                    item.UserItemSelectedRoles.Add(itm.RoleId);
                }

                foreach (var role in item.UserItemRoles)
                {
                    if (role.Text == _administrator)
                    {
                        role.Text = "Ադմինիստրատոր";
                    }
                    if (role.Text == _reader)
                    {
                        role.Text = "Դիտորդ";
                    }
                    if (role.Text == _writer)
                    {
                        role.Text = "Տվյալների մուտքագրող";
                    }
                    if (role.Text == _reportspecialist)
                    {
                        role.Text = "Հաշվետվությունների մասնագետ";
                    }
                }

                if (item != null)
                {
                    return(item);
                }
                else
                {
                    throw new System.NullReferenceException("Requested item is not found");
                }
            }
            catch (Exception ex)
            {
                serviceException = ex;
                return(null);
            }
        }
Esempio n. 2
0
        public int Update(UpdateUserItem updateUserItem, IOwinContext owinContext)
        {
            using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                try
                {
                    InstanceUserManager instanceUserManager = owinContext.GetUserManager <InstanceUserManager>();

                    IdentityUserItem identityUserItem = instanceUserManager.FindById(updateUserItem.Id.ToString());

                    if (updateUserItem != null)
                    {
                        identityUserItem.Email     = updateUserItem.Email;
                        identityUserItem.UserName  = updateUserItem.UserName;
                        identityUserItem.FirstName = updateUserItem.FirstName;
                        identityUserItem.LastName  = updateUserItem.LastName;

                        IdentityResult result = instanceUserManager.Update(identityUserItem);

                        if (result.Succeeded)
                        {
                            //this part is not similar to create need more investigation
                            foreach (string item in updateUserItem.UserItemSelectedRoles)
                            {
                                string roleName = context.Roles.Find(item).Name; //sometimes this part not works, may be the context is not initialized?
                                instanceUserManager.AddToRole(identityUserItem.Id, roleName);
                            }

                            List <IdentityUserRole> listIdentityUserRole = instanceUserManager.FindById(identityUserItem.Id).Roles.ToList();

                            foreach (IdentityUserRole item in listIdentityUserRole)
                            {
                                if (!updateUserItem.UserItemSelectedRoles.Contains(item.RoleId))
                                {
                                    string roleToRemove = context.Roles.Find(item.RoleId).Name;
                                    instanceUserManager.RemoveFromRole(identityUserItem.Id, roleToRemove);
                                }
                            }
                            scope.Complete();
                            return(1);
                        }
                        else
                        {
                            updateUserItem.UserItemRoles = context.Roles.Select(x => new SelectListItem {
                                Text = x.Name, Value = x.Id.ToString()
                            }).ToList();
                            foreach (var error in result.Errors)
                            {
                                strErrorMessage = ErrorMessage + " " + error;
                            }
                            scope.Dispose();
                            return(0);
                        }
                    }
                    else
                    {
                        updateUserItem.UserItemRoles = context.Roles.Select(x => new SelectListItem {
                            Text = x.Name, Value = x.Id.ToString()
                        }).ToList();
                        strErrorMessage = "There is no user with provided ID";
                        return(0);
                    }
                }
                catch (Exception ex)
                {
                    serviceException             = ex;
                    updateUserItem.UserItemRoles = context.Roles.Select(x => new SelectListItem {
                        Text = x.Name, Value = x.Id.ToString()
                    }).ToList();
                    if (ex.Message != null)
                    {
                        strErrorMessage = ex.Message;
                    }
                    else
                    {
                        strErrorMessage = ex.InnerException.Message;
                    }
                    scope.Dispose();
                    return(-1);
                }
            }
        }