Exemple #1
0
        public static FullUser ConvertToOrdinarFullUser(this FullUserThatAllowsChanges sorse, List <Role> exsistingRoles)
        {
            FullUser result = new FullUser();

            Worker worker = new Worker()
            {
                PassportNumber = sorse.WorkerId, PersonalData = sorse.WorkerFio
            };

            if (sorse.HasAnAccount)
            {
                result.User = new User {
                    Login = sorse.Login, Password = sorse.Password, WorkerId = sorse.WorkerId, Id = sorse.UserId
                };
                result.Roles        = new List <Role>();
                sorse.ExistingRoles = exsistingRoles;
                int length = sorse.ExistingRoles.Count();
                for (int i = 0; i < length; i++)
                {
                    if (sorse.ActivatedRoles[i] == true)
                    {
                        result.Roles.Add(sorse.ExistingRoles[i]);
                    }
                }
            }
            else
            {
                result.User = null;
            }
            result.Worker = worker;
            return(result);
        }
Exemple #2
0
        public ActionResult EditWorker(FullUserThatAllowsChanges changedUser)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    FullUser fullUser = changedUser.ConvertToOrdinarFullUser(_roleServices.Read());
                    _fullUserServices.Update(fullUser);
                    return(RedirectToAction("EditWorkersInformation"));
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError(ex.GetHashCode().ToString(), ex.Message);
                }
            }

            return(View(changedUser));
        }
Exemple #3
0
        public static FullUserThatAllowsChanges ConvertToChenged(this FullUser user, List <Role> exsistingRoles)
        {
            FullUserThatAllowsChanges result = new FullUserThatAllowsChanges();

            result.WorkerFio = user?.Worker?.PersonalData;
            result.WorkerId  = user?.Worker?.PassportNumber ?? 1;

            result.HasAnAccount  = user.User != null;
            result.ExistingRoles = exsistingRoles;

            int length = exsistingRoles.Count();

            result.ActivatedRoles = new bool[length];

            if (result.HasAnAccount)
            {
                result.UserId   = user.User.Id;
                result.Login    = user.User.Login;
                result.Password = user.User.Password;


                for (int i = 0; i < length; i++)
                {
                    if (user.Roles.Contains(exsistingRoles[i]))
                    {
                        result.ActivatedRoles[i] = true;
                    }
                    else
                    {
                        result.ActivatedRoles[i] = false;
                    }
                }
            }
            else
            {
                for (int i = 0; i < length; i++)
                {
                    result.ActivatedRoles[i] = false;
                }
            }
            return(result);
        }